private static void removeNetworks(DockerCompose dockerCompose, Docker docker) throws IOException, InterruptedException { dockerCompose.down(); docker.pruneNetworks(); } }
@Override public void shutdown(DockerCompose dockerCompose, Docker docker) throws IOException, InterruptedException { log.debug("Killing docker-compose cluster"); dockerCompose.kill(); log.debug("Downing docker-compose cluster"); dockerCompose.down(); log.debug("docker-compose cluster killed"); docker.pruneNetworks(); log.debug("Networks pruned"); } }
@Override public void shutdown(DockerCompose dockerCompose, Docker docker) throws IOException, InterruptedException { List<ContainerName> runningContainers = dockerCompose.ps(); log.info("Shutting down {}", runningContainers.stream().map(ContainerName::semanticName).collect(toList())); if (removeContainersCatchingErrors(docker, runningContainers)) { return; } log.debug("First shutdown attempted failed due to btrfs volume error... retrying"); if (removeContainersCatchingErrors(docker, runningContainers)) { return; } log.warn("Couldn't shut down containers due to btrfs volume error, " + "see https://circleci.com/docs/docker-btrfs-error/ for more info."); log.info("Pruning networks"); docker.pruneNetworks(); }
@Override public void shutdown(DockerCompose dockerCompose, Docker docker) throws IOException, InterruptedException { log.debug("Killing docker-compose cluster"); dockerCompose.down(); dockerCompose.kill(); dockerCompose.rm(); docker.pruneNetworks(); }
@Test public void call_docker_network_prune() throws IOException, InterruptedException { String lsOutput = "0.0.0.0:7000->7000/tcp"; when(executedProcess.getInputStream()).thenReturn(toInputStream(lsOutput)); assertThat(docker.pruneNetworks(), is(lsOutput)); verify(executor).execute("network", "prune", "--force"); }
@Test public void call_kill_then_down() throws Exception { DockerCompose dockerCompose = mock(DockerCompose.class); Docker docker = mock(Docker.class); ShutdownStrategy.KILL_DOWN.shutdown(dockerCompose, docker); InOrder inOrder = inOrder(dockerCompose, docker); inOrder.verify(dockerCompose).kill(); inOrder.verify(dockerCompose).down(); inOrder.verify(docker).pruneNetworks(); inOrder.verifyNoMoreInteractions(); } }
@Test public void call_down_then_kill_then_rm() throws Exception { DockerCompose dockerCompose = mock(DockerCompose.class); Docker docker = mock(Docker.class); ShutdownStrategy.GRACEFUL.shutdown(dockerCompose, docker); InOrder inOrder = inOrder(dockerCompose, docker); inOrder.verify(dockerCompose).down(); inOrder.verify(dockerCompose).kill(); inOrder.verify(dockerCompose).rm(); inOrder.verify(docker).pruneNetworks(); inOrder.verifyNoMoreInteractions(); } }