Skip to content

Commit bfdbbbb

Browse files
authored
Labels for volume has been added (docker-java#1320)
1 parent 33ebafb commit bfdbbbb

File tree

8 files changed

+64
-6
lines changed

8 files changed

+64
-6
lines changed

docker-java-api/src/main/java/com/github/dockerjava/api/command/CreateVolumeCmd.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ public interface CreateVolumeCmd extends SyncDockerCmd<CreateVolumeResponse> {
99
@CheckForNull
1010
String getName();
1111

12+
@CheckForNull
13+
Map<String, String> getLabels();
14+
1215
@CheckForNull
1316
String getDriver();
1417

@@ -21,6 +24,12 @@ public interface CreateVolumeCmd extends SyncDockerCmd<CreateVolumeResponse> {
2124
*/
2225
CreateVolumeCmd withName(String name);
2326

27+
/**
28+
* @param labels
29+
* - A mapping of labels keys and values. Labels are a mechanism for applying metadata to Docker objects.
30+
*/
31+
CreateVolumeCmd withLabels(Map<String, String> labels);
32+
2433
/**
2534
* @param driver
2635
* - Name of the volume driver to use. Defaults to local for the name.

docker-java-api/src/main/java/com/github/dockerjava/api/command/CreateVolumeResponse.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import lombok.EqualsAndHashCode;
55
import lombok.ToString;
66

7+
import java.util.Map;
8+
79
/**
810
*
911
* @author Marcus Linke
@@ -15,6 +17,9 @@ public class CreateVolumeResponse {
1517
@JsonProperty("Name")
1618
private String name;
1719

20+
@JsonProperty("Labels")
21+
private Map<String, String> labels;
22+
1823
@JsonProperty("Driver")
1924
private String driver;
2025

@@ -25,6 +30,10 @@ public String getName() {
2530
return name;
2631
}
2732

33+
public Map<String, String> getLabels() {
34+
return labels;
35+
}
36+
2837
public String getDriver() {
2938
return driver;
3039
}

docker-java-api/src/main/java/com/github/dockerjava/api/command/InspectVolumeResponse.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import lombok.EqualsAndHashCode;
55
import lombok.ToString;
66

7+
import java.util.Map;
8+
79
/**
810
*
911
* @author Marcus Linke
@@ -15,6 +17,9 @@ public class InspectVolumeResponse {
1517
@JsonProperty("Name")
1618
private String name;
1719

20+
@JsonProperty("Labels")
21+
private Map<String, String> labels;
22+
1823
@JsonProperty("Driver")
1924
private String driver;
2025

@@ -25,6 +30,10 @@ public String getName() {
2530
return name;
2631
}
2732

33+
public Map<String, String> getLabels() {
34+
return labels;
35+
}
36+
2837
public String getDriver() {
2938
return driver;
3039
}

docker-java-core/src/main/java/com/github/dockerjava/core/command/CreateVolumeCmdImpl.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ public class CreateVolumeCmdImpl extends AbstrDockerCmd<CreateVolumeCmd, CreateV
1919
@JsonProperty("Name")
2020
private String name;
2121

22+
@JsonProperty("Labels")
23+
private Map<String, String> labels;
24+
2225
@JsonProperty("Driver")
2326
private String driver;
2427

@@ -34,6 +37,11 @@ public String getName() {
3437
return name;
3538
}
3639

40+
@Override
41+
public Map<String, String> getLabels() {
42+
return labels;
43+
}
44+
3745
@Override
3846
public String getDriver() {
3947
return driver;
@@ -51,6 +59,13 @@ public CreateVolumeCmdImpl withName(String name) {
5159
return this;
5260
}
5361

62+
@Override
63+
public CreateVolumeCmdImpl withLabels(Map<String, String> labels) {
64+
checkNotNull(labels, "labels was not specified");
65+
this.labels = labels;
66+
return this;
67+
}
68+
5469
@Override
5570
public CreateVolumeCmdImpl withDriver(String driver) {
5671
checkNotNull(driver, "driver was not specified");

docker-java/src/test/java/com/github/dockerjava/cmd/CreateVolumeCmdIT.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import com.github.dockerjava.api.exception.DockerException;
55
import org.junit.Test;
66

7+
import java.util.Collections;
8+
79
import static org.hamcrest.MatcherAssert.assertThat;
810
import static org.hamcrest.Matchers.containsString;
911
import static org.hamcrest.Matchers.equalTo;
@@ -16,10 +18,11 @@ public void createVolume() throws DockerException {
1618
String volumeName = "volume1";
1719

1820
CreateVolumeResponse createVolumeResponse = dockerRule.getClient().createVolumeCmd().withName(volumeName)
19-
.withDriver("local").exec();
21+
.withDriver("local").withLabels(Collections.singletonMap("is-timelord", "yes")).exec();
2022

2123
assertThat(createVolumeResponse.getName(), equalTo(volumeName));
2224
assertThat(createVolumeResponse.getDriver(), equalTo("local"));
25+
assertThat(createVolumeResponse.getLabels(), equalTo(Collections.singletonMap("is-timelord", "yes")));
2326
assertThat(createVolumeResponse.getMountpoint(), containsString("/volume1/"));
2427
}
2528

@@ -29,17 +32,19 @@ public void createVolumeWithExistingName() throws DockerException {
2932
String volumeName = "volume1";
3033

3134
CreateVolumeResponse createVolumeResponse1 = dockerRule.getClient().createVolumeCmd().withName(volumeName)
32-
.withDriver("local").exec();
35+
.withDriver("local").withLabels(Collections.singletonMap("is-timelord", "yes")).exec();
3336

3437
assertThat(createVolumeResponse1.getName(), equalTo(volumeName));
3538
assertThat(createVolumeResponse1.getDriver(), equalTo("local"));
39+
assertThat(createVolumeResponse1.getLabels(), equalTo(Collections.singletonMap("is-timelord", "yes")));
3640
assertThat(createVolumeResponse1.getMountpoint(), containsString("/volume1/"));
3741

3842
CreateVolumeResponse createVolumeResponse2 = dockerRule.getClient().createVolumeCmd().withName(volumeName)
39-
.withDriver("local").exec();
43+
.withDriver("local").withLabels(Collections.singletonMap("is-timelord", "yes")).exec();
4044

4145
assertThat(createVolumeResponse2.getName(), equalTo(volumeName));
4246
assertThat(createVolumeResponse2.getDriver(), equalTo("local"));
47+
assertThat(createVolumeResponse2.getLabels(), equalTo(Collections.singletonMap("is-timelord", "yes")));
4348
assertThat(createVolumeResponse2.getMountpoint(), equalTo(createVolumeResponse1.getMountpoint()));
4449
}
4550
}

docker-java/src/test/java/com/github/dockerjava/cmd/InspectVolumeCmdIT.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import com.github.dockerjava.api.exception.NotFoundException;
66
import org.junit.Test;
77

8+
import java.util.Collections;
9+
810
import static org.hamcrest.MatcherAssert.assertThat;
911
import static org.hamcrest.Matchers.containsString;
1012
import static org.hamcrest.Matchers.equalTo;
@@ -16,12 +18,14 @@ public void inspectVolume() throws DockerException {
1618

1719
String volumeName = "volume1";
1820

19-
dockerRule.getClient().createVolumeCmd().withName(volumeName).withDriver("local").exec();
21+
dockerRule.getClient().createVolumeCmd().withName(volumeName).withDriver("local")
22+
.withLabels(Collections.singletonMap("is-timelord", "yes")).exec();
2023

2124
InspectVolumeResponse inspectVolumeResponse = dockerRule.getClient().inspectVolumeCmd(volumeName).exec();
2225

2326
assertThat(inspectVolumeResponse.getName(), equalTo("volume1"));
2427
assertThat(inspectVolumeResponse.getDriver(), equalTo("local"));
28+
assertThat(inspectVolumeResponse.getLabels(), equalTo(Collections.singletonMap("is-timelord", "yes")));
2529
assertThat(inspectVolumeResponse.getMountpoint(), containsString("/volume1/"));
2630
}
2731

docker-java/src/test/java/com/github/dockerjava/cmd/ListVolumesCmdIT.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import com.github.dockerjava.api.exception.DockerException;
66
import org.junit.Test;
77

8+
import java.util.Collections;
9+
810
import static org.hamcrest.MatcherAssert.assertThat;
911
import static org.hamcrest.Matchers.containsString;
1012
import static org.hamcrest.Matchers.equalTo;
@@ -16,10 +18,11 @@ public class ListVolumesCmdIT extends CmdIT {
1618
public void listVolumes() throws DockerException {
1719

1820
CreateVolumeResponse createVolumeResponse = dockerRule.getClient().createVolumeCmd().withName("volume1")
19-
.withDriver("local").exec();
21+
.withDriver("local").withLabels(Collections.singletonMap("is-timelord", "yes")).exec();
2022

2123
assertThat(createVolumeResponse.getName(), equalTo("volume1"));
2224
assertThat(createVolumeResponse.getDriver(), equalTo("local"));
25+
assertThat(createVolumeResponse.getLabels(), equalTo(Collections.singletonMap("is-timelord", "yes")));
2326
assertThat(createVolumeResponse.getMountpoint(), containsString("/volume1/"));
2427

2528
ListVolumesResponse listVolumesResponse = dockerRule.getClient().listVolumesCmd().exec();

docker-java/src/test/java/com/github/dockerjava/cmd/RemoveVolumeCmdIT.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import com.github.dockerjava.api.exception.NotFoundException;
66
import org.junit.Test;
77

8+
import java.util.Collections;
9+
810
import static org.hamcrest.MatcherAssert.assertThat;
911
import static org.hamcrest.Matchers.containsString;
1012
import static org.hamcrest.Matchers.equalTo;
@@ -19,10 +21,12 @@ public void removeVolume() throws DockerException {
1921

2022
CreateVolumeResponse createVolumeResponse = dockerRule.getClient().createVolumeCmd()
2123
.withName(volumeName)
22-
.withDriver("local").exec();
24+
.withDriver("local")
25+
.withLabels(Collections.singletonMap("is-timelord", "yes")).exec();
2326

2427
assertThat(createVolumeResponse.getName(), equalTo(volumeName));
2528
assertThat(createVolumeResponse.getDriver(), equalTo("local"));
29+
assertThat(createVolumeResponse.getLabels(), equalTo(Collections.singletonMap("is-timelord", "yes")));
2630
assertThat(createVolumeResponse.getMountpoint(), containsString(volumeName));
2731

2832
dockerRule.getClient().removeVolumeCmd(volumeName).exec();

0 commit comments

Comments
 (0)