public String getRequestTrackingLog() { return (serviceTaskCallback == null || serviceTaskCallback.isEmpty()) ? "" : " request: " + serviceTaskCallback.serviceSelfLink; }
@Override public void handlePatch(Operation op) { AdapterRequest request = op.getBody(AdapterRequest.class); request.validate(); logFine("Processing host operation request %s", request.getRequestTrackingLog()); if (request.operationTypeId.equals(ContainerHostOperationType.PING.id) && ComputeService.FACTORY_LINK.equals(request.resourceReference.getPath())) { directPing(request, op); } else if (request.operationTypeId.equals(ContainerHostOperationType.INFO.id) && ComputeService.FACTORY_LINK.equals(request.resourceReference.getPath())) { directInfo(request, op); } else if (request.operationTypeId.equals(ContainerHostOperationType.LIST_ENTITIES.id) && request.serviceTaskCallback.isEmpty()) { getComputeHost(request, op, request.resourceReference, context -> listEntities(request, context, op, direct)); } else { getComputeHost(request, op, request.resourceReference, context -> processOperation(request, context)); op.complete(); } }
firstStageWithLink.properties = firstStage.properties; if (firstStage.serviceTaskCallback != null && !firstStage.serviceTaskCallback.isEmpty()) { TransitionSource transitionSource = getTransitionSource( firstStage.serviceTaskCallback.serviceSelfLink, taskHistory.createdTimeMicros, && !stage.serviceTaskCallback.isEmpty() && (TaskState.isFinished(stage.taskInfo) || TaskState.isFailed(stage.taskInfo))) {
directHostInfo(request, op, hostComputeState); } else if (ContainerHostOperationType.LIST_CONTAINERS == request.getOperationType() && request.serviceTaskCallback.isEmpty()) { getContainerHost(request, op, request.resourceReference, (computeState, commandInput) -> directListContainers(request, op, computeState, commandInput)); } else if (ContainerHostOperationType.LIST_NETWORKS == request.getOperationType() && request.serviceTaskCallback.isEmpty()) { getContainerHost(request, op, request.resourceReference, (computeState, commandInput) -> directListNetworks(request, op, computeState, commandInput)); } else if (ContainerHostOperationType.LIST_VOLUMES == request.getOperationType() && request.serviceTaskCallback.isEmpty()) { getContainerHost(request, op, request.resourceReference, (computeState, commandInput) -> directListVolumes(request, op, computeState,
protected void patchTaskStage(AdapterRequest state, ServiceErrorResponse errorResponse, ServiceTaskCallbackResponse callbackResponse) { if (state.serviceTaskCallback.isEmpty()) { return; } if (errorResponse != null) { callbackResponse = state.serviceTaskCallback.getFailedResponse(errorResponse); } else if (callbackResponse == null) { callbackResponse = state.serviceTaskCallback.getFinishedResponse(); } URI callbackReference = URI.create(state.serviceTaskCallback.serviceSelfLink); if (callbackReference.getScheme() == null) { callbackReference = UriUtils.buildUri(getHost(), state.serviceTaskCallback.serviceSelfLink); } // tell the parent we are done. We are a mock service, so we get things done, fast. sendRequest(Operation .createPatch(callbackReference) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_QUEUE_FOR_SERVICE_AVAILABILITY) .setBody(callbackResponse) .setCompletion( (o, e) -> { if (e != null) { logWarning( "Notifying parent task %s from mock docker host adapter failed: %s", o.getUri(), Utils.toString(e)); } })); }
private void patchTaskErrorResponse(MockAdapterRequest state, ServiceErrorResponse errorResponse) { if (state.serviceTaskCallback.isEmpty()) { return;
private void processContainerLogResponse(RequestContext context, byte[] log) { LogService.LogServiceState logServiceState = new LogService.LogServiceState(); logServiceState.documentSelfLink = Service.getId(context.containerState.documentSelfLink); // 256 bytes spare for service document data int maxDocumentSize = LogService.MAX_LOG_SIZE - 256; if (log.length > maxDocumentSize) { log = Arrays.copyOfRange(log, log.length - maxDocumentSize, log.length); } logServiceState.logs = log; logServiceState.tenantLinks = context.containerState.tenantLinks; sendRequest(Operation.createPost(this, LogService.FACTORY_LINK) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE) .setBodyNoCloning(logServiceState) .setContextId(context.request.getRequestId()) .setCompletion((o, ex) -> { if (ex != null) { fail(context.request, ex); } else { if (context.request.serviceTaskCallback.isEmpty()) { /* avoid logging warnings */ patchTaskStage(context.request, TaskStage.FINISHED, null); } } })); }
logWarning(errMsg, state.taskInfo.stage, state.taskSubStage, state.documentExpirationTimeMicros); if (!state.serviceTaskCallback.isEmpty()) { IllegalStateException e = new IllegalStateException(String.format(errMsg, state.taskInfo.stage, state.taskSubStage,
protected void notifyCallerService(Closure closureState) { if (closureState.serviceTaskCallback.isEmpty()) { return; } if (closureState.serviceTaskCallback.isExternal()) { sendRequestStateToExternalUrl(closureState.serviceTaskCallback.serviceSelfLink, closureState); } else { ClosureCallbackCompleteResponse callbackResponse = new ClosureCallbackCompleteResponse(); if (closureState.state == TaskStage.FINISHED) { callbackResponse.copy(closureState.serviceTaskCallback.getFinishedResponse()); } else { callbackResponse .copy(closureState.serviceTaskCallback.getFailedResponse(new Exception( closureState.errorMsg))); } sendRequest( Operation.createPatch(this, closureState.serviceTaskCallback.serviceSelfLink) .setBody(callbackResponse) .setCompletion((o, e) -> { if (e != null) { logWarning("Notifying parent task %s failed: %s", o.getUri(), Utils.toString(e)); } })); } }
if (request.serviceTaskCallback.isEmpty()) { logFine("No callback provided to Kubernetes adapter service for resource: %s.", request.resourceReference);
if (request.serviceTaskCallback.isEmpty()) { logFine("No callback provided to Docker adapter service for resource: %s.", request.resourceReference);
protected void notifyCallerService(T state) { if (state.serviceTaskCallback.isEmpty()) { return;