Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test support for cloud management changes #875

Merged
merged 13 commits into from
Sep 13, 2023
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ THE SOFTWARE.
<properties>
<revision>2.0.8</revision>
<changelist>-SNAPSHOT</changelist>
<jenkins.version>2.361.4</jenkins.version>
<jenkins.version>2.420-rc34091.108b_c22ede78</jenkins.version> <!-- TODO: https://github.com/jenkinsci/jenkins/pull/8310 -->
car-roll marked this conversation as resolved.
Show resolved Hide resolved
<gitHubRepo>jenkinsci/${project.artifactId}-plugin</gitHubRepo>
</properties>

Expand Down Expand Up @@ -219,8 +219,8 @@ THE SOFTWARE.
<dependencies>
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-2.361.x</artifactId>
<version>1968.vb_14a_29e76128</version>
<artifactId>bom-2.414.x</artifactId> <!-- TODO: Change to 2.417.x when it is released -->
<version>2329.v078520e55c19</version>
<scope>import</scope>
<type>pom</type>
</dependency>
Expand Down
4 changes: 2 additions & 2 deletions src/test/java/hudson/plugins/ec2/AmazonEC2CloudTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import com.cloudbees.plugins.credentials.CredentialsStore;
import com.cloudbees.plugins.credentials.SystemCredentialsProvider;
import com.cloudbees.plugins.credentials.domains.Domain;
import org.htmlunit.FailingHttpStatusCodeException;
car-roll marked this conversation as resolved.
Show resolved Hide resolved
import org.htmlunit.html.HtmlForm;
import org.htmlunit.html.HtmlTextInput;
import hudson.plugins.ec2.util.TestSSHUserPrivateKey;
Expand All @@ -45,7 +46,6 @@
import org.mockito.Mockito;
import org.xml.sax.SAXException;

import hudson.util.VersionNumber;
import jenkins.model.Jenkins;

import java.io.IOException;
Expand Down Expand Up @@ -163,7 +163,7 @@ public void testCustomSshCredentialTypes() throws IOException {
}

