Search in sources :

Example 1 with ZOMBIE

use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceStatus.ZOMBIE in project cloudbreak by hortonworks.

the class ClusterService method updateInstancesToZombie.

public void updateInstancesToZombie(Long stackId, Set<Node> unreachableNodes) {
    Set<String> unreachableInstanceIds = unreachableNodes.stream().map(Node::getInstanceId).collect(Collectors.toSet());
    LOGGER.debug("Update instance statuses to ZOMBIE, instanceIds: {}", unreachableInstanceIds);
    try {
        transactionService.required(() -> {
            Set<InstanceMetaData> notDeletedInstanceMetadatas = instanceMetaDataService.getNotDeletedAndNotZombieInstanceMetadataByStackId(stackId);
            notDeletedInstanceMetadatas.stream().filter(instanceMetadata -> unreachableInstanceIds.contains(instanceMetadata.getInstanceId())).forEach(instanceMetadata -> {
                instanceMetadata.setInstanceStatus(ZOMBIE);
                instanceMetaDataService.save(instanceMetadata);
            });
        });
    } catch (TransactionExecutionException e) {
        throw new TransactionRuntimeExecutionException(e);
    }
}
Also used : InstanceMetaData(com.sequenceiq.cloudbreak.domain.stack.instance.InstanceMetaData) CLUSTER_HOST_STATUS_UPDATED(com.sequenceiq.cloudbreak.event.ResourceEvent.CLUSTER_HOST_STATUS_UPDATED) CloudbreakException(com.sequenceiq.cloudbreak.service.CloudbreakException) Arrays(java.util.Arrays) SERVICES_RUNNING(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceStatus.SERVICES_RUNNING) DetailedStackStatus(com.sequenceiq.cloudbreak.api.endpoint.v4.common.DetailedStackStatus) AltusMachineUserService(com.sequenceiq.cloudbreak.service.altus.AltusMachineUserService) AVAILABLE(com.sequenceiq.cloudbreak.api.endpoint.v4.common.Status.AVAILABLE) Date(java.util.Date) ExtendedHostStatuses(com.sequenceiq.cloudbreak.cluster.status.ExtendedHostStatuses) SERVICES_UNHEALTHY(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceStatus.SERVICES_UNHEALTHY) LoggerFactory(org.slf4j.LoggerFactory) ClusterRepository(com.sequenceiq.cloudbreak.repository.cluster.ClusterRepository) ComponentConfigProviderService(com.sequenceiq.cloudbreak.service.ComponentConfigProviderService) TransactionRuntimeExecutionException(com.sequenceiq.cloudbreak.common.service.TransactionService.TransactionRuntimeExecutionException) ClusterApi(com.sequenceiq.cloudbreak.cluster.api.ClusterApi) TransactionService(com.sequenceiq.cloudbreak.common.service.TransactionService) CloudbreakEventService(com.sequenceiq.cloudbreak.structuredevent.event.CloudbreakEventService) DataIntegrityViolationException(org.springframework.dao.DataIntegrityViolationException) RdsConfigService(com.sequenceiq.cloudbreak.service.rdsconfig.RdsConfigService) Map(java.util.Map) Gateway(com.sequenceiq.cloudbreak.domain.stack.cluster.gateway.Gateway) StackUpdater(com.sequenceiq.cloudbreak.service.StackUpdater) SqlUtil.getProperSqlErrorMessage(com.sequenceiq.cloudbreak.util.SqlUtil.getProperSqlErrorMessage) Blueprint(com.sequenceiq.cloudbreak.domain.Blueprint) Telemetry(com.sequenceiq.common.api.telemetry.model.Telemetry) NotFoundException(com.sequenceiq.cloudbreak.common.exception.NotFoundException) SERVICES_HEALTHY(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceStatus.SERVICES_HEALTHY) FileSystemConfigService(com.sequenceiq.cloudbreak.service.filesystem.FileSystemConfigService) Collection(java.util.Collection) InstanceStatus(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceStatus) Set(java.util.Set) Status(com.sequenceiq.cloudbreak.api.endpoint.v4.common.Status) HttpClientConfig(com.sequenceiq.cloudbreak.client.HttpClientConfig) REPO_ID_TAG(com.sequenceiq.cloudbreak.cloud.model.component.StackRepoDetails.REPO_ID_TAG) Collectors(java.util.stream.Collectors) List(java.util.List) TransactionExecutionException(com.sequenceiq.cloudbreak.common.service.TransactionService.TransactionExecutionException) Optional(java.util.Optional) StackService(com.sequenceiq.cloudbreak.service.stack.StackService) Stack(com.sequenceiq.cloudbreak.domain.stack.Stack) Cluster(com.sequenceiq.cloudbreak.domain.stack.cluster.Cluster) ResourceStatus(com.sequenceiq.cloudbreak.api.endpoint.v4.common.ResourceStatus) VALID(com.sequenceiq.common.api.type.CertExpirationState.VALID) ZOMBIE(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceStatus.ZOMBIE) HashSet(java.util.HashSet) Inject(javax.inject.Inject) StackRepoDetails(com.sequenceiq.cloudbreak.cloud.model.component.StackRepoDetails) GatewayService(com.sequenceiq.cloudbreak.service.gateway.GatewayService) Service(org.springframework.stereotype.Service) InstanceMetaDataService(com.sequenceiq.cloudbreak.service.stack.InstanceMetaDataService) ClusterComponentConfigProvider(com.sequenceiq.cloudbreak.cluster.service.ClusterComponentConfigProvider) RDSConfig(com.sequenceiq.cloudbreak.domain.RDSConfig) NotFoundException.notFound(com.sequenceiq.cloudbreak.common.exception.NotFoundException.notFound) BadRequestException(com.sequenceiq.cloudbreak.common.exception.BadRequestException) Logger(org.slf4j.Logger) RuntimeVersionService(com.sequenceiq.cloudbreak.service.stack.RuntimeVersionService) DatabaseType(com.sequenceiq.cloudbreak.api.endpoint.v4.database.base.DatabaseType) Benchmark.measure(com.sequenceiq.cloudbreak.util.Benchmark.measure) Node(com.sequenceiq.cloudbreak.common.orchestration.Node) CustomConfigurations(com.sequenceiq.cloudbreak.domain.CustomConfigurations) Workspace(com.sequenceiq.cloudbreak.workspace.model.Workspace) ClusterComponent(com.sequenceiq.cloudbreak.domain.stack.cluster.ClusterComponent) HostName.hostName(com.sequenceiq.cloudbreak.cloud.model.HostName.hostName) APIResourceType(com.sequenceiq.cloudbreak.common.type.APIResourceType) HostGroup(com.sequenceiq.cloudbreak.domain.stack.cluster.host.HostGroup) InstanceMetaData(com.sequenceiq.cloudbreak.domain.stack.instance.InstanceMetaData) HostName(com.sequenceiq.cloudbreak.cloud.model.HostName) CloudbreakServiceException(com.sequenceiq.cloudbreak.common.exception.CloudbreakServiceException) HOST_CERT_EXPIRING(com.sequenceiq.common.api.type.CertExpirationState.HOST_CERT_EXPIRING) StringUtils(org.springframework.util.StringUtils) TransactionExecutionException(com.sequenceiq.cloudbreak.common.service.TransactionService.TransactionExecutionException) TransactionRuntimeExecutionException(com.sequenceiq.cloudbreak.common.service.TransactionService.TransactionRuntimeExecutionException)

