diff --git a/SingularityBase/src/main/java/com/hubspot/singularity/api/SingularityDeployRequest.java b/SingularityBase/src/main/java/com/hubspot/singularity/api/SingularityDeployRequest.java index 3ffdaec9929..d7164b918d4 100644 --- a/SingularityBase/src/main/java/com/hubspot/singularity/api/SingularityDeployRequest.java +++ b/SingularityBase/src/main/java/com/hubspot/singularity/api/SingularityDeployRequest.java @@ -13,18 +13,18 @@ public class SingularityDeployRequest { private final Optional unpauseOnSuccessfulDeploy; private final SingularityDeploy deploy; private final Optional message; - private final Optional newRequestData; + private final Optional updatedRequest; @JsonCreator public SingularityDeployRequest( @JsonProperty("deploy") SingularityDeploy deploy, @JsonProperty("unpauseOnSuccessfulDeploy") Optional unpauseOnSuccessfulDeploy, @JsonProperty("message") Optional message, - @JsonProperty("newRequestData") Optional newRequestData) { + @JsonProperty("updatedRequest") Optional updatedRequest) { this.deploy = deploy; this.unpauseOnSuccessfulDeploy = unpauseOnSuccessfulDeploy; this.message = message; - this.newRequestData = newRequestData; + this.updatedRequest = updatedRequest; } public SingularityDeployRequest(SingularityDeploy deploy, Optional unpauseOnSuccessfulDeploy, Optional message) { @@ -47,8 +47,8 @@ public Optional getMessage() { } @ApiModelProperty(required=false, value="use this request data for this deploy, and update the request on successful deploy") - public Optional getNewRequestData() { - return newRequestData; + public Optional getUpdatedRequest() { + return updatedRequest; } @JsonIgnore @@ -58,7 +58,7 @@ public boolean isUnpauseOnSuccessfulDeploy() { @Override public String toString() { - return "SingularityDeployRequest [unpauseOnSuccessfulDeploy=" + unpauseOnSuccessfulDeploy + ", deploy=" + deploy + ", message=" + message + ", newRequestData=" + newRequestData + "]"; + return "SingularityDeployRequest [unpauseOnSuccessfulDeploy=" + unpauseOnSuccessfulDeploy + ", deploy=" + deploy + ", message=" + message + ", updatedRequest=" + updatedRequest + "]"; } } diff --git a/SingularityService/src/main/java/com/hubspot/singularity/resources/DeployResource.java b/SingularityService/src/main/java/com/hubspot/singularity/resources/DeployResource.java index a051d9769bc..f84014d6bfb 100644 --- a/SingularityService/src/main/java/com/hubspot/singularity/resources/DeployResource.java +++ b/SingularityService/src/main/java/com/hubspot/singularity/resources/DeployResource.java @@ -90,28 +90,26 @@ public SingularityRequestParent deploy(@ApiParam(required=true) SingularityDeplo authorizationHelper.checkForAuthorization(requestWithState.getRequest(), user, SingularityAuthorizationScope.WRITE); - SingularityRequest newRequestData = requestWithState.getRequest(); - boolean hasUpdatedRequest = false; - if (deployRequest.getNewRequestData().isPresent()) { - newRequestData = validator.checkSingularityRequest(deployRequest.getNewRequestData().get(), Optional.of(requestWithState.getRequest()), Optional.absent(), Optional.of(deploy)); - hasUpdatedRequest = true; + SingularityRequest request = requestWithState.getRequest(); + if (deployRequest.getUpdatedRequest().isPresent()) { + request = validator.checkSingularityRequest(deployRequest.getUpdatedRequest().get(), Optional.of(requestWithState.getRequest()), Optional.absent(), Optional.of(deploy)); } if (!deployRequest.isUnpauseOnSuccessfulDeploy()) { checkConflict(requestWithState.getState() != RequestState.PAUSED, "Request %s is paused. Unable to deploy (it must be manually unpaused first)", requestWithState.getRequest().getId()); } - deploy = validator.checkDeploy(newRequestData, deploy); + deploy = validator.checkDeploy(request, deploy); final long now = System.currentTimeMillis(); SingularityDeployMarker deployMarker = new SingularityDeployMarker(requestId, deploy.getId(), now, deployUser, deployRequest.getMessage()); Optional deployProgress = Optional.absent(); - if (newRequestData.isLongRunning()) { + if (request.isLongRunning()) { deployProgress = Optional.of(new SingularityDeployProgress( - Math.min(deploy.getDeployInstanceCountPerStep().or(newRequestData.getInstancesSafe()), newRequestData.getInstancesSafe()), - deploy.getDeployInstanceCountPerStep().or(newRequestData.getInstancesSafe()), + Math.min(deploy.getDeployInstanceCountPerStep().or(request.getInstancesSafe()), request.getInstancesSafe()), + deploy.getDeployInstanceCountPerStep().or(request.getInstancesSafe()), deploy.getDeployStepWaitTimeMs().or(configuration.getDefaultDeployStepWaitTimeMs()), false, deploy.getAutoAdvanceDeploySteps().or(true), @@ -119,23 +117,23 @@ public SingularityRequestParent deploy(@ApiParam(required=true) SingularityDeplo System.currentTimeMillis())); } - SingularityPendingDeploy pendingDeployObj = new SingularityPendingDeploy(deployMarker, Optional. absent(), DeployState.WAITING, deployProgress, hasUpdatedRequest ? Optional.of(newRequestData) : Optional.absent()); + SingularityPendingDeploy pendingDeployObj = new SingularityPendingDeploy(deployMarker, Optional. absent(), DeployState.WAITING, deployProgress, deployRequest.getUpdatedRequest()); checkConflict(deployManager.createPendingDeploy(pendingDeployObj) != SingularityCreateResult.EXISTED, "Pending deploy already in progress for %s - cancel it or wait for it to complete (%s)", requestId, deployManager.getPendingDeploy(requestId).orNull()); - deployManager.saveDeploy(newRequestData, deployMarker, deploy); + deployManager.saveDeploy(request, deployMarker, deploy); if (requestWithState.getState() == RequestState.PAUSED) { - requestManager.deployToUnpause(newRequestData, now, deployUser, deployRequest.getMessage()); + requestManager.deployToUnpause(request, now, deployUser, deployRequest.getMessage()); } - if (newRequestData.isDeployable()) { + if (request.isDeployable()) { requestManager.addToPendingQueue(new SingularityPendingRequest(requestId, deployMarker.getDeployId(), now, deployUser, PendingType.NEW_DEPLOY, deployRequest.getDeploy().getSkipHealthchecksOnDeploy(), deployRequest.getMessage())); } - return fillEntireRequest(requestWithState, Optional.of(newRequestData)); + return fillEntireRequest(requestWithState, Optional.of(request)); } @DELETE