/** * {@inheritDoc} */ @Override public String getContainerId() { return this.container.getId(); } }
/** * {@inheritDoc} */ @Override public String getContainerId() { return this.container.getId(); }
/** * Adds a new mapping between a container and its name of the node, which * shall be persisted. * * @param container * the container which shall be added. * @param nodeName * the name of the name which shall be mapped. */ public void registerMapping(Container container, String nodeName) { containerIdNodeNameMap.put(container.getId(), nodeName); containerSet.add(container); }
/** * @return IP addresses of containers */ public Set<String> getIpAddresses() { Set<String> ips = new HashSet<>(); if (containers != null) { for (Container container : containers) { ips.add(getIpAddress(container.getId())); } } return ips; }
private boolean isKnown(Container container) { for (DockerService service : services) { if (service.id().equalsIgnoreCase(container.getId())) { return true; } } return false; }
private void removeContainer(Container existingContainer) { logger.info("Removing container " + existingContainer.getId()); try { docker.removeContainerCmd(existingContainer.getId()).withForce(true).withRemoveVolumes(true).exec(); } catch (InternalServerErrorException e) { if (permissionErrorTolerant && isPermissionError(e)) { logger.warn(String.format("ignoring %s when removing container as we are configured to be permission error tolerant", e)); } else { throw e; } } }
/** * removes a {@link Container} by Microservice uuid */ private void removeContainerByMicroserviceUuid(String microserviceUuid, boolean withCleanUp) { synchronized (deleteLock) { Optional<Container> containerOptional = docker.getContainer(microserviceUuid); if (containerOptional.isPresent()) { Container container = containerOptional.get(); removeContainer(container.getId(), container.getImageId(), withCleanUp); } } }
private boolean isRunning() { final List<Container> all = client.listContainersCmd().withShowAll(true).withLabelFilter(label).exec(); final List<Container> running = client.listContainersCmd().withStatusFilter("running").withLabelFilter(label).exec(); all.stream() .filter(c -> running.isEmpty() || !running.get(0).getId().equals(c.getId())) .forEach(c -> client.removeContainerCmd(c.getId()).withForce(true).exec()); return !running.isEmpty(); }
public List<Container> getRunningContainers() { return getContainers().stream() .filter(container -> { InspectContainerResponse inspectInfo = dockerClient.inspectContainerCmd(container.getId()).exec(); ContainerState containerState = inspectInfo.getState(); return containerState != null && containerState.getStatus() != null && MicroserviceState.fromText(containerState.getStatus()) == MicroserviceState.RUNNING; }) .collect(Collectors.toList()); }
private void updateMicroservice(Container container, Microservice microservice) { microservice.setContainerId(container.getId()); try { microservice.setContainerIpAddress(docker.getContainerIpAddress(container.getId())); } catch (Exception e) { microservice.setContainerIpAddress("0.0.0.0"); logError("Can't get IP address for microservice with i=" + microservice.getMicroserviceUuid() + " " + e.getMessage(), e); } if (shouldContainerBeUpdated(microservice, container, docker.getMicroserviceStatus(container.getId()))) { addTask(new ContainerTask(UPDATE, microservice.getMicroserviceUuid())); } }
public void killAllSchedulers() { getSchedulerContainers().forEach(container -> dockerClient.removeContainerCmd(container.getId()).withRemoveVolumes(true).withForce(true).exec()); } }
private boolean shouldContainerBeUpdated(Microservice microservice, Container container, MicroserviceStatus status) { boolean isNotRunning = !MicroserviceState.RUNNING.equals(status.getStatus()); boolean areNotEqual = !docker.areMicroserviceAndContainerEqual(container.getId(), microservice); boolean isRebuild = microservice.isRebuild(); return isNotRunning || areNotEqual || isRebuild; }
/** * Removes all containers in the util object */ public void remove() { if (containers != null) { for (Container container : containers) { DockerClientFactory.build().removeContainerCmd(container.getId()).withForce(true).withRemoveVolumes(true).exec(); } } }
public String getIPAddress(Id id) { Container container = findContainer(id); if (container != null && repo.conf(id).isExposeContainerIp()) { InspectContainerResponse containerInspectResponse = docker.inspectContainerCmd(container.getId()).exec(); return containerInspectResponse.getNetworkSettings().getIpAddress(); } else { throw new IllegalArgumentException(id + " container IP address is not exposed"); } }
public void updateStarted() { containersStartedByExtension = getContainers(); containersInspect = containersStartedByExtension.stream() .map(c -> dockerClient.inspectContainerCmd(c.getId()).exec()) .collect(Collectors.toList()); logs = containersStartedByExtension.stream() .map(c -> dockerClient.logContainerCmd(c.getId()) .withStdOut(true) .withStdErr(true) .exec(new LogCallback())) .collect(Collectors.toList()); }
@AfterEach public void stopAndRemoveStartedContainers() { dockerClient.listContainersCmd().exec().stream() .filter(container -> !existingContainers.contains(container)) .forEach(container -> { dockerClient.stopContainerCmd(container.getId()).exec(); dockerClient.removeContainerCmd(container.getId()).exec(); }); }
@After public void tearDown() throws IOException { List<Container> running = client.listContainersCmd() .withStatusFilter("running").exec(); if (running != null) { running.forEach(container -> client.stopContainerCmd(container.getId()).exec()); } client.close(); discovery.close(); vertx.close(); }
@After public void tearDown() throws IOException { List<Container> running = client.listContainersCmd() .withStatusFilter("running").exec(); if (running != null) { running.forEach(container -> client.stopContainerCmd(container.getId()).exec()); } client.close(); discovery.close(); vertx.close(); }