@Override public String toString() { return "StorageNodeImpl{" + "applicationInstance=" + applicationInstance.reference() + ", clusterId=" + clusterId + ", storageService=" + storageService + '}'; }
@Override public String toString() { return "NodeGroup{" + "application=" + application.reference() + ", hostNames=" + hostNames + '}'; }
public ApplicationInstanceReference getApplicationReference() { return application.reference(); }
@Override public ApplicationId applicationId() { return OrchestratorUtil.toApplicationId(applicationInstance.reference()); }
@Override public Host getHost(HostName hostName) throws HostNameNotFoundException { ApplicationInstance applicationInstance = getApplicationInstance(hostName); List<ServiceInstance> serviceInstances = applicationInstance .serviceClusters().stream() .flatMap(cluster -> cluster.serviceInstances().stream()) .filter(serviceInstance -> hostName.equals(serviceInstance.hostName())) .collect(Collectors.toList()); HostStatus hostStatus = getNodeStatus(applicationInstance.reference(), hostName); return new Host(hostName, hostStatus, applicationInstance.reference(), serviceInstances); }
@Override public HostStatus getNodeStatus(HostName hostName) throws HostNameNotFoundException { return getNodeStatus(getApplicationInstance(hostName).reference(), hostName); }
@Override public void setNodeStatus(HostName hostName, HostStatus status) throws OrchestrationException { ApplicationInstanceReference reference = getApplicationInstance(hostName).reference(); OrchestratorContext context = OrchestratorContext.createContextForSingleAppOp(clock); try (MutableStatusRegistry statusRegistry = statusService .lockApplicationInstance_forCurrentThreadOnly(context, reference)) { statusRegistry.setHostState(hostName, status); } }
@Override public void acquirePermissionToRemove(HostName hostName) throws OrchestrationException { ApplicationInstance appInstance = getApplicationInstance(hostName); NodeGroup nodeGroup = new NodeGroup(appInstance, hostName); OrchestratorContext context = OrchestratorContext.createContextForSingleAppOp(clock); try (MutableStatusRegistry statusRegistry = statusService .lockApplicationInstance_forCurrentThreadOnly(context, appInstance.reference())) { ApplicationApi applicationApi = new ApplicationApiImpl( nodeGroup, statusRegistry, clusterControllerClientFactory); policy.acquirePermissionToRemove(context.createSubcontextWithinLock(), applicationApi); } }
.lockApplicationInstance_forCurrentThreadOnly(context, appInstance.reference())) { final HostStatus currentHostState = statusRegistry.getHostStatus(hostName); ApplicationInstanceStatus appStatus = statusService.forApplicationInstance(appInstance.reference()).getApplicationInstanceStatus(); if (appStatus == ApplicationInstanceStatus.NO_REMARKS) { policy.releaseSuspensionGrant(context.createSubcontextWithinLock(), appInstance, hostName, statusRegistry);
"application " + applicationInstance.reference().asString() + ", host " + hostName() + ", cluster name " + clusterId + " has been set to " + wantedNodeState; logger.log(LogLevel.INFO, "Storage node " + nodeIndex + " in cluster " + clusterId + " application " + applicationInstance.reference().asString() + " on host " + hostName() + logSuffix);