private void inspectContainer(ContainerState container, ServiceTaskCallback callback) { AdapterRequest request = new AdapterRequest(); request.resourceReference = UriUtils.buildPublicUri(getHost(), container.documentSelfLink); request.operationTypeId = ContainerOperationType.INSPECT.id; request.serviceTaskCallback = callback; sendRequest(Operation .createPatch(getHost(), container.adapterManagementReference.toString()) .setBodyNoCloning(request) .setCompletion((o, ex) -> { if (ex != null) { Utils.logWarning("Error while inspect request for container: %s. Error: %s", container.documentSelfLink, Utils.toString(ex)); } })); }
ContainerState.FIELD_NAME_SELF_LINK, selfLink); containerServicesQuery.querySpec.options.add(QueryOption.INCLUDE_DELETED); new ServiceDocumentQuery<>(getHost(), ContainerState.class) .query(containerServicesQuery, (r) -> { if (r.hasException()) {
.getDefaultHostAdapter(getHost());
private void queryExistingContainerStates(ContainerListCallback body) { String containerHostLink = body.containerHostLink; QueryTask queryTask = QueryUtil.buildPropertyQuery(ContainerState.class, ContainerState.FIELD_NAME_PARENT_LINK, containerHostLink); QueryUtil.addExpandOption(queryTask); QueryUtil.addBroadcastOption(queryTask); new ServiceDocumentQuery<ContainerState>(getHost(), ContainerState.class) .query(queryTask, processContainerStatesQueryResults(body)); }
QueryUtil.addCountOption(containerQuery); new ServiceDocumentQuery<ContainerState>(getHost(), ContainerState.class) .query(containerQuery, (r) -> { if (r.hasException()) { Arrays.asList(Boolean.TRUE.toString())); QueryUtil.addCountOption(systemContainerQuery); new ServiceDocumentQuery<ContainerState>(getHost(), ContainerState.class) .query(systemContainerQuery, (result) -> { if (result.hasException()) {
private void createSystemContainerInstanceRequest(ContainerState container, ServiceTaskCallback serviceTaskCallback) { AdapterRequest adapterRequest = new AdapterRequest(); adapterRequest.resourceReference = UriUtils.buildUri(getHost(), container.documentSelfLink); adapterRequest.operationTypeId = ContainerOperationType.CREATE.id; .createPatch(getHost(), targetPath) .setBodyNoCloning(adapterRequest) .setCompletion((o, e) -> {
private void listHostContainers(ContainerListCallback body, Operation.CompletionHandler c) { String containerHostLink = body.containerHostLink; AdapterRequest request = new AdapterRequest(); request.operationTypeId = ContainerHostOperationType.LIST_CONTAINERS.id; request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); request.resourceReference = UriUtils.buildUri(getHost(), containerHostLink); sendRequest(Operation .createPatch(body.hostAdapterReference) .setBodyNoCloning(request) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_QUEUE_FOR_SERVICE_AVAILABILITY) .setCompletion(c)); }
private void startSystemContainer(ContainerState containerState, ServiceTaskCallback serviceTaskCallback) { AdapterRequest adapterRequest = new AdapterRequest(); adapterRequest.resourceReference = UriUtils .buildUri(getHost(), containerState.documentSelfLink); adapterRequest.operationTypeId = ContainerOperationType.START.id; if (serviceTaskCallback == null) { String systemContainerName = isSystemContainer( SystemContainerDescriptions.getSystemContainerNames(), containerState.names); startAndCreateCallbackHandlerService(systemContainerName, createSystemContainerReadyHandler(containerState), (callback) -> startSystemContainer(containerState, callback)); return; } adapterRequest.serviceTaskCallback = serviceTaskCallback; sendRequest(Operation .createPatch(getHost(), containerState.adapterManagementReference.toString()) .setBodyNoCloning(adapterRequest) .setCompletion((o, e) -> { if (e != null) { logWarning("Failure starting system container: %s", Utils.toString(e)); return; } logInfo("Starting system container: %s with name: %s ...", containerState.documentSelfLink, containerState.names); })); }
private Consumer<ServiceDocumentQuery.ServiceDocumentQueryElementResult<ContainerState>> processContainerStatesQueryResults( ContainerListCallback body) { String containerHostLink = body.containerHostLink; List<ContainerState> existingContainerStates = new ArrayList<>(); return (r) -> { if (r.hasException()) { logSevere("Failed to query for existing ContainerState instances: %s", r.getException() instanceof CancellationException ? r.getException().getMessage() : Utils.toString(r.getException())); unlockCurrentDataCollectionForHost(containerHostLink); } else if (r.hasResult()) { existingContainerStates.add(r.getResult()); } else { listHostContainers(body, (o, ex) -> { if (ex == null) { ContainerListCallback callback = o.getBody(ContainerListCallback.class); if (callback.hostAdapterReference == null) { callback.hostAdapterReference = ContainerHostDataCollectionService .getDefaultHostAdapter(getHost()); } updateContainerStates(callback, existingContainerStates, containerHostLink); } else { unlockCurrentDataCollectionForHost(containerHostLink); } }); } }; }
logFine("Creating ContainerState for discovered container: %s", containerState.id); URI containerFactoryUri = UriUtils.buildUri(getHost(), ContainerFactoryService.class); sendRequest(OperationUtil .createForcedPost(containerFactoryUri)
new ServiceDocumentQuery<ContainerState>(getHost(), ContainerState.class) .query(containerQuery, (r) -> { if (r.hasException()) {
String containerStateLink = SystemContainerDescriptions.getSystemContainerSelfLink( systemContainerName, Service.getId(containerHostLink)); ServiceDocumentQuery<ContainerState> query = new ServiceDocumentQuery<>(getHost(), ContainerState.class);
.createPatch(getHost(), existingContainerState.documentSelfLink) .setBodyNoCloning(cs) .setCompletion((op, ex) -> {
+ " container SSL certificate from '%s':\n%s", retryCount, request.hostUri, Utils.toString(e)); getHost().schedule(() -> { logInfo("Waiting for the system container SSL certificate from '%s'" + " to be imported", request.hostUri);