Skip to content

Commit aaefe87

Browse files
committed
Add tests to add network to services
1 parent 9b24ce9 commit aaefe87

File tree

2 files changed

+104
-12
lines changed

2 files changed

+104
-12
lines changed

src/test/java/com/github/dockerjava/core/command/CreateServiceCmdExecTest.java

Lines changed: 51 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
package com.github.dockerjava.core.command;
22

33
import com.github.dockerjava.api.exception.DockerException;
4-
import com.github.dockerjava.api.exception.NotAcceptableException;
54
import com.github.dockerjava.api.model.ContainerSpec;
5+
import com.github.dockerjava.api.model.Network;
6+
import com.github.dockerjava.api.model.NetworkAttachmentConfig;
67
import com.github.dockerjava.api.model.Service;
8+
import com.github.dockerjava.api.model.ServiceModeConfig;
9+
import com.github.dockerjava.api.model.ServiceReplicatedModeOptions;
710
import com.github.dockerjava.api.model.ServiceSpec;
8-
import com.github.dockerjava.api.model.Swarm;
9-
import com.github.dockerjava.api.model.SwarmCAConfig;
10-
import com.github.dockerjava.api.model.SwarmDispatcherConfig;
11-
import com.github.dockerjava.api.model.SwarmOrchestration;
12-
import com.github.dockerjava.api.model.SwarmRaftConfig;
1311
import com.github.dockerjava.api.model.SwarmSpec;
14-
import com.github.dockerjava.api.model.TaskDefaults;
1512
import com.github.dockerjava.api.model.TaskSpec;
1613
import org.slf4j.Logger;
1714
import org.slf4j.LoggerFactory;
@@ -27,7 +24,6 @@
2724
import java.util.List;
2825

2926
import static org.hamcrest.MatcherAssert.assertThat;
30-
import static org.hamcrest.Matchers.equalTo;
3127
import static org.hamcrest.Matchers.hasSize;
3228
import static org.hamcrest.Matchers.is;
3329

@@ -58,8 +54,11 @@ public void afterMethod(ITestResult result) {
5854
}
5955

