@Override public Integer call() throws Exception { int matchingContainerCount = 0; for (final Container c : dockerClient.listContainers()) { for (final String name : c.names()) { if (name.contains(jobName)) { matchingContainerCount++; } } } if (matchingContainerCount < containerIds.size()) { return null; } else { return matchingContainerCount; } } });
protected List<Container> listContainers(final DockerClient dockerClient, final String needle) throws DockerException, InterruptedException { final List<Container> containers = dockerClient.listContainers(); final List<Container> matches = Lists.newArrayList(); for (final Container container : containers) { if (container.names() != null) { for (final String name : container.names()) { if (name.contains(needle)) { matches.add(container); break; } } } } return matches; }
private String getContainerId(String containerName) { final String containerNameSearch = containerName.contains("/") ? containerName : String.format("/%s", containerName); List<Container> containerList = null; try { containerList = dockerClient.listContainers(withStatusRunning(), withStatusCreated()); } catch (DockerException | InterruptedException e) { logger.debug(nodeId + " Error while getting containerId", e); ga.trackException(e); } if (containerList != null) { String containerByName = containerList.stream() .filter(container -> containerNameSearch.equalsIgnoreCase(container.names().get(0))) .findFirst().map(Container::id).orElse(null); return containerByName != null ? containerByName : containerList.stream() .filter(container -> container.names().get(0).contains(containerName)) .findFirst().map(Container::id).orElse(null); } else { return null; } }
private void reap0(final Supplier<Set<String>> activeSupplier) throws DockerException, InterruptedException { final List<String> candidates = Lists.newArrayList(); final List<Container> containers = docker.listContainers(); for (final Container container : containers) { for (final String name : container.names()) { if (name.startsWith(prefix)) { candidates.add(container.id()); } } } // Get the active set after we've enumerated candidates to ensure that active set is fresh. // If the active set is fetched before enumerating candidates it might be stale and we might // mistakenly classify a container as not being in the active set. final Set<String> active = activeSupplier.get(); for (final String candidate : candidates) { if (!active.contains(candidate)) { reap(candidate); } } } }
private void deleteSeleniumContainers() { logger.info("About to clean up any left over DockerSelenium containers created by Zalenium"); String image = DockeredSeleniumStarter.getDockerSeleniumImageName(); String zaleniumContainerName = DockeredSeleniumStarter.getContainerName(); try { List<Container> containerList = dockerClient.listContainers(withStatusRunning(), withStatusCreated()) .stream().filter(container -> container.image().contains(image) && container.names().stream().anyMatch(name -> name.contains(zaleniumContainerName))) .collect(Collectors.toList()); containerList.stream() .parallel() .forEach(container -> stopContainer(container.id())); } catch (Exception e) { logger.warn(nodeId + " Error while deleting existing DockerSelenium containers", e); ga.trackException(e); } }
private String getContainerId(String zaleniumContainerName, URL remoteUrl) { List<Container> containerList = null; try { containerList = dockerClient.listContainers(withStatusRunning(), withStatusCreated()); } catch (DockerException | InterruptedException e) { logger.debug(nodeId + " Error while getting containerId", e);
final List<Container> containers = dockerClient.listContainers(); for (final Container container : containers) { for (final String name : container.names()) {
@Override public List<Container> call() throws Exception { return dockerClient.listContainers(); } };
final List<Container> containers = docker.listContainers(); Container jobContainer = null; for (final Container container : containers) {
@Test public void testAgent() throws Exception { startDefaultMaster("--zk-cluster-id=" + zkClusterId); startDefaultAgent(testHost(), "--zk-cluster-id=" + zkClusterId); awaitHostStatus(testHost(), UP, LONG_WAIT_SECONDS, SECONDS); // Create job and deploy it final JobId jobId = createJob(testJobName, testJobVersion, BUSYBOX, IDLE_COMMAND); deployJob(jobId, testHost()); final TaskStatus runningStatus = awaitTaskState(jobId, testHost(), RUNNING); final String containerId = runningStatus.getContainerId(); // Delete the config node which contains the cluster ID and all the job definitions zk().curatorWithSuperAuth().delete().deletingChildrenIfNeeded().forPath("/config"); // Sleep for a second so agent has a chance to react to deletion Thread.sleep(1000); // Make sure the agent didn't stop the job try (final DockerClient docker = getNewDockerClient()) { final List<Container> containers = docker.listContainers(); final CustomTypeSafeMatcher<Container> containerIdMatcher = new CustomTypeSafeMatcher<Container>("Container with id " + containerId) { @Override protected boolean matchesSafely(Container container) { return container.id().equals(containerId); } }; assertContainersMatch(containers, containerIdMatcher); } }
@Override public void process(InputStream inputStream, OutputStream outputStream) throws IOException { try { List<Container> containers = docker.listContainers(); ObjectMapper mapper = new ObjectMapper(); outputStream.write(mapper.writeValueAsBytes(containers)); } catch (DockerException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } });
@Override public Object refresh(String size) throws Exception { if (!size.equalsIgnoreCase(ModuleLayout.FULL_SCREEN)) { return client.listContainers().size(); } else { List<DockerInfo> containers = getContainersInfo(); Map<String, Object> data = new HashMap<>(); data.put("containers", containers); data.put("images", getImagesInfo(containers)); return data; } }
private Optional<Container> findExistingContainer(DockerClient docker, String containerName) { try { List<Container> containers = docker.listContainers(DockerClient.ListContainersParam.allContainers(true)); for (Container container : containers) { for (String name : container.names()) { if (name.contains(containerName)) { return Optional.of(container); } } } } catch (DockerException | InterruptedException e) { LOG.error("Unable to retrieve a list of Docker containers", e); } return Optional.empty(); }
public Optional<Container> findExistingContainer() { try { List<Container> containers = dockerClient.listContainers(DockerClient.ListContainersParam.allContainers(true)); for (Container container : containers) { for (String name : container.names()) { if (name.contains(containerName)) { return Optional.of(container); } } } } catch (DockerException | InterruptedException e) { LOG.error("Unable to retrieve a list of Docker containers", e); } return Optional.empty(); }
static Optional<Container> getContainer( final DockerClient dockerClient, final Pattern targetImagePattern) { try { for (final Container container : dockerClient.listContainers(DockerClient.ListContainersParam.allContainers())) { if ("running".equals(container.state()) && targetImagePattern.matcher(container.image()).matches()) { return Optional.of(container); } } } catch (final DockerException | InterruptedException e) { LOGGER.error("Docker client failed to list containers", e); } return Optional.empty(); } }
@Override public ModuleExposedData exposeData() { try { ModuleExposedData data = new ModuleExposedData(); data.addText(client.listContainers().size() + " containers running."); return data; } catch (DockerException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } return null; }
private void reap0(final Supplier<Set<String>> activeSupplier) throws DockerException, InterruptedException { final List<String> candidates = Lists.newArrayList(); final List<Container> containers = docker.listContainers(); for (Container container : containers) { for (String name : container.names()) { if (name.startsWith(prefix)) { candidates.add(container.id()); } } } // Get the active set after we've enumerated candidates to ensure that active set is fresh. // If the active set is fetched before enumerating candidates it might be stale and we might // mistakenly classify a container as not being in the active set. final Set<String> active = activeSupplier.get(); for (final String candidate : candidates) { if (!active.contains(candidate)) { reap(candidate); } } }
public static List<ExistingContainer> findContainers(DockerClient dockerClient, String prefixedWith) throws InterruptedException, DockerException { final List<com.spotify.docker.client.messages.Container> allContainers = dockerClient.listContainers(DockerClient.ListContainersParam.allContainers(true)); final List<ExistingContainer> foundContainers = new ArrayList<>(); for (final com.spotify.docker.client.messages.Container container : allContainers) { if (containerStartsWith(container, prefixedWith)) { final ContainerInfo containerInfo = dockerClient.inspectContainer(container.id()); final ExistingContainer containerMeta = new ExistingContainer(containerInfo, dockerClient); foundContainers.add(containerMeta); } } return foundContainers; }
private static boolean existContainer() throws DockerException, InterruptedException { return elasticsearchRule.getDockerClient().listContainers(DockerClient.ListContainersParam.allContainers(true)) .stream() .anyMatch(container -> container.names() .contains("/" + CONTAINER_NAME)); }
private static boolean existContainer() throws DockerException, InterruptedException { return elasticsearchRule.getDockerClient().listContainers(DockerClient.ListContainersParam.allContainers(true)) .stream() .anyMatch(container -> container.names() .contains("/" + CONTAINER_NAME)); }