private HtmlForm getConfigForm() throws IOException, SAXException {
return r.createWebClient().goTo("configureClouds").getFormByName("config");
return r.createWebClient().goTo(cloud.getUrl() + "configure").getFormByName("config");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class ConfigurationAsCodeTest {
@Test
@ConfiguredWithCode("EC2CloudEmpty.yml")
public void testEmptyConfig() throws Exception {
final AmazonEC2Cloud ec2Cloud = (AmazonEC2Cloud) Jenkins.get().getCloud("");
final AmazonEC2Cloud ec2Cloud = (AmazonEC2Cloud) Jenkins.get().getCloud("empty");
car-roll marked this conversation as resolved.
Show resolved Hide resolved
assertNotNull(ec2Cloud);
assertEquals(0, ec2Cloud.getTemplates().size());
}
Expand Down
2 changes: 1 addition & 1 deletion src/test/java/hudson/plugins/ec2/EucalyptusTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public void configRoundTrip() throws Exception {
r.jenkins.clouds.add(cloud);
r.jenkins.save();
JenkinsRule.WebClient wc = r.createWebClient();
HtmlPage p = wc.goTo("configureClouds/");
HtmlPage p = wc.goTo(cloud.getUrl() + "configure");
HtmlForm f = p.getFormByName("config");
r.submit(f);
r.assertEqualBeans(cloud, r.jenkins.getCloud("test"), "name,ec2EndpointUrl,s3EndpointUrl,useInstanceProfileForCredentials,roleArn,roleSessionName,credentialsId,sshKeysCredentialsId,instanceCap,templates");
Expand Down
20 changes: 13 additions & 7 deletions src/test/java/hudson/plugins/ec2/SlaveTemplateTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,16 @@
import hudson.model.Node;
import hudson.plugins.ec2.SlaveTemplate.ProvisionOptions;
import hudson.plugins.ec2.util.MinimumNumberOfInstancesTimeRangeConfig;
import org.htmlunit.html.HtmlForm;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.JenkinsRule;
import org.mockito.ArgumentCaptor;
import org.xml.sax.SAXException;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumSet;
Expand Down Expand Up @@ -107,7 +110,7 @@ public void testConfigRoundtrip() throws Exception {
AmazonEC2Cloud ac = new AmazonEC2Cloud("us-east-1", false, "abc", "us-east-1", "ghi", "3", templates, null, null);
r.jenkins.clouds.add(ac);

r.submit(r.createWebClient().goTo("configureClouds").getFormByName("config"));
r.submit(getConfigForm(ac));
SlaveTemplate received = ((EC2Cloud) r.jenkins.clouds.iterator().next()).getTemplate(description);
r.assertEqualBeans(orig, received, "ami,zone,description,remoteFS,type,javaPath,jvmopts,stopOnTerminate,securityGroups,subnetId,tags,iamInstanceProfile,useEphemeralDevices,useDedicatedTenancy,connectionStrategy,hostKeyVerificationStrategy,tenancy,ebsEncryptRootVolume");
// For already existing strategies, the default is this one
Expand All @@ -129,7 +132,7 @@ public void testConfigRoundtripWithCustomSSHHostKeyVerificationStrategy() throws
AmazonEC2Cloud ac = new AmazonEC2Cloud("us-east-1", false, "abc", "us-east-1", "ghi", "3", templates, null, null);
r.jenkins.clouds.add(ac);

r.submit(r.createWebClient().goTo("configureClouds").getFormByName("config"));
r.submit(getConfigForm(ac));
SlaveTemplate received = ((EC2Cloud) r.jenkins.clouds.iterator().next()).getTemplate(description);
r.assertEqualBeans(orig, received, "ami,zone,description,remoteFS,type,javaPath,jvmopts,stopOnTerminate,securityGroups,subnetId,useEphemeralDevices,useDedicatedTenancy,connectionStrategy,hostKeyVerificationStrategy");
assertEquals(STRATEGY_TO_CHECK, received.getHostKeyVerificationStrategy());
Expand Down Expand Up @@ -158,7 +161,7 @@ public void testConfigWithSpotBidPrice() throws Exception {
AmazonEC2Cloud ac = new AmazonEC2Cloud("us-east-1", false, "abc", "us-east-1", "ghi", "3", templates, null, null);
r.jenkins.clouds.add(ac);

r.submit(r.createWebClient().goTo("configureClouds").getFormByName("config"));
r.submit(getConfigForm(ac));
SlaveTemplate received = ((EC2Cloud) r.jenkins.clouds.iterator().next()).getTemplate(description);
r.assertEqualBeans(orig, received, "ami,zone,spotConfig,description,remoteFS,type,javaPath,jvmopts,stopOnTerminate,securityGroups,subnetId,tags,usePrivateDnsName");
}
Expand All @@ -182,7 +185,7 @@ public void testSpotConfigWithoutBidPrice() throws Exception {
AmazonEC2Cloud ac = new AmazonEC2Cloud("us-east-1", false, "abc", "us-east-1", "ghi", "3", templates, null, null);
r.jenkins.clouds.add(ac);

r.submit(r.createWebClient().goTo("configureClouds").getFormByName("config"));
r.submit(getConfigForm(ac));
SlaveTemplate received = ((EC2Cloud) r.jenkins.clouds.iterator().next()).getTemplate(description);
r.assertEqualBeans(orig, received, "ami,zone,spotConfig,description,remoteFS,type,javaPath,jvmopts,stopOnTerminate,securityGroups,subnetId,tags,usePrivateDnsName");
}
Expand All @@ -199,7 +202,7 @@ public void testWindowsConfigRoundTrip() throws Exception {
AmazonEC2Cloud ac = new AmazonEC2Cloud("us-east-1", false, "abc", "us-east-1", "ghi", "3", templates, null, null);
r.jenkins.clouds.add(ac);

r.submit(r.createWebClient().goTo("configureClouds").getFormByName("config"));
r.submit(getConfigForm(ac));
SlaveTemplate received = ((EC2Cloud) r.jenkins.clouds.iterator().next()).getTemplate(description);
assertEquals(orig.getAdminPassword(), received.getAdminPassword());
assertEquals(orig.amiType, received.amiType);
Expand All @@ -217,7 +220,7 @@ public void testUnixConfigRoundTrip() throws Exception {
AmazonEC2Cloud ac = new AmazonEC2Cloud("us-east-1", false, "abc", "us-east-1", "ghi", "3", templates, null, null);
r.jenkins.clouds.add(ac);

r.submit(r.createWebClient().goTo("configureClouds").getFormByName("config"));
r.submit(getConfigForm(ac));
car-roll marked this conversation as resolved.
Show resolved Hide resolved
SlaveTemplate received = ((EC2Cloud) r.jenkins.clouds.iterator().next()).getTemplate(description);
r.assertEqualBeans(orig, received, "amiType");
}
Expand Down Expand Up @@ -422,7 +425,7 @@ public void testMacConfig() throws Exception {
AmazonEC2Cloud ac = new AmazonEC2Cloud("us-east-1", false, "abc", "us-east-1", "ghi", "3", templates, null, null);
r.jenkins.clouds.add(ac);

r.submit(r.createWebClient().goTo("configureClouds").getFormByName("config"));
r.submit(getConfigForm(ac));
SlaveTemplate received = ((EC2Cloud) r.jenkins.clouds.iterator().next()).getTemplate(description);
r.assertEqualBeans(orig, received, "type,amiType");
}
Expand Down Expand Up @@ -528,4 +531,7 @@ public void provisionOnDemandSetsMetadataDefaultOptions() throws Exception {
assertEquals(metadataOptionsRequest.getHttpPutResponseHopLimit(), Integer.valueOf(1));
}

private HtmlForm getConfigForm(AmazonEC2Cloud ac) throws IOException, SAXException {
return r.createWebClient().goTo(ac.getUrl() + "configure").getFormByName("config");
}
}
2 changes: 1 addition & 1 deletion src/test/resources/hudson/plugins/ec2/EC2CloudEmpty.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
jenkins:
clouds:
- amazonEC2:
cloudName: ""
cloudName: "empty"
privateKey: "${PRIVATE_KEY}"
Loading