@Override public void expect(ClusterState state, SchedulerDriver mockDriver) { ArgumentCaptor<Protos.TaskID> taskIdCaptor = ArgumentCaptor.forClass(Protos.TaskID.class); Mockito.verify(mockDriver, Mockito.atLeastOnce()).killTask(taskIdCaptor.capture()); Protos.TaskID taskId = state.getTaskId(taskName); long matchingTaskKills = taskIdCaptor.getAllValues().stream().filter(i -> taskId.equals(i)).count(); Assert.assertEquals(String.format("Task with name %s (id %s) was killed %d time%s", taskName, taskId.getValue(), matchingTaskKills, matchingTaskKills == 1 ? "" : "s"), totalTimes, matchingTaskKills); }
@EventListener public void onStatusUpdate(StatusUpdateEvent event) { if (isTerminalTaskState(event.getTaskStatus().getState())) { set("tasks", allTaskInfos().stream() .filter(task -> !task.getTaskId().equals(event.getTaskStatus().getTaskId())) .collect(Collectors.toSet()) ); } }
@EventListener public void onStatusUpdate(StatusUpdateEvent event) { if (MesosHelper.isTerminalTaskState(event.getTaskStatus().getState())) { final Set<Protos.TaskInfo> taskInfos = allTaskInfos(); final Optional<Protos.TaskInfo> taskInfo = taskInfos.stream().filter(task -> task.getTaskId().equals(event.getTaskStatus().getTaskId())).findFirst(); taskInfo.ifPresent(taskInfos::remove); save(taskInfos); } }
repairedStatuses.put( task.getName(), status.toBuilder().setState(status.getState()).build()); } else if (!status.getTaskId().equals(task.getTaskId())) { LOGGER.warn( "Found StateStore status inconsistency for task {}: task.taskId={}, " +
if (mesosTrackers.get(tracker).taskId.equals(taskStatus.getTaskId())) { LOG.info("Removing terminated TaskTracker: " + tracker); mesosTrackers.get(tracker).stop();
!currentStatusOptional.get().getTaskId().equals(status.getTaskId()))
@java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof org.apache.mesos.scheduler.Protos.Call.Acknowledge)) { return super.equals(obj); } org.apache.mesos.scheduler.Protos.Call.Acknowledge other = (org.apache.mesos.scheduler.Protos.Call.Acknowledge) obj; boolean result = true; result = result && (hasSlaveId() == other.hasSlaveId()); if (hasSlaveId()) { result = result && getSlaveId() .equals(other.getSlaveId()); } result = result && (hasTaskId() == other.hasTaskId()); if (hasTaskId()) { result = result && getTaskId() .equals(other.getTaskId()); } result = result && (hasUuid() == other.hasUuid()); if (hasUuid()) { result = result && getUuid() .equals(other.getUuid()); } result = result && unknownFields.equals(other.unknownFields); return result; }
@java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof org.apache.mesos.scheduler.Protos.Call.Kill)) { return super.equals(obj); } org.apache.mesos.scheduler.Protos.Call.Kill other = (org.apache.mesos.scheduler.Protos.Call.Kill) obj; boolean result = true; result = result && (hasTaskId() == other.hasTaskId()); if (hasTaskId()) { result = result && getTaskId() .equals(other.getTaskId()); } result = result && (hasSlaveId() == other.hasSlaveId()); if (hasSlaveId()) { result = result && getSlaveId() .equals(other.getSlaveId()); } result = result && (hasKillPolicy() == other.hasKillPolicy()); if (hasKillPolicy()) { result = result && getKillPolicy() .equals(other.getKillPolicy()); } result = result && unknownFields.equals(other.unknownFields); return result; }
@Test public void installAndRecover() throws Exception { install(); Collection<? extends Step> incompleteSteps = getIncompleteSteps(); assertTrue(incompleteSteps.isEmpty()); final CassandraDaemonTask task = cassandraState.getDaemons().get("node-0"); scheduler.statusUpdate(driver, TestUtils.generateStatus(task.getTaskInfo().getTaskId(), Protos.TaskState.TASK_KILLED)); Set<Protos.TaskStatus> taskStatuses = cassandraState.getTaskStatuses(); final Optional<Protos.TaskStatus> first = taskStatuses.stream().filter(status -> status.getTaskId().equals(task.getTaskInfo().getTaskId())).findFirst(); assertEquals(Protos.TaskState.TASK_KILLED, first.get().getState()); final CassandraTask templateTask = cassandraState.get("node-0-task-template").get(); final Protos.Offer offer = TestUtils.generateReplacementOffer(frameworkId.getValue(), task.getTaskInfo(), templateTask.getTaskInfo()); scheduler.resourceOffers(driver, Arrays.asList(offer)); Collection<QueuedSchedulerDriver.OfferOperations> offerOps = driver.drainAccepted(); assertEquals(String.format("expected accepted offer: %s", offer), 1, offerOps.size()); Collection<Protos.Offer.Operation> ops = offerOps.iterator().next().getOperations(); launchAll(ops, scheduler, driver); taskStatuses = cassandraState.getTaskStatuses(); final Optional<Protos.TaskStatus> node0Status = taskStatuses.stream().filter(status -> { try { return org.apache.mesos.offer.TaskUtils.toTaskName(status.getTaskId()).equals(task.getTaskInfo().getName()); } catch (Exception e) { throw new RuntimeException(e); } }).findFirst(); assertEquals(Protos.TaskState.TASK_RUNNING, node0Status.get().getState()); }
@java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof org.apache.mesos.executor.Protos.Event.Acknowledged)) { return super.equals(obj); } org.apache.mesos.executor.Protos.Event.Acknowledged other = (org.apache.mesos.executor.Protos.Event.Acknowledged) obj; boolean result = true; result = result && (hasTaskId() == other.hasTaskId()); if (hasTaskId()) { result = result && getTaskId() .equals(other.getTaskId()); } result = result && (hasUuid() == other.hasUuid()); if (hasUuid()) { result = result && getUuid() .equals(other.getUuid()); } result = result && unknownFields.equals(other.unknownFields); return result; }
@java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof org.apache.mesos.scheduler.Protos.Call.Reconcile.Task)) { return super.equals(obj); } org.apache.mesos.scheduler.Protos.Call.Reconcile.Task other = (org.apache.mesos.scheduler.Protos.Call.Reconcile.Task) obj; boolean result = true; result = result && (hasTaskId() == other.hasTaskId()); if (hasTaskId()) { result = result && getTaskId() .equals(other.getTaskId()); } result = result && (hasSlaveId() == other.hasSlaveId()); if (hasSlaveId()) { result = result && getSlaveId() .equals(other.getSlaveId()); } result = result && unknownFields.equals(other.unknownFields); return result; }
@java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof org.apache.mesos.executor.Protos.Event.Kill)) { return super.equals(obj); } org.apache.mesos.executor.Protos.Event.Kill other = (org.apache.mesos.executor.Protos.Event.Kill) obj; boolean result = true; result = result && (hasTaskId() == other.hasTaskId()); if (hasTaskId()) { result = result && getTaskId() .equals(other.getTaskId()); } result = result && (hasKillPolicy() == other.hasKillPolicy()); if (hasKillPolicy()) { result = result && getKillPolicy() .equals(other.getKillPolicy()); } result = result && unknownFields.equals(other.unknownFields); return result; }