private void handleFetchedComputeStates(ContainerDescription containerDesc, AdmiralAdapterTaskState state, String propValue, Consumer<ServiceDocumentQuery.ServiceDocumentQueryElementResult<ServiceDocument>> completionHandler, Operation o) { try { QueryTask qtr = o.getBody(QueryTask.class); if (qtr.results.documents == null || qtr.results.documents.isEmpty()) { logWarning("No available computes configured for: %s", propValue); completionHandler .accept(error(new Exception("No computes configured for: " + propValue))); } else { Collection<Object> values = qtr.results.documents.values(); if (values.isEmpty()) { completionHandler.accept(noResult()); return; } Collection<ComputeState> computeStates = convertToComputeStates(values); logInfo("Size of available compute states: %s", computeStates.size()); proceedWithPlacement(containerDesc, computeStates, state, completionHandler); } } catch (Throwable ex) { logSevere("Error occurred: %s", Utils.toString(ex)); completionHandler.accept(error(ex)); } }
.setCompletion((o, ex) -> { if (ex != null) { resultConsumer.accept(error(ex), null); } else { RegistrySearchResponse response = o.getBody(RegistrySearchResponse.class);
query.query(q, (r) -> { if (r.hasException()) { completionHandler.accept(error(r.getException())); } else if (r.hasResult()) { DockerImage dockerImage = r.getResult(); logWarning("No available hosts configured! Aborting deployment..."); completionHandler .accept(error(new Exception("No available hosts configured!")));
query.query(q, (r) -> { if (r.hasException()) { completionHandler.accept(error(r.getException())); } else if (r.hasResult()) { DockerImage dockerImage = r.getResult(); logWarning("No available hosts configured! Aborting deployment..."); completionHandler .accept(error(new Exception("No available hosts configured!")));
private void fetchGroupPlacement(AdmiralAdapterTaskState state, Consumer<ServiceDocumentQuery.ServiceDocumentQueryElementResult<GroupResourcePlacementState>> callbackFunction) { logInfo("Fetching group placement: %s", state.groupResourcePlacementLink); try { sendRequest(Operation.createGet(getHost(), state.groupResourcePlacementLink) .setCompletion((op, ex) -> { if (ex != null) { callbackFunction.accept(error(ex)); } else { GroupResourcePlacementState placement = op.getBody (GroupResourcePlacementState.class); callbackFunction.accept(result(placement, 1)); } })); } catch (Throwable ex) { logSevere("Unable to fetch group placement: %s. Error: %s", state.groupResourcePlacementLink, Utils.toString(ex)); } }
.setCompletion((o, ex) -> { if (ex != null) { resultConsumer.accept(error(ex));
.setCompletion((o, ex) -> { if (ex != null) { resultConsumer.accept(error(ex), null);
private void proceedWithComputeStates(ContainerDescription containerDesc, AdmiralAdapterTaskState state, Class<? extends ServiceDocument> type, String propId, String propValue, Consumer<ServiceDocumentQuery.ServiceDocumentQueryElementResult<ServiceDocument>> completionHandler) { QueryTask q = QueryUtil.buildPropertyQuery(type, propId, propValue); q.documentExpirationTimeMicros = ServiceDocumentQuery.getDefaultQueryExpiration(); QueryUtil.addExpandOption(q); sendRequest(Operation .createPost(UriUtils.buildUri(getHost(), ServiceUriPaths.CORE_QUERY_TASKS)) .setBody(q) .setCompletion( (o, e) -> { if (e != null) { completionHandler.accept(error(e)); return; } handleFetchedComputeStates(containerDesc, state, propValue, completionHandler, o); })); }
.setCompletion((o, e) -> { if (e != null) { completionHandler.accept(error(e)); return;