Package com.nirima.jenkins.plugins.docker.builder

Source Code of com.nirima.jenkins.plugins.docker.builder.DockerBuilderControlCloudOption

package com.nirima.jenkins.plugins.docker.builder;

import com.google.common.base.Strings;
import com.nirima.docker.client.DockerClient;
import com.nirima.jenkins.plugins.docker.DockerCloud;
import com.nirima.jenkins.plugins.docker.DockerSlave;
import hudson.model.AbstractBuild;
import hudson.model.Node;
import jenkins.model.Jenkins;

/**
* Created by magnayn on 30/01/2014.
*/
public abstract class DockerBuilderControlCloudOption extends DockerBuilderControlOption {
    public final String cloudName;

    protected DockerBuilderControlCloudOption(String cloudName) {
        this.cloudName = cloudName;
    }
   
    public String getCloudName() {
        return cloudName;
    }

    protected DockerCloud getCloud(AbstractBuild<?, ?> build) {
        DockerCloud cloud = null;

        Node node = build.getBuiltOn();
        if( node instanceof DockerSlave) {
            DockerSlave dockerSlave = (DockerSlave)node;
            cloud = dockerSlave.getCloud();
        }

        if( !Strings.isNullOrEmpty(cloudName) ) {
            cloud = (DockerCloud) Jenkins.getInstance().getCloud(cloudName);
        }

        if( cloud == null ) {
            throw new RuntimeException("Cannot list cloud for docker action");
        }

        return cloud;
    }

    protected DockerClient getClient(AbstractBuild<?, ?> build) {
        DockerCloud cloud = getCloud(build);

        return cloud.connect();
    }
}
TOP

Related Classes of com.nirima.jenkins.plugins.docker.builder.DockerBuilderControlCloudOption

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.