package com.sequenceiq.it.cloudbreak; import java.util.HashMap; import java.util.Map; 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.CredentialRequest; import com.sequenceiq.it.util.ResourceUtil; public class GcpCredentialCreationTest extends AbstractCloudbreakIntegrationTest { @Value("${integrationtest.gcpcredential.name}") private String defaultName; @Value("${integrationtest.gcpcredential.projectId}") private String defaultProjectId; @Value("${integrationtest.gcpcredential.serviceAccountId}") private String defaultServiceAccountId; @Value("${integrationtest.gcpcredential.p12File}") private String defaultP12File; @Value("${integrationtest.gcpcredential.publicKeyFile}") private String defaultPublicKeyFile; @Test @Parameters({ "credentialName", "projectId", "serviceAccountId", "serviceAccountPrivateKeyP12File", "publicKeyFile" }) public void testGCPCredentialCreation(@Optional("")String credentialName, @Optional("")String projectId, @Optional("")String serviceAccountId, @Optional("")String serviceAccountPrivateKeyP12File, @Optional("")String publicKeyFile) throws Exception { // GIVEN credentialName = StringUtils.hasLength(credentialName) ? credentialName : defaultName; projectId = StringUtils.hasLength(projectId) ? projectId : defaultProjectId; serviceAccountId = StringUtils.hasLength(serviceAccountId) ? serviceAccountId : defaultServiceAccountId; serviceAccountPrivateKeyP12File = StringUtils.hasLength(serviceAccountPrivateKeyP12File) ? serviceAccountPrivateKeyP12File : defaultP12File; publicKeyFile = StringUtils.hasLength(publicKeyFile) ? publicKeyFile : defaultPublicKeyFile; String serviceAccountPrivateKey = ResourceUtil.readBase64EncodedContentFromResource(applicationContext, serviceAccountPrivateKeyP12File); String publicKey = ResourceUtil.readStringFromResource(applicationContext, publicKeyFile).replaceAll("\n", ""); CredentialRequest credentialRequest = new CredentialRequest(); credentialRequest.setCloudPlatform("GCP"); credentialRequest.setDescription("GCP credential for integartiontest"); credentialRequest.setName(credentialName); credentialRequest.setPublicKey(publicKey); Map<String, Object> map = new HashMap<>(); map.put("projectId", projectId); map.put("serviceAccountId", serviceAccountId); map.put("serviceAccountPrivateKey", serviceAccountPrivateKey); credentialRequest.setParameters(map); // WHEN String id = getCloudbreakClient().credentialEndpoint().postPrivate(credentialRequest).getId().toString(); // THEN Assert.assertNotNull(id); getItContext().putContextParam(CloudbreakITContextConstants.CREDENTIAL_ID, id, true); } }