@Override public TaskStatus call() throws Exception { final JobStatus jobStatus = client.jobStatus(jobId).get(); final TaskStatus taskStatus = jobStatus.getTaskStatuses().get(testHost()); return taskStatus != null && Objects.equals(taskStatus.getContainerId(), secondRestartedContainerId) ? taskStatus : null; } });
final Map<String, TaskStatus> taskStatuses = new TreeMap<>(jobStatus.getTaskStatuses());
private JobStatus filterJobStatus(final JobStatus jobStatus, final Iterable<String> matchingHosts) { final Map<String, TaskStatus> taskStatuses = Maps.newHashMap(jobStatus.getTaskStatuses()); final Set<String> matchingHostSet = Sets.newHashSet(matchingHosts); for (final String key : Sets.newHashSet(taskStatuses.keySet())) { if (!matchingHostSet.contains(key)) { taskStatuses.remove(key); } } final Map<String, Deployment> deployments = Maps.newHashMap(jobStatus.getDeployments()); for (final String key : Sets.newHashSet(deployments.keySet())) { if (!matchingHostSet.contains(key)) { deployments.remove(key); } } return JobStatus.newBuilder() .setJob(jobStatus.getJob()) .setDeployments(deployments) .setTaskStatuses(taskStatuses) .build(); }
@Override public TaskStatus call() throws Exception { final String output = cli("status", "--json", "--job", jobId.toString()); final Map<JobId, JobStatus> statusMap; try { statusMap = Json.read(output, new TypeReference<Map<JobId, JobStatus>>() {}); } catch (IOException e) { return null; } final JobStatus status = statusMap.get(jobId); if (status == null) { return null; } final TaskStatus taskStatus = status.getTaskStatuses().get(host); if (taskStatus == null) { return null; } if (taskStatus.getState() != state) { return null; } return taskStatus; } });
@Override public Object call() throws Exception { final JobStatus jobStatus = getOrNull(client.jobStatus(jobId)); final TaskStatus taskStatus = jobStatus.getTaskStatuses().get(testHost()); final PortMapping port = taskStatus.getPorts().get("poke"); assert port.getExternalPort() != null; if (poke(port.getExternalPort())) { return true; } else { return null; } } });
@Override public Object call() throws Exception { final JobStatus jobStatus = getOrNull(client.jobStatus(jobId)); final TaskStatus taskStatus = jobStatus.getTaskStatuses().get(host); if (taskStatus.getThrottled() == FLAPPING) { return true; } final PortMapping port = taskStatus.getPorts().get("poke"); assert port.getExternalPort() != null; poke(port.getExternalPort()); return null; } });
private void undeploy(final JobId jobId) throws Exception { // Check job status can be queried final JobStatus jobStatus = client.jobStatus(jobId).get(); assertEquals(RUNNING, jobStatus.getTaskStatuses().get(testHost()).getState()); // Undeploy the job final JobUndeployResponse undeployed = client.undeploy(jobId, testHost()).get(); assertEquals(JobUndeployResponse.Status.OK, undeployed.getStatus()); // Wait for the task to disappear awaitTaskGone(client, testHost(), jobId, LONG_WAIT_SECONDS, SECONDS); }
continue; final Map<String, TaskStatus> taskStatuses = jobStatus.getTaskStatuses(); if (exact) { for (final String host : prefixes) {
assertTrue("should only have deployment info for aHost", status.getDeployments().containsKey(aHost)); assertEquals("Task statuses should only have one item", 1, status.getTaskStatuses().size()); assertTrue("should only have status info for aHost", status.getTaskStatuses().containsKey(aHost));
final TaskStatus taskStatus = jobStatus.getTaskStatuses().get(testHost()); getNewDockerClient().killContainer(taskStatus.getContainerId());
void verifyHealthy() throws AssertionError { log.debug("Checking health of {}", job.getImage()); final JobStatus status = Futures.getUnchecked(client.jobStatus(job.getId())); if (status == null) { return; } for (Map.Entry<String, TaskStatus> entry : status.getTaskStatuses().entrySet()) { verifyHealthy(entry.getKey(), entry.getValue()); } }
private boolean showStatusesForHosts(final String hostPattern, final Set<JobId> jobIds, final Map<JobId, JobStatus> statuses, final HostStatusDisplayer statusDisplayer) { boolean noHostMatchedEver = true; for (final JobId jobId : Ordering.natural().sortedCopy(jobIds)) { final JobStatus jobStatus = statuses.get(jobId); // jobStatus will be null if the job was deleted after we first got the list of job IDs if (jobStatus == null) { continue; } final Map<String, TaskStatus> taskStatuses = Maps.newTreeMap(); taskStatuses.putAll(jobStatus.getTaskStatuses()); // Add keys for jobs that were deployed to a host, // but for which we didn't get a reported task status. // This will help us see hosts where jobs aren't running correctly. for (final String host : jobStatus.getDeployments().keySet()) { if (!taskStatuses.containsKey(host)) { taskStatuses.put(host, null); } } final FluentIterable<String> matchingHosts = FluentIterable .from(taskStatuses.keySet()) .filter(containsPattern(hostPattern)); if (Strings.isNullOrEmpty(hostPattern) || !Strings.isNullOrEmpty(hostPattern) && !matchingHosts.isEmpty()) { noHostMatchedEver = false; } statusDisplayer.matchedStatus(jobStatus, matchingHosts, taskStatuses); } return noHostMatchedEver; }
private JobStatus filterJobStatus(final JobStatus jobStatus, final Iterable<String> matchingHosts) { final Map<String, TaskStatus> taskStatuses = Maps.newHashMap(jobStatus.getTaskStatuses()); final Set<String> matchingHostSet = Sets.newHashSet(matchingHosts); for (final String key : Sets.newHashSet(taskStatuses.keySet())) { if (!matchingHostSet.contains(key)) { taskStatuses.remove(key); } } final Map<String, Deployment> deployments = Maps.newHashMap(jobStatus.getDeployments()); for (final String key : Sets.newHashSet(deployments.keySet())) { if (!matchingHostSet.contains(key)) { deployments.remove(key); } } return JobStatus.newBuilder() .setJob(jobStatus.getJob()) .setDeployments(deployments) .setTaskStatuses(taskStatuses) .build(); }
@Override public TaskStatus call() throws Exception { final JobStatus status = Futures.getUnchecked(client.jobStatus(job.getId())); if (status == null) { log.debug("Job status not available"); return null; } final TaskStatus taskStatus = status.getTaskStatuses().get(host); if (taskStatus == null) { log.debug("Task status not available on {}", host); return null; } if (!messagePrinted.get() && !isNullOrEmpty(jobDeployedMessageFormat) && !isNullOrEmpty(taskStatus.getContainerId())) { outputDeployedMessage(host, taskStatus.getContainerId()); messagePrinted.set(true); } verifyHealthy(host, taskStatus); final TaskStatus.State state = taskStatus.getState(); log.info("Job state of {}: {}", job.getImage(), state); if (state == TaskStatus.State.RUNNING) { return taskStatus; } return null; } }
continue; final Map<String, TaskStatus> taskStatuses = jobStatus.getTaskStatuses(); if (exact) { for (final String host : prefixes) {