package com.sequenceiq.it.cloudbreak; import java.util.List; 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; import jersey.repackaged.com.google.common.collect.ImmutableMap; public class GcpTemplateCreationTest extends AbstractCloudbreakIntegrationTest { @Inject private TemplateAdditionHelper additionHelper; private List<TemplateAddition> additions; @BeforeMethod @Parameters({ "templateAdditions" }) public void setup(@Optional("master,1;slave_1,3") String templateAdditions) { additions = additionHelper.parseTemplateAdditions(templateAdditions); } @Test @Parameters({ "gcpName", "gcpInstanceType", "volumeType", "volumeCount", "volumeSize", "preemptible" }) public void testGcpTemplateCreation(@Optional("it-gcp-template") String gcpName, @Optional("n1-standard-2") String gcpInstanceType, @Optional("pd-standard") String volumeType, @Optional("1") String volumeCount, @Optional("30") String volumeSize, @Optional("false") Boolean preemptible) throws Exception { // GIVEN // WHEN TemplateRequest templateRequest = new TemplateRequest(); templateRequest.setName(gcpName); templateRequest.setDescription("GCP template for integration testing"); templateRequest.setCloudPlatform("GCP"); templateRequest.setInstanceType(gcpInstanceType); templateRequest.setVolumeCount(Integer.valueOf(volumeCount)); templateRequest.setVolumeSize(Integer.valueOf(volumeSize)); templateRequest.setVolumeType(volumeType); templateRequest.setCloudPlatform("GCP"); if (preemptible != null) { templateRequest.setParameters(ImmutableMap.of("preemptible", preemptible)); } String id = getCloudbreakClient().templateEndpoint().postPrivate(templateRequest).getId().toString(); // THEN Assert.assertNotNull(id); additionHelper.handleTemplateAdditions(getItContext(), id, additions); } }