Aggregations

DetailedStackStatus (com.sequenceiq.cloudbreak.api.endpoint.v4.common.DetailedStackStatus)1 ResourceStatus (com.sequenceiq.cloudbreak.api.endpoint.v4.common.ResourceStatus)1 Status (com.sequenceiq.cloudbreak.api.endpoint.v4.common.Status)1 AVAILABLE (com.sequenceiq.cloudbreak.api.endpoint.v4.common.Status.AVAILABLE)1 DatabaseType (com.sequenceiq.cloudbreak.api.endpoint.v4.database.base.DatabaseType)1 InstanceStatus (com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceStatus)1 SERVICES_HEALTHY (com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceStatus.SERVICES_HEALTHY)1 SERVICES_RUNNING (com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceStatus.SERVICES_RUNNING)1 SERVICES_UNHEALTHY (com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceStatus.SERVICES_UNHEALTHY)1 ZOMBIE (com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceStatus.ZOMBIE)1 HttpClientConfig (com.sequenceiq.cloudbreak.client.HttpClientConfig)1 HostName (com.sequenceiq.cloudbreak.cloud.model.HostName)1 HostName.hostName (com.sequenceiq.cloudbreak.cloud.model.HostName.hostName)1 StackRepoDetails (com.sequenceiq.cloudbreak.cloud.model.component.StackRepoDetails)1 REPO_ID_TAG (com.sequenceiq.cloudbreak.cloud.model.component.StackRepoDetails.REPO_ID_TAG)1 ClusterApi (com.sequenceiq.cloudbreak.cluster.api.ClusterApi)1 ClusterComponentConfigProvider (com.sequenceiq.cloudbreak.cluster.service.ClusterComponentConfigProvider)1 ExtendedHostStatuses (com.sequenceiq.cloudbreak.cluster.status.ExtendedHostStatuses)1 BadRequestException (com.sequenceiq.cloudbreak.common.exception.BadRequestException)1 CloudbreakServiceException (com.sequenceiq.cloudbreak.common.exception.CloudbreakServiceException)1