private void queryContainerResources(ContainerOperationTaskState state) {
QueryTask computeQuery = createResourcesQuery(ContainerState.class, state.resourceLinks);
ServiceDocumentQuery<ContainerState> query = new ServiceDocumentQuery<>(getHost(),
ContainerState.class);
final List<ContainerState> documents = new ArrayList<>(state.resourceLinks.size());
query.query(computeQuery, (r) -> {
if (r.hasException()) {
failTask("Failure retrieving query results", r.getException());
} else if (r.hasResult()) {
if (isSystemContainer(r.getResult())) {
failTask(null, new LocalizableValidationException(
"Day2 operations are not supported for system container",
"request.system.container.day2"));
}
documents.add(r.getResult());
} else {
if (documents.isEmpty()) {
if (ContainerOperationType.DELETE.id.equals(state.operation)) {
logWarning("No resources found to be removed with links: %s",
state.resourceLinks);
proceedTo(SubStage.COMPLETED);
} else {
failTask("No available resources", null);
}
} else {
performResourceOperations(state, documents, null);
}
}
});
}