@Override protected boolean matchesSafely(final TaskStatusEvent event) { final State actual = event.getStatus().getState(); for (final State state : possibleStates) { if (state == actual) { return true; } } return false; } };
@Override public TaskStatus.State apply(@Nullable TaskStatusEvent input) { if (input != null) { return input.getStatus().getState(); } return null; } };
@Override public TaskStatus call() throws Exception { final HostStatus hostStatus = getOrNull(client.hostStatus(host)); if (hostStatus == null) { return null; } final TaskStatus taskStatus = hostStatus.getStatuses().get(jobId); return (taskStatus != null && taskStatus.getState() == state) ? taskStatus : null; } });
@Override public TaskStatus call() throws Exception { final HostStatus hostStatus = client.hostStatus(testHost()).get(); final TaskStatus taskStatus = hostStatus.getStatuses().get(jobId1); return (taskStatus != null && taskStatus.getState() == RUNNING && !Objects.equals(taskStatus.getContainerId(), firstTaskStatus1.getContainerId())) ? taskStatus : null; } });
@Override public TaskStatus call() throws Exception { final HostStatus hostStatus = client.hostStatus(testHost()).get(); final TaskStatus taskStatus = hostStatus.getStatuses().get(jobId2); return (taskStatus != null && taskStatus.getState() == RUNNING && !Objects.equals(taskStatus.getContainerId(), firstTaskStatus2.getContainerId())) ? taskStatus : null; } });
@Override public TaskStatus call() throws Exception { final HostStatus hostStatus = client.hostStatus(testHost()).get(); final TaskStatus taskStatus = hostStatus.getStatuses().get(jobId); return (taskStatus != null && taskStatus.getContainerId() != null && taskStatus.getState() == RUNNING && !taskStatus.getContainerId().equals(firstTaskStatus.getContainerId())) ? taskStatus : null; } });
@Override public TaskStatus call() throws Exception { final HostStatus hostStatus = client.hostStatus(testHost()).get(); final TaskStatus taskStatus = hostStatus.getStatuses().get(jobId); return (taskStatus != null && taskStatus.getContainerId() != null && taskStatus.getState() == RUNNING && !taskStatus.getContainerId().equals(secondTaskStatus.getContainerId())) ? taskStatus : null; } });
@Override public TaskStatusEvents call() throws Exception { final TaskStatusEvents events = client.jobHistory(jobId).get(); final int size = events.getEvents().size(); if (size == 0) { return null; } // We sometimes get more than one PULLING_IMAGE in the history if a pull tempfails. int requiredEventCount = -1; for (int i = 0; i < size; i++) { if (events.getEvents().get(i).getStatus().getState() != State.PULLING_IMAGE) { requiredEventCount = i + 5; break; } } if (requiredEventCount == -1) { return null; } if (size < requiredEventCount) { return null; } return events; } });
@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 TaskStatusEvents jobHistory = getOrNull(client.jobHistory(jobId)); for (final TaskStatusEvent event : jobHistory.getEvents()) { if (event.getStatus().getState() == FAILED) { return true; } } 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); }
public void task(final JobId jobId, final String host, final TaskStatus ts, final Deployment deployment) { final String goal = (deployment == null) ? "" : deployment.getGoal().toString(); final int maxContainerId = full ? Integer.MAX_VALUE : 7; final String jobIdString = full ? jobId.toString() : jobId.toShortString(); if (ts == null) { table.row(jobIdString, host, goal, "", "", ""); } else { final List<String> portMappings = new ArrayList<>(); for (final Map.Entry<String, PortMapping> entry : ts.getPorts().entrySet()) { final PortMapping portMapping = entry.getValue(); portMappings.add(String.format("%s=%d:%d", entry.getKey(), portMapping.getInternalPort(), portMapping.getExternalPort())); } String state = ts.getState().toString(); if (ts.getThrottled() != ThrottleState.NO) { state += " (" + ts.getThrottled() + ")"; } final String ports = Joiner.on(" ").join(portMappings); final String cid = truncate(fromNullable(ts.getContainerId()).or(""), maxContainerId, ""); table.row(jobIdString, host, goal, state, cid, ports); } }
final String stateInfo = String.format( "(terminal job state %s, previous states: %s)", taskStatus.getState(), Joiner.on("->").join(previousJobStates)); metadata.put("jobState", taskStatus.getState()); metadata.put("previousJobStates", previousJobStates); metadata.put("throttleState", taskStatus.getThrottled());
final long timestamp = event.getTimestamp(); final TaskStatus status = checkNotNull(event.getStatus()); final State state = checkNotNull(status.getState()); String containerId = status.getContainerId(); containerId = containerId == null ? "<none>" : containerId;
final TaskStatus taskStatus = hostStatus.getStatuses().get(deployedJobId); if (taskStatus != null) { state = taskStatus.getState();
@Test public void testAgent() throws Exception { final JobId jobId = createAndAwaitJobRunning(); final byte[] data1 = curator.getData().forPath(Paths.statusHostJob(TEST_HOST, jobId)); assertNotNull(data1); final TaskStatus status = Json.read(data1, TaskStatus.class); assertNotNull(status); assertEquals(START, status.getGoal()); assertEquals(RUNNING, status.getState()); // stop so we can create and maintain the tombstone agent.stopAsync().awaitTerminated(); // create tombstone client.undeploy(jobId, TEST_HOST).get(); final byte[] data2 = curator.getData().forPath(Paths.statusHostJob(TEST_HOST, jobId)); assertNotNull(data2); final TaskStatus status2 = Json.read(data2, TaskStatus.class); assertNotNull(status2); assertEquals(START, status2.getGoal()); assertEquals(RUNNING, status2.getState()); }
@Test public void test() throws Exception { startDefaultMaster(); startDefaultAgent(testHost()); final HeliosClient client = defaultClient(); awaitHostStatus(client, testHost(), UP, LONG_WAIT_SECONDS, SECONDS); final JobId jobId = createJob(testJobName, testJobVersion, "this_sould_not_exist", ImmutableList.of("/bin/true")); deployJob(jobId, testHost()); awaitJobThrottle(client, testHost(), jobId, IMAGE_MISSING, LONG_WAIT_SECONDS, SECONDS); final HostStatus hostStatus = client.hostStatus(testHost()).get(); final TaskStatus taskStatus = hostStatus.getStatuses().get(jobId); assertEquals(TaskStatus.State.FAILED, taskStatus.getState()); } }
if (event.getStatus().getState() != State.PULLING_IMAGE) {
} else if (!taskStatus.getState().equals(TaskStatus.State.RUNNING)) {