@Override public Service createServiceInstance() throws Throwable { return new ReservationRemovalTaskService(); } }
@Override protected void handleStartedStagePatch(ReservationRemovalTaskState state) { getGroupResourcePlacements(state); }
private void releaseResourcePlacement(ReservationRemovalTaskState state, GroupResourcePlacementState groupPlacementState) { ResourcePlacementReservationRequest reservationRequest = new ResourcePlacementReservationRequest(); reservationRequest.resourceCount = -state.resourceCount; reservationRequest.resourceDescriptionLink = state.resourceDescriptionLink; reservationRequest.referer = getSelfLink(); logInfo("Releasing placement instances: %d for descLink: %s and groupPlacementId: %s", reservationRequest.resourceCount, reservationRequest.resourceDescriptionLink, Service.getId(groupPlacementState.documentSelfLink)); sendRequest(Operation.createPatch(this, groupPlacementState.documentSelfLink) .setBody(reservationRequest) .setCompletion((o, e) -> { if (e != null) { failTask("Failure releasing group placement", e); return; } complete(); })); } }
private void getGroupResourcePlacements(ReservationRemovalTaskState state) { logInfo("Retrieving group resource placement: %s", state.groupResourcePlacementLink); sendRequest(Operation.createGet(this, state.groupResourcePlacementLink) .setCompletion((o, e) -> { if (e != null) { failTask("Failure retrieving group placement", e); return; } GroupResourcePlacementState groupPlacementState = o .getBody(GroupResourcePlacementState.class); releaseResourcePlacement(state, groupPlacementState); })); }