package com.sequenceiq.it.cloudbreak; import org.springframework.beans.factory.annotation.Value; import org.springframework.util.StringUtils; import org.testng.Assert; import org.testng.annotations.Optional; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import com.sequenceiq.cloudbreak.api.model.RDSConfigRequest; import com.sequenceiq.cloudbreak.api.model.RDSDatabase; import com.sequenceiq.it.IntegrationTestContext; public class RDSConfigTest extends AbstractCloudbreakIntegrationTest { @Value("${integrationtest.rdsconfig.rdsUser}") private String defaultRdsUser; @Value("${integrationtest.rdsconfig.rdsPassword}") private String defaultRdsPassword; @Value("${integrationtest.rdsconfig.rdsConnectionUrl}") private String defaultRdsConnectionUrl; @Test @Parameters({ "rdsName", "rdsUser", "rdsPassword", "rdsConnectionUrl", "rdsDbType", "hdpVersion" }) public void testRDSConfig(String rdsName, @Optional("") String rdsUser, @Optional("") String rdsPassword, @Optional("") String rdsConnectionUrl, @Optional("POSTGRES") String rdsDbType, @Optional("2.5") String hdpVersion) throws Exception { // GIVEN IntegrationTestContext itContext = getItContext(); rdsUser = StringUtils.hasLength(rdsUser) ? rdsUser : defaultRdsUser; rdsPassword = StringUtils.hasLength(rdsPassword) ? rdsPassword : defaultRdsPassword; rdsConnectionUrl = StringUtils.hasLength(rdsConnectionUrl) ? rdsConnectionUrl : defaultRdsConnectionUrl; RDSConfigRequest rdsCreateRequest = new RDSConfigRequest(); rdsCreateRequest.setName(rdsName); rdsCreateRequest.setConnectionUserName(rdsUser); rdsCreateRequest.setConnectionPassword(rdsPassword); rdsCreateRequest.setConnectionURL(rdsConnectionUrl); rdsCreateRequest.setDatabaseType(RDSDatabase.valueOf(rdsDbType)); rdsCreateRequest.setHdpVersion(hdpVersion); // WHEN String rdsConnectionResult = getCloudbreakClient().utilEndpoint().testRdsConnection(rdsCreateRequest).getConnectionResult(); Assert.assertEquals(rdsConnectionResult, "connected", "RDS connection test failed. Set the RDS configuration parameters properly."); String rdsConfigId = getCloudbreakClient().rdsConfigEndpoint().postPrivate(rdsCreateRequest).getId().toString(); itContext.putContextParam(CloudbreakITContextConstants.RDS_CONFIG_ID, rdsConfigId); itContext.putCleanUpParam(CloudbreakITContextConstants.RDS_CONFIG_ID, rdsConfigId); //THEN String listedRDSByName = getCloudbreakClient().rdsConfigEndpoint().getPrivate(rdsName).getName(); Assert.assertEquals(listedRDSByName, rdsName); } }