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);
}));
}