Search in sources :

Example 6 with Status

use of com.sequenceiq.cloudbreak.api.model.Status in project cloudbreak by hortonworks.

the class StackUpdater method doUpdateStackStatus.

private Stack doUpdateStackStatus(Long stackId, DetailedStackStatus detailedStatus, String statusReason) {
    Stack stack = stackRepository.findOne(stackId);
    Status status = detailedStatus.getStatus();
    if (!stack.isDeleteCompleted()) {
        stack.setStackStatus(new StackStatus(stack, status, statusReason, detailedStatus));
        if (status.isRemovableStatus()) {
            InMemoryStateStore.deleteStack(stackId);
            if (stack.getCluster() != null && stack.getCluster().getStatus().isRemovableStatus()) {
                InMemoryStateStore.deleteCluster(stack.getCluster().getId());
            }
        } else {
            InMemoryStateStore.putStack(stackId, statusToPollGroupConverter.convert(status));
        }
        stack = stackRepository.save(stack);
    }
    return stack;
}
Also used : Status(com.sequenceiq.cloudbreak.api.model.Status) DetailedStackStatus(com.sequenceiq.cloudbreak.api.model.DetailedStackStatus) StackStatus(com.sequenceiq.cloudbreak.domain.StackStatus) DetailedStackStatus(com.sequenceiq.cloudbreak.api.model.DetailedStackStatus) StackStatus(com.sequenceiq.cloudbreak.domain.StackStatus) Stack(com.sequenceiq.cloudbreak.domain.Stack)

Example 7 with Status

use of com.sequenceiq.cloudbreak.api.model.Status in project cloudbreak by hortonworks.

the class UptimeNotifier method sendUptime.

@Scheduled(fixedDelay = 60000)
public void sendUptime() {
    EnumSet<Status> statuses = EnumSet.complementOf(EnumSet.of(Status.DELETE_COMPLETED));
    List<Cluster> clusters = clusterRepository.findByStatuses(statuses);
    for (Cluster cluster : clusters) {
        Stack stack = stackRepository.findStackForCluster(cluster.getId());
        if (stack != null && !stack.isDeleteCompleted()) {
            Long uptime = stackUtil.getUptimeForCluster(cluster, cluster.isAvailable());
            Notification<CloudbreakEventsJson> notification = createUptimeNotification(stack, uptime);
            notificationSender.send(notification);
        }
    }
}
Also used : Status(com.sequenceiq.cloudbreak.api.model.Status) CloudbreakEventsJson(com.sequenceiq.cloudbreak.api.model.CloudbreakEventsJson) Cluster(com.sequenceiq.cloudbreak.domain.Cluster) Stack(com.sequenceiq.cloudbreak.domain.Stack) Scheduled(org.springframework.scheduling.annotation.Scheduled)

Aggregations

Status (com.sequenceiq.cloudbreak.api.model.Status)7 DetailedStackStatus (com.sequenceiq.cloudbreak.api.model.DetailedStackStatus)3 CloudbreakEventsJson (com.sequenceiq.cloudbreak.api.model.CloudbreakEventsJson)2 CloudbreakClient (com.sequenceiq.cloudbreak.client.CloudbreakClient)2 Stack (com.sequenceiq.cloudbreak.domain.Stack)2 Collections (java.util.Collections)2 List (java.util.List)2 Map (java.util.Map)2 Set (java.util.Set)2 Logger (org.slf4j.Logger)2 LoggerFactory (org.slf4j.LoggerFactory)2 Component (org.springframework.stereotype.Component)2 AmbariClient (com.sequenceiq.ambari.client.AmbariClient)1 StackEndpoint (com.sequenceiq.cloudbreak.api.endpoint.common.StackEndpoint)1 EventEndpoint (com.sequenceiq.cloudbreak.api.endpoint.v1.EventEndpoint)1 StackV1Endpoint (com.sequenceiq.cloudbreak.api.endpoint.v1.StackV1Endpoint)1 AutoscaleStackResponse (com.sequenceiq.cloudbreak.api.model.AutoscaleStackResponse)1 HostGroupResponse (com.sequenceiq.cloudbreak.api.model.HostGroupResponse)1 HostMetadataResponse (com.sequenceiq.cloudbreak.api.model.HostMetadataResponse)1 InstanceGroupResponse (com.sequenceiq.cloudbreak.api.model.InstanceGroupResponse)1