public static SingularityDeployKey fromDeploy(SingularityDeploy deploy) { return new SingularityDeployKey(deploy.getRequestId(), deploy.getId()); }
private List<SingularityTaskId> getHealthcheckedHealthyTasks(final SingularityDeploy deploy, final Collection<SingularityTaskId> matchingActiveTasks, final boolean isDeployPending) { final Map<SingularityTaskId, SingularityTaskHealthcheckResult> healthcheckResults = taskManager.getLastHealthcheck(matchingActiveTasks); final List<SingularityTaskId> healthyTaskIds = Lists.newArrayListWithCapacity(matchingActiveTasks.size()); List<SingularityRequestHistory> requestHistories = requestManager.getRequestHistory(deploy.getRequestId()); for (SingularityTaskId taskId : matchingActiveTasks) { DeployHealth individualTaskHealth; if (healthchecksSkipped(taskId, requestHistories, deploy)) { LOG.trace("Detected skipped healthchecks for {}", taskId); individualTaskHealth = DeployHealth.HEALTHY; } else { individualTaskHealth = getTaskHealth(deploy, isDeployPending, Optional.fromNullable(healthcheckResults.get(taskId)), taskId); } if (individualTaskHealth == DeployHealth.HEALTHY) { healthyTaskIds.add(taskId); } } return healthyTaskIds; }
private DeployHealth getHealthcheckDeployState(final SingularityDeploy deploy, final Collection<SingularityTaskId> matchingActiveTasks, final boolean isDeployPending) { Map<SingularityTaskId, SingularityTaskHealthcheckResult> healthcheckResults = taskManager.getLastHealthcheck(matchingActiveTasks); List<SingularityRequestHistory> requestHistories = requestManager.getRequestHistory(deploy.getRequestId()); for (SingularityTaskId taskId : matchingActiveTasks) { DeployHealth individualTaskHealth; if (healthchecksSkipped(taskId, requestHistories, deploy)) { LOG.trace("Detected skipped healthchecks for {}", taskId); individualTaskHealth = DeployHealth.HEALTHY; } else { individualTaskHealth = getTaskHealth(deploy, isDeployPending, Optional.fromNullable(healthcheckResults.get(taskId)), taskId); } if (individualTaskHealth != DeployHealth.HEALTHY) { return individualTaskHealth; } } return DeployHealth.HEALTHY; }
public SingularityCreateResult saveDeploy(SingularityRequest request, SingularityDeployMarker deployMarker, SingularityDeploy deploy) { final SingularityCreateResult deploySaveResult = create(getDeployDataPath(deploy.getRequestId(), deploy.getId()), deploy, deployTranscoder); if (deploySaveResult == SingularityCreateResult.EXISTED) { LOG.info("Deploy object for {} already existed (new marker: {})", deploy, deployMarker); } singularityEventListener.deployHistoryEvent(new SingularityDeployUpdate(deployMarker, Optional.of(deploy), DeployEventType.STARTING, Optional.<SingularityDeployResult>absent())); create(getDeployMarkerPath(deploy.getRequestId(), deploy.getId()), deployMarker, deployMarkerTranscoder); final Optional<SingularityRequestDeployState> currentState = getRequestDeployState(deploy.getRequestId()); Optional<SingularityDeployMarker> activeDeploy = Optional.absent(); Optional<SingularityDeployMarker> pendingDeploy = Optional.absent(); if (request.isDeployable()) { if (currentState.isPresent()) { activeDeploy = currentState.get().getActiveDeploy(); } pendingDeploy = Optional.of(deployMarker); } else { activeDeploy = Optional.of(deployMarker); } final SingularityRequestDeployState newState = new SingularityRequestDeployState(deploy.getRequestId(), activeDeploy, pendingDeploy); return saveNewRequestDeployState(newState); }
protected SingularityDeploy initAndFinishDeploy(SingularityRequest request, SingularityDeployBuilder builder, Optional<Resources> maybeResources) { SingularityDeploy deploy = builder.setResources(maybeResources).build(); SingularityDeployMarker marker = new SingularityDeployMarker(deploy.getRequestId(), deploy.getId(), System.currentTimeMillis(), Optional.<String> absent(), Optional.<String> absent()); deployManager.saveDeploy(request, marker, deploy); finishDeploy(marker, deploy); return deploy; }
checkBadRequest(deploy.getRequestId() != null && deploy.getRequestId().equals(request.getId()), "Deploy id must match request id");
@Test public void testDeployCountPurging() { SingularityRequest requestOne = buildRequest("request1"); SingularityRequest requestTwo = buildRequest("request2"); SingularityDeploy requestOneDeployOne = initAndFinishDeploy(requestOne, "r1d1"); SingularityDeploy requestOneDeployTwo = initAndFinishDeploy(requestOne, "r1d2"); SingularityDeploy requestOneDeployThree = initAndFinishDeploy(requestOne, "r1d3"); SingularityDeploy requestOneDeployFour = initAndFinishDeploy(requestOne, "r1d4"); // r1d4 is the active deploy, not eligible for purging SingularityDeploy requestTwoDeployOne = initAndFinishDeploy(requestTwo, "r2d1"); SingularityDeploy requestTwoDeployTwo = initAndFinishDeploy(requestTwo, "r2d2"); // r2d2 is the active deploy, not eligible for purging configuration.setMaxStaleDeploysPerRequestInZkWhenNoDatabase(Optional.of(2)); deployHistoryPersister.runActionOnPoll(); Assert.assertTrue(!deployManager.getDeployHistory(requestOneDeployOne.getRequestId(), requestOneDeployOne.getId(), true).isPresent()); Assert.assertTrue(deployManager.getDeployHistory(requestOneDeployTwo.getRequestId(), requestOneDeployTwo.getId(), true).isPresent()); Assert.assertTrue(deployManager.getDeployHistory(requestOneDeployThree.getRequestId(), requestOneDeployThree.getId(), true).isPresent()); Assert.assertTrue(deployManager.getDeployHistory(requestOneDeployFour.getRequestId(), requestOneDeployFour.getId(), true).isPresent()); Assert.assertTrue(deployManager.getDeployHistory(requestTwoDeployOne.getRequestId(), requestTwoDeployOne.getId(), true).isPresent()); Assert.assertTrue(deployManager.getDeployHistory(requestTwoDeployTwo.getRequestId(), requestTwoDeployTwo.getId(), true).isPresent()); }
final String requestId = checkNotNullBadRequest(deploy.getRequestId(), "DeployRequest must have a non-null requestId");
String requestId = deploy.get().getRequestId(); String deployId = deploy.get().getId(); SingularityRunNowRequest runNowRequest = deploy.get().getRunImmediately().get();
private List<SingularityTaskId> getHealthcheckedHealthyTasks(final SingularityDeploy deploy, final Collection<SingularityTaskId> matchingActiveTasks, final boolean isDeployPending) { final Map<SingularityTaskId, SingularityTaskHealthcheckResult> healthcheckResults = taskManager.getLastHealthcheck(matchingActiveTasks); final List<SingularityTaskId> healthyTaskIds = Lists.newArrayListWithCapacity(matchingActiveTasks.size()); List<SingularityRequestHistory> requestHistories = requestManager.getRequestHistory(deploy.getRequestId()); for (SingularityTaskId taskId : matchingActiveTasks) { DeployHealth individualTaskHealth; if (healthchecksSkipped(taskId, requestHistories, deploy)) { LOG.trace("Detected skipped healthchecks for {}", taskId); individualTaskHealth = DeployHealth.HEALTHY; } else { individualTaskHealth = getTaskHealth(deploy, isDeployPending, Optional.fromNullable(healthcheckResults.get(taskId)), taskId); } if (individualTaskHealth == DeployHealth.HEALTHY) { healthyTaskIds.add(taskId); } } return healthyTaskIds; }
private DeployHealth getHealthcheckDeployState(final SingularityDeploy deploy, final Collection<SingularityTaskId> matchingActiveTasks, final boolean isDeployPending) { Map<SingularityTaskId, SingularityTaskHealthcheckResult> healthcheckResults = taskManager.getLastHealthcheck(matchingActiveTasks); List<SingularityRequestHistory> requestHistories = requestManager.getRequestHistory(deploy.getRequestId()); for (SingularityTaskId taskId : matchingActiveTasks) { DeployHealth individualTaskHealth; if (healthchecksSkipped(taskId, requestHistories, deploy)) { LOG.trace("Detected skipped healthchecks for {}", taskId); individualTaskHealth = DeployHealth.HEALTHY; } else { individualTaskHealth = getTaskHealth(deploy, isDeployPending, Optional.fromNullable(healthcheckResults.get(taskId)), taskId); } if (individualTaskHealth != DeployHealth.HEALTHY) { return individualTaskHealth; } } return DeployHealth.HEALTHY; }
public SingularityCreateResult saveDeploy(SingularityRequest request, SingularityDeployMarker deployMarker, SingularityDeploy deploy) { final SingularityCreateResult deploySaveResult = create(getDeployDataPath(deploy.getRequestId(), deploy.getId()), deploy, deployTranscoder); if (deploySaveResult == SingularityCreateResult.EXISTED) { LOG.info("Deploy object for {} already existed (new marker: {})", deploy, deployMarker); } singularityEventListener.deployHistoryEvent(new SingularityDeployUpdate(deployMarker, Optional.of(deploy), DeployEventType.STARTING, Optional.<SingularityDeployResult>absent())); create(getDeployMarkerPath(deploy.getRequestId(), deploy.getId()), deployMarker, deployMarkerTranscoder); final Optional<SingularityRequestDeployState> currentState = getRequestDeployState(deploy.getRequestId()); Optional<SingularityDeployMarker> activeDeploy = Optional.absent(); Optional<SingularityDeployMarker> pendingDeploy = Optional.absent(); if (request.isDeployable()) { if (currentState.isPresent()) { activeDeploy = currentState.get().getActiveDeploy(); } pendingDeploy = Optional.of(deployMarker); } else { activeDeploy = Optional.of(deployMarker); } final SingularityRequestDeployState newState = new SingularityRequestDeployState(deploy.getRequestId(), activeDeploy, pendingDeploy); return saveNewRequestDeployState(newState); }
assertTrue(task.getMesosTask().getContainer().getDocker().getParametersList().contains(envParameter)); assertEquals(String.format("/container/%s/%s", task.getTask().getTaskRequest().getDeploy().getRequestId(), task.getTask().getTaskRequest().getDeploy().getId()), task.getMesosTask().getContainer().getVolumes(1).getContainerPath()); assertEquals(String.format("/host/%s", task.getMesosTask().getTaskId().getValue()), task.getMesosTask().getContainer().getVolumes(1).getHostPath()); assertEquals(Mode.RO, task.getMesosTask().getContainer().getVolumes(1).getMode());
protected SingularityDeploy initAndFinishDeploy(SingularityRequest request, SingularityDeployBuilder builder, Optional<Resources> maybeResources) { SingularityDeploy deploy = builder.setResources(maybeResources).build(); SingularityDeployMarker marker = new SingularityDeployMarker(deploy.getRequestId(), deploy.getId(), System.currentTimeMillis(), Optional.<String> absent(), Optional.<String> absent()); deployManager.saveDeploy(request, marker, deploy); finishDeploy(marker, deploy); return deploy; }
checkBadRequest(deploy.getRequestId() != null && deploy.getRequestId().equals(request.getId()), "Deploy id must match request id");
final String requestId = checkNotNullBadRequest(deploy.getRequestId(), "DeployRequest must have a non-null requestId");
@Test public void testDeployCountPurging() { SingularityRequest requestOne = buildRequest("request1"); SingularityRequest requestTwo = buildRequest("request2"); SingularityDeploy requestOneDeployOne = initAndFinishDeploy(requestOne, "r1d1"); SingularityDeploy requestOneDeployTwo = initAndFinishDeploy(requestOne, "r1d2"); SingularityDeploy requestOneDeployThree = initAndFinishDeploy(requestOne, "r1d3"); SingularityDeploy requestOneDeployFour = initAndFinishDeploy(requestOne, "r1d4"); // r1d4 is the active deploy, not eligible for purging SingularityDeploy requestTwoDeployOne = initAndFinishDeploy(requestTwo, "r2d1"); SingularityDeploy requestTwoDeployTwo = initAndFinishDeploy(requestTwo, "r2d2"); // r2d2 is the active deploy, not eligible for purging configuration.setMaxStaleDeploysPerRequestInZkWhenNoDatabase(Optional.of(2)); deployHistoryPersister.runActionOnPoll(); Assert.assertTrue(!deployManager.getDeployHistory(requestOneDeployOne.getRequestId(), requestOneDeployOne.getId(), true).isPresent()); Assert.assertTrue(deployManager.getDeployHistory(requestOneDeployTwo.getRequestId(), requestOneDeployTwo.getId(), true).isPresent()); Assert.assertTrue(deployManager.getDeployHistory(requestOneDeployThree.getRequestId(), requestOneDeployThree.getId(), true).isPresent()); Assert.assertTrue(deployManager.getDeployHistory(requestOneDeployFour.getRequestId(), requestOneDeployFour.getId(), true).isPresent()); Assert.assertTrue(deployManager.getDeployHistory(requestTwoDeployOne.getRequestId(), requestTwoDeployOne.getId(), true).isPresent()); Assert.assertTrue(deployManager.getDeployHistory(requestTwoDeployTwo.getRequestId(), requestTwoDeployTwo.getId(), true).isPresent()); }
String requestId = deploy.get().getRequestId(); String deployId = deploy.get().getId(); SingularityRunNowRequest runNowRequest = deploy.get().getRunImmediately().get();
assertTrue(task.getMesosTask().getContainer().getDocker().getParametersList().contains(envParameter)); assertEquals(String.format("/container/%s/%s", task.getTask().getTaskRequest().getDeploy().getRequestId(), task.getTask().getTaskRequest().getDeploy().getId()), task.getMesosTask().getContainer().getVolumes(1).getContainerPath()); assertEquals(String.format("/host/%s", task.getMesosTask().getTaskId().getValue()), task.getMesosTask().getContainer().getVolumes(1).getHostPath()); assertEquals(Mode.RO, task.getMesosTask().getContainer().getVolumes(1).getMode());