Package com.sequenceiq.cloudbreak.service.stack.connector.gcc

Source Code of com.sequenceiq.cloudbreak.service.stack.connector.gcc.GccDiskCheckerStatus

package com.sequenceiq.cloudbreak.service.stack.connector.gcc;

import java.io.IOException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import com.google.api.services.compute.Compute;
import com.sequenceiq.cloudbreak.domain.GccCredential;
import com.sequenceiq.cloudbreak.domain.GccTemplate;
import com.sequenceiq.cloudbreak.logger.MDCBuilder;
import com.sequenceiq.cloudbreak.service.StatusCheckerTask;
import com.sequenceiq.cloudbreak.service.stack.AddInstancesFailedException;

@Component
public class GccDiskCheckerStatus implements StatusCheckerTask<GccDiskReadyPollerObject> {

    private static final Logger LOGGER = LoggerFactory.getLogger(GccDiskCheckerStatus.class);
    private static final String READY = "READY";

    @Override
    public boolean checkStatus(GccDiskReadyPollerObject gccDiskReadyPollerObject) {
        MDCBuilder.buildMdcContext(gccDiskReadyPollerObject.getStack());
        LOGGER.info("Checking status of Gcc Disk '{}'.", gccDiskReadyPollerObject.getName());
        GccTemplate gccTemplate = (GccTemplate) gccDiskReadyPollerObject.getStack().getTemplate();
        GccCredential credential = (GccCredential) gccDiskReadyPollerObject.getStack().getCredential();
        try {
            Compute.Disks.Get getDisks = gccDiskReadyPollerObject
                    .getCompute()
                    .disks()
                    .get(credential.getProjectId(), gccTemplate.getGccZone().getValue(), gccDiskReadyPollerObject.getName());
            String status = getDisks.execute().getStatus();
            return READY.equals(status) ? true : false;
        } catch (NullPointerException | IOException e) {
            return false;
        }
    }

    @Override
    public void handleTimeout(GccDiskReadyPollerObject gccDiskReadyPollerObject) {
        throw new AddInstancesFailedException(String.format(
                "Something went wrong. Instances in Gcc clouddisk '%s' not started in a reasonable timeframe on '%s' stack.",
                gccDiskReadyPollerObject.getName(), gccDiskReadyPollerObject.getStack().getId()));
    }

    @Override
    public String successMessage(GccDiskReadyPollerObject gccDiskReadyPollerObject) {
        MDCBuilder.buildMdcContext(gccDiskReadyPollerObject.getStack());
        return String.format("Gcc disk '%s' is ready on '%s' stack",
                gccDiskReadyPollerObject.getName(), gccDiskReadyPollerObject.getStack().getId());
    }
}
TOP

Related Classes of com.sequenceiq.cloudbreak.service.stack.connector.gcc.GccDiskCheckerStatus

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.