6056
@Test
61-
public void initializeSwarm() throws DockerException {
62-
dockerClient.initializeSwarmCmd(new SwarmSpec()).withListenAddr("127.0.0.1").exec();
57+
public void testCreateService() throws DockerException {
58+
dockerClient.initializeSwarmCmd(new SwarmSpec())
59+
.withListenAddr("127.0.0.1")
60+
.withAdvertiseAddr("127.0.0.1")
61+
.exec();
6362

6463
dockerClient.createServiceCmd(new ServiceSpec()
6564
.withName(SERVICE_NAME)
@@ -77,4 +76,46 @@ public void initializeSwarm() throws DockerException {
7776
dockerClient.removeServiceCmd(SERVICE_NAME).exec();
7877
}
7978

79+
@Test
80+
public void testCreateServiceWithNetworks() {
81+
dockerClient.initializeSwarmCmd(new SwarmSpec())
82+
.withListenAddr("127.0.0.1")
83+
.withAdvertiseAddr("127.0.0.1")
84+
.exec();
85+
86+
String networkId = dockerClient.createNetworkCmd().withName("networkname")
87+
.withDriver("overlay")
88+
.withIpam(new Network.Ipam()
89+
.withDriver("default"))
90+
.exec().getId();
91+
92+
ServiceSpec spec = new ServiceSpec()
93+
.withName(SERVICE_NAME)
94+
.withTaskTemplate(new TaskSpec()
95+
.withContainerSpec(new ContainerSpec()
96+
.withImage("busybox"))
97+
)
98+
.withNetworks(Lists.newArrayList(
99+
new NetworkAttachmentConfig()
100+
.withTarget(networkId)
101+
.withAliases(Lists.<String>newArrayList("alias1", "alias2"))
102+
))
103+
.withMode(new ServiceModeConfig().withReplicated(
104+
new ServiceReplicatedModeOptions()
105+
.withReplicas(1)
106+
));
107+
108+
dockerClient.createServiceCmd(spec).exec();
109+
110+
List<Service> services = dockerClient.listServicesCmd()
111+
.withNameFilter(Lists.newArrayList(SERVICE_NAME))
112+
.exec();
113+
114+
assertThat(services, hasSize(1));
115+
116+
assertThat(services.get(0).getSpec(), is(spec));
117+
118+
dockerClient.removeServiceCmd(SERVICE_NAME).exec();
119+
}
120+
80121
}

src/test/java/com/github/dockerjava/netty/exec/CreateServiceCmdExecTest.java

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
import com.github.dockerjava.api.exception.DockerException;
44
import com.github.dockerjava.api.model.ContainerSpec;
5+
import com.github.dockerjava.api.model.Network;
6+
import com.github.dockerjava.api.model.NetworkAttachmentConfig;
57
import com.github.dockerjava.api.model.Service;
8+
import com.github.dockerjava.api.model.ServiceModeConfig;
9+
import com.github.dockerjava.api.model.ServiceReplicatedModeOptions;
610
import com.github.dockerjava.api.model.ServiceSpec;
711
import com.github.dockerjava.api.model.SwarmSpec;
812
import com.github.dockerjava.api.model.TaskSpec;
@@ -22,6 +26,7 @@
2226

2327
import static org.hamcrest.MatcherAssert.assertThat;
2428
import static org.hamcrest.Matchers.hasSize;
29+
import static org.hamcrest.Matchers.is;
2530

2631
@Test(groups = "swarm-integration")
2732
public class CreateServiceCmdExecTest extends AbstractNettySwarmDockerClientTest {
@@ -50,8 +55,11 @@ public void afterMethod(ITestResult result) {
5055
}
5156

5257
@Test
53-
public void initializeSwarm() throws DockerException {
54-
dockerClient.initializeSwarmCmd(new SwarmSpec()).withListenAddr("127.0.0.1").exec();
58+
public void testCreateService() throws DockerException {
59+
dockerClient.initializeSwarmCmd(new SwarmSpec())
60+
.withListenAddr("127.0.0.1")
61+
.withAdvertiseAddr("127.0.0.1")
62+
.exec();
5563

5664
dockerClient.createServiceCmd(new ServiceSpec()
5765
.withName(SERVICE_NAME)
@@ -69,4 +77,47 @@ public void initializeSwarm() throws DockerException {
6977
dockerClient.removeServiceCmd(SERVICE_NAME).exec();
7078
}
7179

80+
@Test
81+
public void testCreateServiceWithNetworks() {
82+
dockerClient.initializeSwarmCmd(new SwarmSpec())
83+
.withListenAddr("127.0.0.1")
84+
.withAdvertiseAddr("127.0.0.1")
85+
.exec();
86+
87+
String networkId = dockerClient.createNetworkCmd().withName("networkname")
88+
.withDriver("overlay")
89+
.withIpam(new Network.Ipam()
90+
.withDriver("default"))
91+
.exec().getId();
92+
93+
ServiceSpec spec = new ServiceSpec()
94+
.withName(SERVICE_NAME)
95+
.withTaskTemplate(new TaskSpec()
96+
.withContainerSpec(new ContainerSpec()
97+
.withImage("busybox"))
98+
)
99+
.withNetworks(Lists.newArrayList(
100+
new NetworkAttachmentConfig()
101+
.withTarget(networkId)
102+
.withAliases(Lists.<String>newArrayList("alias1", "alias2"))
103+
))
104+
.withMode(new ServiceModeConfig().withReplicated(
105+
new ServiceReplicatedModeOptions()
106+
.withReplicas(1)
107+
));
108+
109+
dockerClient.createServiceCmd(spec).exec();
110+
111+
List<Service> services = dockerClient.listServicesCmd()
112+
.withNameFilter(Lists.newArrayList(SERVICE_NAME))
113+
.exec();
114+
115+
assertThat(services, hasSize(1));
116+
117+
assertThat(services.get(0).getSpec(), is(spec));
118+
119+
dockerClient.removeServiceCmd(SERVICE_NAME).exec();
120+
121+
}
122+
72123
}

0 commit comments

Comments
 (0)