private void queryComputes(EpzComputeEnumerationTaskState state, Query computeQuery,
EpzComputeEnumerationTaskState.SubStage updateStage,
EpzComputeEnumerationTaskState.SubStage nextStage) {
QueryTask task = QueryTask.Builder.createDirectTask().setQuery(computeQuery)
.setResultLimit(COMPUTE_PAGE_SIZE).addOption(QueryOption.EXPAND_CONTENT).build();
sendRequest(Operation
.createPost(this, ServiceUriPaths.CORE_QUERY_TASKS)
.setBody(task)
.setCompletion((o, e) -> {
if (e != null) {
failTask("Error quering for computes", e);
return;
}
ServiceDocumentQueryResult result = o.getBody(QueryTask.class).results;
if (result.nextPageLink == null) {
logFine("No computes found to %s resource pool %s",
updateStage == EpzComputeEnumerationTaskState.SubStage.ASSIGN_COMPUTES
? "assign to" : "unassign from",
state.resourcePoolLink);
proceedTo(nextStage);
} else {
proceedTo(updateStage, s -> {
s.nextPageLink = result.nextPageLink;
});
}
}));
}