@GET @Path("/{name}") @Produces(APPLICATION_JSON) @Timed @ExceptionMetered public Response getDeploymentGroup(@PathParam("name") final String name) { try { return Response.ok(model.getDeploymentGroup(name)).build(); } catch (final DeploymentGroupDoesNotExistException e) { return Response.status(Response.Status.NOT_FOUND).build(); } }
public Response getDeploymentGroupStatus(@PathParam("name") @Valid final String name) { try { final DeploymentGroup deploymentGroup = model.getDeploymentGroup(name); final DeploymentGroupStatus deploymentGroupStatus = model.getDeploymentGroupStatus(name);
public Response getDeploymentGroupStatus(@PathParam("name") @Valid final String name) { try { final DeploymentGroup deploymentGroup = model.getDeploymentGroup(name); final DeploymentGroupStatus deploymentGroupStatus = model.getDeploymentGroupStatus(name);
@POST @Produces(APPLICATION_JSON) @Timed @ExceptionMetered public Response createDeploymentGroup(@Valid final DeploymentGroup deploymentGroup) { try { model.addDeploymentGroup(deploymentGroup); return Response.ok(CREATED_RESPONSE).build(); } catch (DeploymentGroupExistsException ignored) { final DeploymentGroup existing; try { existing = model.getDeploymentGroup(deploymentGroup.getName()); } catch (DeploymentGroupDoesNotExistException e) { // Edge condition: There's a race where someone can potentially remove the deployment-group // while this operation is in progress. This should be very rare. If it does happen, // return 500. return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); } if (!Objects.equals(existing.getHostSelectors(), deploymentGroup.getHostSelectors())) { return Response.ok(DEPLOYMENT_GROUP_ALREADY_EXISTS_RESPONSE).build(); } return Response.ok(NOT_MODIFIED_RESPONSE).build(); } }
@POST @Path("/{name}/rolling-update") @Produces(APPLICATION_JSON) @Timed @ExceptionMetered public Response rollingUpdate(@PathParam("name") @Valid final String name, @Valid final RollingUpdateRequest args) { try { final DeploymentGroup deploymentGroup = model.getDeploymentGroup(name); model.rollingUpdate(deploymentGroup, args.getJob(), args.getRolloutOptions()); return Response.ok(new RollingUpdateResponse(RollingUpdateResponse.Status.OK)).build(); } catch (DeploymentGroupDoesNotExistException e) { return Response.ok(new RollingUpdateResponse( RollingUpdateResponse.Status.DEPLOYMENT_GROUP_NOT_FOUND)).build(); } catch (JobDoesNotExistException e) { return Response.ok(new RollingUpdateResponse( RollingUpdateResponse.Status.JOB_NOT_FOUND)).build(); } }
@GET @Path("/{name}") @Produces(APPLICATION_JSON) @Timed @ExceptionMetered public Response getDeploymentGroup(@PathParam("name") final String name) { try { return Response.ok(model.getDeploymentGroup(name)).build(); } catch (final DeploymentGroupDoesNotExistException e) { return Response.status(Response.Status.NOT_FOUND).build(); } }
@POST @Path("/{name}/rolling-update") @Produces(APPLICATION_JSON) @Timed @ExceptionMetered public Response rollingUpdate(@PathParam("name") @Valid final String name, @Valid final RollingUpdateRequest args) { try { final DeploymentGroup deploymentGroup = model.getDeploymentGroup(name); model.rollingUpdate(deploymentGroup, args.getJob(), args.getRolloutOptions()); return Response.ok(new RollingUpdateResponse(RollingUpdateResponse.Status.OK)).build(); } catch (DeploymentGroupDoesNotExistException e) { return Response.ok(new RollingUpdateResponse( RollingUpdateResponse.Status.DEPLOYMENT_GROUP_NOT_FOUND)).build(); } catch (JobDoesNotExistException e) { return Response.ok(new RollingUpdateResponse( RollingUpdateResponse.Status.JOB_NOT_FOUND)).build(); } }
@POST @Produces(APPLICATION_JSON) @Timed @ExceptionMetered public Response createDeploymentGroup(@Valid final DeploymentGroup deploymentGroup) { try { model.addDeploymentGroup(deploymentGroup); return Response.ok(CREATED_RESPONSE).build(); } catch (DeploymentGroupExistsException ignored) { final DeploymentGroup existing; try { existing = model.getDeploymentGroup(deploymentGroup.getName()); } catch (DeploymentGroupDoesNotExistException e) { // Edge condition: There's a race where someone can potentially remove the deployment-group // while this operation is in progress. This should be very rare. If it does happen, // return 500. return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); } if (!Objects.equals(existing.getHostSelectors(), deploymentGroup.getHostSelectors())) { return Response.ok(DEPLOYMENT_GROUP_ALREADY_EXISTS_RESPONSE).build(); } return Response.ok(NOT_MODIFIED_RESPONSE).build(); } }