diff --git a/src/main/java/hudson/plugins/ec2/AmazonEC2Cloud.java b/src/main/java/hudson/plugins/ec2/AmazonEC2Cloud.java index c04304f6e..4a3120e0a 100644 --- a/src/main/java/hudson/plugins/ec2/AmazonEC2Cloud.java +++ b/src/main/java/hudson/plugins/ec2/AmazonEC2Cloud.java @@ -24,6 +24,10 @@ package hudson.plugins.ec2; import com.amazonaws.SdkClientException; +import com.amazonaws.auth.AWSCredentialsProvider; +import com.amazonaws.services.ec2.AmazonEC2; +import com.amazonaws.services.ec2.model.DescribeRegionsResult; +import com.amazonaws.services.ec2.model.Region; import com.google.common.annotations.VisibleForTesting; import hudson.Extension; import hudson.Util; @@ -32,7 +36,6 @@ import hudson.slaves.Cloud; import hudson.util.FormValidation; import hudson.util.ListBoxModel; - import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; @@ -40,18 +43,10 @@ import java.util.Locale; import javax.annotation.Nullable; import javax.servlet.ServletException; - import jenkins.model.Jenkins; - import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerResponse; - -import com.amazonaws.auth.AWSCredentialsProvider; -import com.amazonaws.services.ec2.AmazonEC2; -import com.amazonaws.services.ec2.model.DescribeRegionsResult; -import com.amazonaws.services.ec2.model.Region; import org.kohsuke.stapler.interceptor.RequirePOST; /** @@ -65,6 +60,8 @@ public class AmazonEC2Cloud extends EC2Cloud { */ private String region; + private String altEC2Endpoint; + public static final String CLOUD_ID_PREFIX = "ec2-"; private boolean noDelayProvisioning; @@ -129,6 +126,15 @@ public void setNoDelayProvisioning(boolean noDelayProvisioning) { this.noDelayProvisioning = noDelayProvisioning; } + public String getAltEC2Endpoint() { + return altEC2Endpoint; + } + + @DataBoundSetter + public void setAltEC2Endpoint(String altEC2Endpoint) { + this.altEC2Endpoint = altEC2Endpoint; + } + @Override protected AWSCredentialsProvider createCredentialsProvider() { return createCredentialsProvider(isUseInstanceProfileForCredentials(), getCredentialsId(), getRoleArn(), getRoleSessionName(), getRegion()); diff --git a/src/main/java/hudson/plugins/ec2/util/AmazonEC2FactoryImpl.java b/src/main/java/hudson/plugins/ec2/util/AmazonEC2FactoryImpl.java index e685c4fbb..289575ffc 100644 --- a/src/main/java/hudson/plugins/ec2/util/AmazonEC2FactoryImpl.java +++ b/src/main/java/hudson/plugins/ec2/util/AmazonEC2FactoryImpl.java @@ -14,8 +14,11 @@ public class AmazonEC2FactoryImpl implements AmazonEC2Factory { @Override public AmazonEC2 connect(AWSCredentialsProvider credentialsProvider, URL ec2Endpoint) { - AmazonEC2 client = new AmazonEC2Client(credentialsProvider, EC2Cloud.createClientConfiguration(ec2Endpoint.getHost())); - client.setEndpoint(ec2Endpoint.toString()); - return client; + if (ec2Endpoint != null && ec2Endpoint.toString().trim().length() > 0) { + AmazonEC2 client = new AmazonEC2Client(credentialsProvider, EC2Cloud.createClientConfiguration(ec2Endpoint.getHost())); + client.setEndpoint( ec2Endpoint.toString() ); + return client; + } + return null; } }