Search in sources :

Example 1 with StackEndpoint

use of com.sequenceiq.cloudbreak.api.endpoint.common.StackEndpoint in project cloudbreak by hortonworks.

the class CloudbreakUtil method waitForHostStatusStack.

public static WaitResult waitForHostStatusStack(StackEndpoint stackV1Endpoint, String stackId, String hostGroup, String desiredStatus) {
    WaitResult waitResult = WaitResult.SUCCESSFUL;
    Boolean found = FALSE;
    int retryCount = 0;
    do {
        LOGGER.info("Waiting for host status {} in hostgroup {} ...", desiredStatus, hostGroup);
        sleep();
        StackResponse stackResponse = stackV1Endpoint.get(Long.valueOf(stackId), new HashSet<>());
        Set<HostGroupResponse> hostGroupResponse = stackResponse.getCluster().getHostGroups();
        for (HostGroupResponse hr : hostGroupResponse) {
            if (hr.getName().equals(hostGroup)) {
                Set<HostMetadataResponse> hostMetadataResponses = hr.getMetadata();
                for (HostMetadataResponse hmr : hostMetadataResponses) {
                    if (hmr.getState().equals(desiredStatus)) {
                        found = Boolean.TRUE;
                    }
                }
            }
        }
        retryCount++;
    } while (!found && (retryCount < MAX_RETRY));
    if (retryCount == MAX_RETRY) {
        waitResult = WaitResult.TIMEOUT;
    }
    return waitResult;
}
Also used : HostMetadataResponse(com.sequenceiq.cloudbreak.api.model.HostMetadataResponse) HostGroupResponse(com.sequenceiq.cloudbreak.api.model.HostGroupResponse) StackResponse(com.sequenceiq.cloudbreak.api.model.StackResponse) StackV1Endpoint(com.sequenceiq.cloudbreak.api.endpoint.v1.StackV1Endpoint) StackEndpoint(com.sequenceiq.cloudbreak.api.endpoint.common.StackEndpoint) HistoryEndpoint(com.sequenceiq.periscope.api.endpoint.v1.HistoryEndpoint) EventEndpoint(com.sequenceiq.cloudbreak.api.endpoint.v1.EventEndpoint)

Aggregations

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 HostGroupResponse (com.sequenceiq.cloudbreak.api.model.HostGroupResponse)1 HostMetadataResponse (com.sequenceiq.cloudbreak.api.model.HostMetadataResponse)1 StackResponse (com.sequenceiq.cloudbreak.api.model.StackResponse)1 HistoryEndpoint (com.sequenceiq.periscope.api.endpoint.v1.HistoryEndpoint)1