package com.sequenceiq.it.cloudbreak; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.inject.Inject; import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Optional; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import com.sequenceiq.cloudbreak.api.model.TemplateRequest; public class AwsTemplateCreationTest extends AbstractCloudbreakIntegrationTest { @Inject private TemplateAdditionHelper templateAdditionHelper; private List<TemplateAddition> additions; @BeforeMethod @Parameters({ "templateAdditions" }) public void setup(@Optional("master,1;slave_1,3") String templateAdditions) { additions = templateAdditionHelper.parseTemplateAdditions(templateAdditions); } @Test @Parameters({ "awsTemplateName", "awsInstanceType", "awsVolumeType", "awsVolumeCount", "awsVolumeSize", "awsSpotPrice" }) public void testAwsTemplateCreation(@Optional("it-aws-template") String awsTemplateName, @Optional("m3.medium") String awsInstanceType, @Optional("standard") String awsVolumeType, @Optional("1") String awsVolumeCount, @Optional("10") String awsVolumeSize, @Optional Float awsSpotPrice) throws Exception { // GIVEN // WHEN TemplateRequest templateRequest = new TemplateRequest(); templateRequest.setName(awsTemplateName); templateRequest.setDescription("AWS template for integration testing"); templateRequest.setCloudPlatform("AWS"); templateRequest.setInstanceType(awsInstanceType); templateRequest.setVolumeCount(Integer.valueOf(awsVolumeCount)); templateRequest.setVolumeSize(Integer.valueOf(awsVolumeSize)); templateRequest.setVolumeType(awsVolumeType); Map<String, Object> map = new HashMap<>(); map.put("encrypted", false); if (awsSpotPrice != null) { map.put("spotPrice", awsSpotPrice); } templateRequest.setParameters(map); templateRequest.setCloudPlatform("AWS"); String id = getCloudbreakClient().templateEndpoint().postPrivate(templateRequest).getId().toString(); // THEN Assert.assertNotNull(id); templateAdditionHelper.handleTemplateAdditions(getItContext(), id, additions); } }