public static void triggerForResourcePool(Service sender, String resourcePoolLink) {
PlacementCapacityUpdateTaskState task = new PlacementCapacityUpdateTaskState();
task.resourcePoolLink = resourcePoolLink;
task.documentSelfLink = extractRpId(task);
Operation.createPost(sender.getHost(), PlacementCapacityUpdateTaskService.FACTORY_LINK)
.addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE)
.setBody(task)
.setCompletion((o, e) -> {
if (o.getStatusCode() == Operation.STATUS_CODE_NOT_MODIFIED) {
sender.getHost().log(Level.FINE,
"Capacity update task already running for " + resourcePoolLink);
return;
}
if (e != null) {
sender.getHost().log(Level.WARNING,
"Failed to start capacity update task for %s: %s", resourcePoolLink,
e.getMessage());
return;
}
sender.getHost().log(Level.INFO,
"Started capacity update task for " + resourcePoolLink);
}).sendWith(sender);
}