package de.widdix.awsec2ssh; import com.amazonaws.services.cloudformation.model.Parameter; import org.junit.Test; public class TestShowcaseRPM extends ACloudFormationTest { // TODO make Version parameter configurable via ENV variable @Test public void testCentOS() throws Exception { final String stackName = "showcase-rpm-" + this.random8String(); final String userName = "user-" + this.random8String(); try { final User user = this.createUser(userName); try { if (Config.has(Config.Key.VERSION)) { this.createStack(stackName, "showcase-rpm.yaml", new Parameter().withParameterKey("VPC").withParameterValue(this.getDefaultVPC().getVpcId()), new Parameter().withParameterKey("Subnet").withParameterValue(this.getDefaultSubnets().get(0).getSubnetId()), new Parameter().withParameterKey("OS").withParameterValue("CentOS"), new Parameter().withParameterKey("Version").withParameterValue(Config.get(Config.Key.VERSION)) ); } else { this.createStack(stackName, "showcase-rpm.yaml", new Parameter().withParameterKey("VPC").withParameterValue(this.getDefaultVPC().getVpcId()), new Parameter().withParameterKey("Subnet").withParameterValue(this.getDefaultSubnets().get(0).getSubnetId()), new Parameter().withParameterKey("OS").withParameterValue("CentOS") ); } final String host = this.getStackOutputValue(stackName, "PublicName"); this.probeSSH(host, user); } finally { this.deleteStack(stackName); } } finally { this.deleteUser(userName); } } @Test public void testRHEL() throws Exception { final String stackName = "showcase-rpm-" + this.random8String(); final String userName = "user-" + this.random8String(); try { final User user = this.createUser(userName); try { if (Config.has(Config.Key.VERSION)) { this.createStack(stackName, "showcase-rpm.yaml", new Parameter().withParameterKey("VPC").withParameterValue(this.getDefaultVPC().getVpcId()), new Parameter().withParameterKey("Subnet").withParameterValue(this.getDefaultSubnets().get(0).getSubnetId()), new Parameter().withParameterKey("OS").withParameterValue("RHEL"), new Parameter().withParameterKey("Version").withParameterValue(Config.get(Config.Key.VERSION)) ); } else { this.createStack(stackName, "showcase-rpm.yaml", new Parameter().withParameterKey("VPC").withParameterValue(this.getDefaultVPC().getVpcId()), new Parameter().withParameterKey("Subnet").withParameterValue(this.getDefaultSubnets().get(0).getSubnetId()), new Parameter().withParameterKey("OS").withParameterValue("RHEL") ); } final String host = this.getStackOutputValue(stackName, "PublicName"); this.probeSSH(host, user); } finally { this.deleteStack(stackName); } } finally { this.deleteUser(userName); } } @Test public void testSUSELinuxEnterpriseServer() throws Exception { final String stackName = "showcase-rpm-" + this.random8String(); final String userName = "user-" + this.random8String(); try { final User user = this.createUser(userName); try { if (Config.has(Config.Key.VERSION)) { this.createStack(stackName, "showcase-rpm.yaml", new Parameter().withParameterKey("VPC").withParameterValue(this.getDefaultVPC().getVpcId()), new Parameter().withParameterKey("Subnet").withParameterValue(this.getDefaultSubnets().get(0).getSubnetId()), new Parameter().withParameterKey("OS").withParameterValue("SUSELinuxEnterpriseServer"), new Parameter().withParameterKey("Version").withParameterValue(Config.get(Config.Key.VERSION)) ); } else { this.createStack(stackName, "showcase-rpm.yaml", new Parameter().withParameterKey("VPC").withParameterValue(this.getDefaultVPC().getVpcId()), new Parameter().withParameterKey("Subnet").withParameterValue(this.getDefaultSubnets().get(0).getSubnetId()), new Parameter().withParameterKey("OS").withParameterValue("SUSELinuxEnterpriseServer") ); } final String host = this.getStackOutputValue(stackName, "PublicName"); this.probeSSH(host, user); } finally { this.deleteStack(stackName); } } finally { this.deleteUser(userName); } } @Test public void testAmazonLinux2() throws Exception { final String stackName = "showcase-rpm-" + this.random8String(); final String userName = "user-" + this.random8String(); try { final User user = this.createUser(userName); try { if (Config.has(Config.Key.VERSION)) { this.createStack(stackName, "showcase-rpm.yaml", new Parameter().withParameterKey("VPC").withParameterValue(this.getDefaultVPC().getVpcId()), new Parameter().withParameterKey("Subnet").withParameterValue(this.getDefaultSubnets().get(0).getSubnetId()), new Parameter().withParameterKey("OS").withParameterValue("AmazonLinux2"), new Parameter().withParameterKey("Version").withParameterValue(Config.get(Config.Key.VERSION)) ); } else { this.createStack(stackName, "showcase-rpm.yaml", new Parameter().withParameterKey("VPC").withParameterValue(this.getDefaultVPC().getVpcId()), new Parameter().withParameterKey("Subnet").withParameterValue(this.getDefaultSubnets().get(0).getSubnetId()), new Parameter().withParameterKey("OS").withParameterValue("AmazonLinux2") ); } final String host = this.getStackOutputValue(stackName, "PublicName"); this.probeSSH(host, user); } finally { this.deleteStack(stackName); } } finally { this.deleteUser(userName); } } @Test public void testDefaultAmazonLinux() throws Exception { final String stackName = "showcase-rpm-" + this.random8String(); final String userName = "user-" + this.random8String(); try { final User user = this.createUser(userName); try { if (Config.has(Config.Key.VERSION)) { this.createStack(stackName, "showcase-rpm.yaml", new Parameter().withParameterKey("VPC").withParameterValue(this.getDefaultVPC().getVpcId()), new Parameter().withParameterKey("Subnet").withParameterValue(this.getDefaultSubnets().get(0).getSubnetId()), new Parameter().withParameterKey("Version").withParameterValue(Config.get(Config.Key.VERSION)) ); } else { this.createStack(stackName, "showcase-rpm.yaml", new Parameter().withParameterKey("VPC").withParameterValue(this.getDefaultVPC().getVpcId()), new Parameter().withParameterKey("Subnet").withParameterValue(this.getDefaultSubnets().get(0).getSubnetId()) ); } final String host = this.getStackOutputValue(stackName, "PublicName"); this.probeSSH(host, user); } finally { this.deleteStack(stackName); } } finally { this.deleteUser(userName); } } }