Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alwlays use DinD in Swarm tests #1399

Merged
merged 1 commit into from
May 24, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.dockerjava.cmd.swarm;

import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.command.CreateSecretResponse;
import com.github.dockerjava.api.exception.DockerException;
import com.github.dockerjava.api.model.Secret;
import com.github.dockerjava.api.model.SecretSpec;
import com.google.common.collect.Lists;
Expand All @@ -21,27 +21,28 @@ public class CreateSecretCmdExecIT extends SwarmCmdIT {
public static final Logger LOG = LoggerFactory.getLogger(CreateSecretCmdExecIT.class);

@Test
public void testCreateSecret() throws DockerException {
public void testCreateSecret() throws Exception {
DockerClient dockerClient = startSwarm();
int length = 10;
boolean useLetters = true;
boolean useNumbers = false;
String secretName = RandomStringUtils.random(length, useLetters, useNumbers);
CreateSecretResponse exec = dockerRule.getClient().createSecretCmd(new SecretSpec().withName(secretName).withData("mon secret en clair")).exec();
CreateSecretResponse exec = dockerClient.createSecretCmd(new SecretSpec().withName(secretName).withData("mon secret en clair")).exec();
assertThat(exec, notNullValue());
assertThat(exec.getId(), notNullValue());
LOG.info("Secret created with ID {}", exec.getId());


List<Secret> secrets = dockerRule.getClient().listSecretsCmd()
List<Secret> secrets = dockerClient.listSecretsCmd()
.withNameFilter(Lists.newArrayList(secretName))
.exec();

assertThat(secrets, IsCollectionWithSize.hasSize(1));

dockerRule.getClient().removeSecretCmd(secrets.get(0).getId())
dockerClient.removeSecretCmd(secrets.get(0).getId())
.exec();
LOG.info("Secret removed with ID {}", exec.getId());
List<Secret> secretsAfterRemoved = dockerRule.getClient().listSecretsCmd()
List<Secret> secretsAfterRemoved = dockerClient.listSecretsCmd()
.withNameFilter(Lists.newArrayList(secretName))
.exec();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.github.dockerjava.cmd.swarm;

import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.exception.ConflictException;
import com.github.dockerjava.api.exception.DockerException;
import com.github.dockerjava.api.model.AuthConfig;
Expand Down Expand Up @@ -49,32 +50,35 @@ public class CreateServiceCmdExecIT extends SwarmCmdIT {
public ExpectedException exception = ExpectedException.none();
private AuthConfig authConfig;

private DockerClient dockerClient;

@Before
public final void setUpCreateServiceCmdExecIT() throws Exception {
authConfig = REGISTRY.getAuthConfig();
dockerClient = startSwarm();
}

@Test
public void testCreateService() throws DockerException {
dockerRule.getClient().createServiceCmd(new ServiceSpec()
dockerClient.createServiceCmd(new ServiceSpec()
.withName(SERVICE_NAME)
.withTaskTemplate(new TaskSpec()
.withContainerSpec(new ContainerSpec()
.withImage(DEFAULT_IMAGE))))
.exec();

List<Service> services = dockerRule.getClient().listServicesCmd()
List<Service> services = dockerClient.listServicesCmd()
.withNameFilter(Lists.newArrayList(SERVICE_NAME))
.exec();

assertThat(services, hasSize(1));

dockerRule.getClient().removeServiceCmd(SERVICE_NAME).exec();
dockerClient.removeServiceCmd(SERVICE_NAME).exec();
}

@Test
public void testCreateServiceWithNetworks() {
String networkId = dockerRule.getClient().createNetworkCmd().withName("networkname")
String networkId = dockerClient.createNetworkCmd().withName("networkname")
.withDriver("overlay")
.withIpam(new Network.Ipam()
.withDriver("default"))
Expand Down Expand Up @@ -104,58 +108,58 @@ public void testCreateServiceWithNetworks() {
.withProtocol(PortConfigProtocol.TCP)
)));

dockerRule.getClient().createServiceCmd(spec).exec();
dockerClient.createServiceCmd(spec).exec();

List<Service> services = dockerRule.getClient().listServicesCmd()
List<Service> services = dockerClient.listServicesCmd()
.withNameFilter(Lists.newArrayList(SERVICE_NAME))
.exec();

assertThat(services, hasSize(1));

assertThat(services.get(0).getSpec(), is(spec));

dockerRule.getClient().removeServiceCmd(SERVICE_NAME).exec();
dockerClient.removeServiceCmd(SERVICE_NAME).exec();
}

@Test
public void testCreateServiceWithTmpfs() {
Mount tmpMount = new Mount().withTmpfsOptions(new TmpfsOptions().withSizeBytes(600L)).withTarget("/tmp/foo");

dockerRule.getClient().createServiceCmd(new ServiceSpec()
dockerClient.createServiceCmd(new ServiceSpec()
.withName(SERVICE_NAME)
.withTaskTemplate(new TaskSpec()
.withContainerSpec(new ContainerSpec().withImage(DEFAULT_IMAGE).withMounts(Collections.singletonList(tmpMount)))))
.exec();

List<Service> services = dockerRule.getClient().listServicesCmd()
List<Service> services = dockerClient.listServicesCmd()
.withNameFilter(Lists.newArrayList(SERVICE_NAME))
.exec();

assertThat(services, hasSize(1));
List<Mount> mounts = dockerRule.getClient().inspectServiceCmd(SERVICE_NAME).exec().getSpec().getTaskTemplate()
List<Mount> mounts = dockerClient.inspectServiceCmd(SERVICE_NAME).exec().getSpec().getTaskTemplate()
.getContainerSpec().getMounts();
assertThat(mounts, hasSize(1));
assertThat(mounts.get(0), is(tmpMount));
dockerRule.getClient().removeServiceCmd(SERVICE_NAME).exec();
dockerClient.removeServiceCmd(SERVICE_NAME).exec();
}

@Test
public void testCreateServiceWithValidAuth() throws DockerException {
dockerRule.getClient().createServiceCmd(new ServiceSpec()
dockerClient.createServiceCmd(new ServiceSpec()
.withName(SERVICE_NAME)
.withTaskTemplate(new TaskSpec()
.withContainerSpec(new ContainerSpec()
.withImage(DEFAULT_IMAGE))))
.withAuthConfig(authConfig)
.exec();

List<Service> services = dockerRule.getClient().listServicesCmd()
List<Service> services = dockerClient.listServicesCmd()
.withNameFilter(Lists.newArrayList(SERVICE_NAME))
.exec();

assertThat(services, hasSize(1));

dockerRule.getClient().removeServiceCmd(SERVICE_NAME).exec();
dockerClient.removeServiceCmd(SERVICE_NAME).exec();
}

@Test
Expand All @@ -169,7 +173,7 @@ public void testCreateServiceWithInvalidAuth() throws DockerException {

exception.expect(ConflictException.class);

dockerRule.getClient().createServiceCmd(new ServiceSpec()
dockerClient.createServiceCmd(new ServiceSpec()
.withName(SERVICE_NAME)
.withTaskTemplate(new TaskSpec()
.withContainerSpec(new ContainerSpec()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.github.dockerjava.cmd.swarm;

import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.exception.DockerException;
import com.github.dockerjava.api.model.Swarm;
import com.github.dockerjava.api.model.SwarmCAConfig;
Expand All @@ -20,13 +21,9 @@ public class InitializeSwarmCmdExecIT extends SwarmCmdIT {

public static final Logger LOG = LoggerFactory.getLogger(InitializeSwarmCmdExecIT.class);

@Override
protected boolean shouldInitializeByDefault() {
return false;
}

@Test
public void initializeSwarm() throws DockerException {
public void initializeSwarm() throws Exception {
DockerClient dockerClient = startDockerInDocker();
SwarmSpec swarmSpec = new SwarmSpec()
.withName("default")
.withDispatcher(new SwarmDispatcherConfig()
Expand All @@ -42,29 +39,23 @@ public void initializeSwarm() throws DockerException {
.withLogEntriesForSlowFollowers(200)
).withTaskDefaults(new TaskDefaults());

dockerRule.getClient().initializeSwarmCmd(swarmSpec)
dockerClient.initializeSwarmCmd(swarmSpec)
.withListenAddr("127.0.0.1")
.withAdvertiseAddr("127.0.0.1")
.exec();
LOG.info("Initialized swarm: {}", swarmSpec.toString());

Swarm swarm = dockerRule.getClient().inspectSwarmCmd().exec();
Swarm swarm = dockerClient.inspectSwarmCmd().exec();
LOG.info("Inspected swarm: {}", swarm.toString());
assertThat(swarm.getSpec(), is(equalTo(swarmSpec)));
}

@Test(expected = DockerException.class)
public void initializingSwarmThrowsWhenAlreadyInSwarm() throws DockerException {
SwarmSpec swarmSpec = new SwarmSpec();

dockerRule.getClient().initializeSwarmCmd(swarmSpec)
.withListenAddr("127.0.0.1")
.withAdvertiseAddr("127.0.0.1")
.exec();
LOG.info("Initialized swarm: {}", swarmSpec.toString());
DockerClient dockerClient = startSwarm();

// Initializing a swarm if already in swarm mode should fail
dockerRule.getClient().initializeSwarmCmd(swarmSpec)
dockerClient.initializeSwarmCmd(new SwarmSpec())
.withListenAddr("127.0.0.1")
.exec();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.is;

public class JoinSwarmCmdExecIT extends MultiNodeSwarmCmdIT {
public class JoinSwarmCmdExecIT extends SwarmCmdIT {

public static final Logger LOG = LoggerFactory.getLogger(JoinSwarmCmdExecIT.class);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.github.dockerjava.cmd.swarm;

import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.exception.DockerException;
import com.github.dockerjava.api.model.Info;
import com.github.dockerjava.api.model.LocalNodeState;
import com.github.dockerjava.api.model.SwarmSpec;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -15,38 +15,31 @@ public class LeaveSwarmCmdExecIT extends SwarmCmdIT {

public static final Logger LOG = LoggerFactory.getLogger(LeaveSwarmCmdExecIT.class);

@Override
protected boolean shouldInitializeByDefault() {
return false;
}

@Test
public void leaveSwarmAsMaster() throws DockerException {
dockerRule.getClient().initializeSwarmCmd(new SwarmSpec())
.withListenAddr("127.0.0.1")
.withAdvertiseAddr("127.0.0.1")
.exec();
DockerClient dockerClient = startSwarm();

Info info = dockerRule.getClient().infoCmd().exec();
Info info = dockerClient.infoCmd().exec();
LOG.info("Inspected docker: {}", info.toString());

assertThat(info.getSwarm().getLocalNodeState(), is(LocalNodeState.ACTIVE));

dockerRule.getClient().leaveSwarmCmd()
dockerClient.leaveSwarmCmd()
.withForceEnabled(true)
.exec();
LOG.info("Left swarm");

info = dockerRule.getClient().infoCmd().exec();
info = dockerClient.infoCmd().exec();
LOG.info("Inspected docker: {}", info.toString());

assertThat(info.getSwarm().getLocalNodeState(), is(LocalNodeState.INACTIVE));

}

@Test(expected = DockerException.class)
public void leavingSwarmThrowsWhenNotInSwarm() throws DockerException {
dockerRule.getClient().leaveSwarmCmd().exec();
public void leavingSwarmThrowsWhenNotInSwarm() throws Exception {
DockerClient dockerClient = startDockerInDocker();
dockerClient.leaveSwarmCmd().exec();
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.github.dockerjava.cmd.swarm;

import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.command.CreateSecretResponse;
import com.github.dockerjava.api.exception.DockerException;
import com.github.dockerjava.api.model.Secret;
Expand All @@ -22,26 +23,27 @@ public class ListSecretCmdExecIT extends SwarmCmdIT {

@Test
public void tesListSecret() throws DockerException {
DockerClient dockerClient = startSwarm();
int length = 10;
boolean useLetters = true;
boolean useNumbers = false;
String secretName = RandomStringUtils.random(length, useLetters, useNumbers);
CreateSecretResponse exec = dockerRule.getClient().createSecretCmd(new SecretSpec().withName(secretName).withData("mon secret en clair")).exec();
CreateSecretResponse exec = dockerClient.createSecretCmd(new SecretSpec().withName(secretName).withData("mon secret en clair")).exec();
assertThat(exec, notNullValue());
assertThat(exec.getId(), notNullValue());
LOG.info("Secret created with ID {}", exec.getId());


List<Secret> secrets = dockerRule.getClient().listSecretsCmd()
List<Secret> secrets = dockerClient.listSecretsCmd()
.withNameFilter(Lists.newArrayList(secretName))
.exec();

assertThat(secrets, hasSize(1));

dockerRule.getClient().removeSecretCmd(secrets.get(0).getId())
dockerClient.removeSecretCmd(secrets.get(0).getId())
.exec();
LOG.info("Secret removed with ID {}", exec.getId());
List<Secret> secretsAfterRemoved = dockerRule.getClient().listSecretsCmd()
List<Secret> secretsAfterRemoved = dockerClient.listSecretsCmd()
.withNameFilter(Lists.newArrayList(secretName))
.exec();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.github.dockerjava.cmd.swarm;

import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.command.CreateServiceResponse;
import com.github.dockerjava.api.model.ContainerSpec;
import com.github.dockerjava.api.model.Service;
Expand Down Expand Up @@ -27,8 +28,9 @@ public class ListServicesCmdExecIT extends SwarmCmdIT {

@Test
public void testListServices() throws Exception {
DockerClient dockerClient = startSwarm();
Map<String, String> serviceLabels = Collections.singletonMap(LABEL_KEY, LABEL_VALUE);
CreateServiceResponse response = dockerRule.getClient().createServiceCmd(new ServiceSpec()
CreateServiceResponse response = dockerClient.createServiceCmd(new ServiceSpec()
.withLabels(serviceLabels)
.withName(SERVICE_NAME)
.withMode(new ServiceModeConfig().withReplicated(
Expand All @@ -41,14 +43,14 @@ public void testListServices() throws Exception {
.exec();
String serviceId = response.getId();
//filtering with service id
List<Service> services = dockerRule.getClient().listServicesCmd().withIdFilter(Collections.singletonList(serviceId)).exec();
List<Service> services = dockerClient.listServicesCmd().withIdFilter(Collections.singletonList(serviceId)).exec();
assertThat(services, hasSize(1));
//filtering with service name
services = dockerRule.getClient().listServicesCmd().withNameFilter(Collections.singletonList(SERVICE_NAME)).exec();
services = dockerClient.listServicesCmd().withNameFilter(Collections.singletonList(SERVICE_NAME)).exec();
assertThat(services, hasSize(1));
//filter labels
services = dockerRule.getClient().listServicesCmd().withLabelFilter(serviceLabels).exec();
services = dockerClient.listServicesCmd().withLabelFilter(serviceLabels).exec();
assertThat(services, hasSize(1));
dockerRule.getClient().removeServiceCmd(SERVICE_NAME).exec();
dockerClient.removeServiceCmd(SERVICE_NAME).exec();
}
}