Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ public interface CreateNetworkCmd extends SyncDockerCmd<CreateNetworkResponse> {
@CheckForNull
Boolean getEnableIPv6();

/**
* @since {@link RemoteApiVersion#VERSION_1_23}
*/
@CheckForNull
Map<String, String> getLabels();

/** The new network's name. Required. */
CreateNetworkCmd withName(@Nonnull String name);

Expand All @@ -52,6 +58,11 @@ public interface CreateNetworkCmd extends SyncDockerCmd<CreateNetworkResponse> {

CreateNetworkCmd withInternal(boolean internal);

/**
* @since {@link RemoteApiVersion#VERSION_1_23}
*/
CreateNetworkCmd withLabels(Map<String, String> labels);

CreateNetworkCmd withEnableIpv6(boolean enableIpv6);

interface Exec extends DockerCmdSyncExec<CreateNetworkCmd, CreateNetworkResponse> {
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/com/github/dockerjava/api/model/Network.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ public class Network implements Serializable {
@JsonProperty("Containers")
private Map<String, ContainerNetworkConfig> containers;

@JsonProperty("Labels")
private Map<String, String> labels;

@JsonProperty("Options")
private Map<String, String> options;

Expand All @@ -53,6 +56,12 @@ public String getDriver() {
return driver;
}


public Map<String, String> getLabels() {
return labels;
}


public Ipam getIpam() {
return ipam;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package com.github.dockerjava.core.command;

import java.util.HashMap;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.github.dockerjava.api.command.CreateNetworkCmd;
import com.github.dockerjava.api.command.CreateNetworkResponse;
import com.github.dockerjava.api.command.DockerCmdSyncExec;
import com.github.dockerjava.api.model.Network;
import com.github.dockerjava.api.model.Network.Ipam;

import java.util.HashMap;
import java.util.Map;

public class CreateNetworkCmdImpl extends AbstrDockerCmd<CreateNetworkCmd, CreateNetworkResponse>
implements CreateNetworkCmd {

Expand All @@ -28,6 +28,9 @@ public class CreateNetworkCmdImpl extends AbstrDockerCmd<CreateNetworkCmd, Creat
@JsonProperty("CheckDuplicate")
private Boolean checkDuplicate;

@JsonProperty("Labels")
private Map<String, String> labels;

@JsonProperty("Internal")
private Boolean internal;

Expand Down Expand Up @@ -73,6 +76,12 @@ public Boolean getEnableIPv6() {
return enableIpv6;
}

@Override
public Map<String, String> getLabels() {
return labels;
}


@Override
public CreateNetworkCmd withName(String name) {
this.name = name;
Expand Down Expand Up @@ -109,6 +118,12 @@ public CreateNetworkCmd withInternal(boolean internal) {
return this;
}

@Override
public CreateNetworkCmd withLabels(Map<String, String> labels) {
this.labels = labels;
return this;
}

@Override
public CreateNetworkCmd withEnableIpv6(boolean enableIpv6) {
this.enableIpv6 = enableIpv6;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
import org.testng.annotations.Test;

import java.lang.reflect.Method;
import java.util.Collections;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;

@Test(groups = "integration")
public class CreateNetworkCmdImplTest extends AbstractDockerClientTest {
Expand Down Expand Up @@ -64,4 +68,21 @@ public void createNetworkWithIpamConfig() throws DockerException {
assertEquals(network.getDriver(), "bridge");
assertEquals("10.67.79.0/24", network.getIpam().getConfig().iterator().next().getSubnet());
}


@Test
public void createNetworkWithLabels() throws DockerException {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add this test to CreateNetworkCmdExecTest also please?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test will fail on 1.22, so pr builder will also fail


String networkName = "testNetwork";
CreateNetworkResponse createNetworkResponse = dockerClient.createNetworkCmd()
.withName(networkName).withLabels(Collections.singletonMap("test", "abc")).exec();

assertNotNull(createNetworkResponse.getId());

Network network = dockerClient.inspectNetworkCmd().withNetworkId(createNetworkResponse.getId()).exec();
assertEquals(network.getName(), networkName);
assertThat(network.getLabels().get("test"), equalTo("abc"));
assertEquals(network.getDriver(), "bridge");
}

}