private void updateExistingContainer(ContainerState c, ContainerListCallback callback) { boolean changed = false; ContainerState patch = new ContainerState(); // handle power state changes PowerState newPowerState = callback.containerIdsAndState.get(c.id); if (newPowerState != null && c.powerState != newPowerState && !ContainerState.CONTAINER_UNHEALTHY_STATUS.equals(c.status)) { // do not modify the power state set during the health config check! logInfo("Changing power state of container %s (%s) from %s to %s", c.names, c.documentSelfLink, c.powerState, newPowerState); changed = true; patch.powerState = newPowerState; } if (changed) { // power state is change - save the new state and inspect the container sendRequest(Operation .createPatch(this, c.documentSelfLink) .setBodyNoCloning(patch)); inspectContainer(c, ServiceTaskCallback.createEmpty()); } }
private void unlockCurrentDataCollectionForHost(String containerHostLink) { ContainerListCallback body = new ContainerListCallback(); body.containerHostLink = containerHostLink; body.unlockDataCollectionForHost = true; sendRequest(Operation .createPatch(getUri()) .setBodyNoCloning(body) .setCompletion((o, ex) -> { if (ex != null) { logWarning("Self patch failed: %s", ex instanceof CancellationException ? ex.getMessage() : Utils.toString(ex)); } })); }
private void createDiscoveredContainerDescription(ContainerState containerState) { logFine("Creating ContainerDescription for discovered container: %s", containerState.id); ContainerDescription containerDesc = ContainerUtil .createContainerDescription(containerState); sendRequest(OperationUtil .createForcedPost(this, ContainerDescriptionService.FACTORY_LINK) .setBodyNoCloning(containerDesc) .setCompletion((o, ex) -> { if (ex != null) { logSevere("Failed to create ContainerDescription for discovered container" + " (id=%s): %s", containerState.id, ex.getMessage()); } else { logInfo("Created ContainerDescription for discovered container: %s", containerState.id); } })); }
}); sendRequest(operation);
private void patchHostState(String containerHostLink, ComputeState state) { sendRequest(Operation .createPatch(this, containerHostLink) .setBody(state) .setCompletion((operation, e) -> { if (e != null) { logSevere("Failure updating host [%s] with container count. Error: %s", containerHostLink, Utils.toString(e)); return; } logInfo("Host [%s] updated with container count.", containerHostLink); })); }
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)); } })); }
private BiConsumer<CallbackServiceHandlerState, Boolean> createSystemContainerReadyHandler( ContainerState container) { return (o, error) -> { if (error) { logSevere("Failure creating system container."); } else { // Upload trusted self-signed registry certificates to host logFine("Distribute certificates for host %s", container.parentLink); HostConfigCertificateDistributionState distState = new HostConfigCertificateDistributionState(); distState.hostLink = container.parentLink; distState.tenantLinks = container.tenantLinks; sendRequest(Operation .createPost(this, HostConfigCertificateDistributionService.SELF_LINK) .setBodyNoCloning(distState)); // Import agent SSL certificate importAgentSslCertificate(container, null, SYSTEM_CONTAINER_SSL_RETRIES_COUNT); } }; }
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)); }
sendRequest(Operation .createPatch(getHost(), targetPath) .setBodyNoCloning(adapterRequest)
sendRequest(Operation .createPatch(getHost(), targetPath) .setBodyNoCloning(adapterRequest)
containerState.id); URI containerFactoryUri = UriUtils.buildUri(getHost(), ContainerFactoryService.class); sendRequest(OperationUtil .createForcedPost(containerFactoryUri) .setBody(containerState)
sendRequest(Operation .createDelete(this, containerState.documentSelfLink) .setBodyNoCloning(new ServiceDocument()) TimeUnit.HOURS.toMicros(RETIRED_CONTAINER_EXPIRE_PERIOD_HOURS)); sendRequest(Operation .createPatch(this, containerState.documentSelfLink) .setBodyNoCloning(patchContainerState)
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); })); }
containerState, containerDesc, containerHostLink); sendRequest(OperationUtil .createForcedPost(this, ContainerFactoryService.SELF_LINK) .setBodyNoCloning(systemContainerState)
sendRequest(op .setBodyNoCloning(containerState) .setCompletion((o, e) -> {
cs.powerState = PowerState.RUNNING; sendRequest(Operation .createPatch(getHost(), existingContainerState.documentSelfLink) .setBodyNoCloning(cs)
sendRequest(Operation .createPut(this, SslTrustImportService.SELF_LINK) .setBodyNoCloning(request)