Package com.sequenceiq.cloudbreak.service.cluster.flow

Source Code of com.sequenceiq.cloudbreak.service.cluster.flow.AmbariHealthCheckerTask

package com.sequenceiq.cloudbreak.service.cluster.flow;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.sequenceiq.ambari.client.AmbariClient;
import com.sequenceiq.cloudbreak.controller.InternalServerException;
import com.sequenceiq.cloudbreak.service.StatusCheckerTask;

public class AmbariHealthCheckerTask implements StatusCheckerTask<AmbariClient> {

    private static final Logger LOGGER = LoggerFactory.getLogger(AmbariHealthCheckerTask.class);

    @Override
    public boolean checkStatus(AmbariClient ambariClient) {
        try {
            String ambariHealth = ambariClient.healthCheck();
            if ("RUNNING".equals(ambariHealth)) {
                return true;
            }
            return false;
        } catch (Exception e) {
            LOGGER.info("Ambari is not running yet, polling");
            return false;
        }
    }

    @Override
    public void handleTimeout(AmbariClient t) {
        throw new InternalServerException(String.format("Operation timed out. Ambari server could not start %s", t.getAmbari().getUri()));
    }

    @Override
    public String successMessage(AmbariClient t) {
        return String.format("Ambari server successfully started '%s'", t.getAmbari().getUri());
    }

}
TOP

Related Classes of com.sequenceiq.cloudbreak.service.cluster.flow.AmbariHealthCheckerTask

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.