Skip to content

Commit

Permalink
Merge pull request #875 from car-roll/manage-clouds-tests
Browse files Browse the repository at this point in the history
Test support for cloud management changes
  • Loading branch information
res0nance committed Sep 13, 2023
2 parents 53b02ab + 66e26e2 commit 821b427
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 19 deletions.
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ THE SOFTWARE.

<properties>
<changelist>999999-SNAPSHOT</changelist>
<jenkins.version>2.361.4</jenkins.version>
<jenkins.version>2.414</jenkins.version>
<gitHubRepo>jenkinsci/${project.artifactId}-plugin</gitHubRepo>
</properties>

Expand Down Expand Up @@ -224,8 +224,8 @@ THE SOFTWARE.
<dependencies>
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-2.361.x</artifactId>
<version>2102.v854b_fec19c92</version>
<artifactId>bom-2.414.x</artifactId>
<version>2329.v078520e55c19</version>
<scope>import</scope>
<type>pom</type>
</dependency>
Expand Down
11 changes: 5 additions & 6 deletions src/test/java/hudson/plugins/ec2/AmazonEC2CloudTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,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 @@ -89,13 +88,13 @@ public void testAmazonEC2FactoryGetInstance() throws Exception {
@Test
public void testSshKeysCredentialsIdRemainsUnchangedAfterUpdatingOtherFields() throws Exception {
HtmlForm form = getConfigForm();
HtmlTextInput input = form.getInputByName("_.cloudName");
HtmlTextInput input = form.getInputByName("_.roleSessionName");

input.setText("test-cloud-2");
input.setText("updatedSessionName");
r.submit(form);
AmazonEC2Cloud actual = r.jenkins.clouds.get(AmazonEC2Cloud.class);
assertEquals("test-cloud-2", actual.getCloudName());
r.assertEqualBeans(cloud, actual, "region,useInstanceProfileForCredentials,sshKeysCredentialsId,instanceCap,roleArn,roleSessionName");
assertEquals("updatedSessionName", actual.getRoleSessionName());
r.assertEqualBeans(cloud, actual, "cloudName,region,useInstanceProfileForCredentials,sshKeysCredentialsId,instanceCap,roleArn");
}

@Test
Expand Down Expand Up @@ -163,7 +162,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");
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));
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}"

0 comments on commit 821b427

Please sign in to comment.