Search in sources :

Example 1 with InstanceGroup

use of com.sequenceiq.it.cloudbreak.InstanceGroup in project cloudbreak by hortonworks.

the class MockStackCreationWithSaltSuccessTest method testStackCreation.

@Test
@Parameters({ "stackName", "region", "onFailureAction", "threshold", "adjustmentType", "variant", "availabilityZone", "persistentStorage", "orchestrator", "mockPort", "sshPort", "publicKeyFile" })
public void testStackCreation(@Optional("testing1") String stackName, @Optional("europe-west1") String region, @Optional("DO_NOTHING") String onFailureAction, @Optional("4") Long threshold, @Optional("EXACT") String adjustmentType, @Optional("") String variant, @Optional String availabilityZone, @Optional String persistentStorage, @Optional("SALT") String orchestrator, @Optional("9443") int mockPort, @Optional("2020") int sshPort, @Optional("") String publicKeyFile) throws Exception {
    // GIVEN
    IntegrationTestContext itContext = getItContext();
    List<InstanceGroup> instanceGroups = itContext.getContextParam(CloudbreakITContextConstants.TEMPLATE_ID, List.class);
    List<InstanceGroupRequest> igMap = new ArrayList<>();
    for (InstanceGroup ig : instanceGroups) {
        InstanceGroupRequest instanceGroupRequest = new InstanceGroupRequest();
        instanceGroupRequest.setGroup(ig.getName());
        instanceGroupRequest.setNodeCount(ig.getNodeCount());
        instanceGroupRequest.setTemplateId(Long.valueOf(ig.getTemplateId()));
        instanceGroupRequest.setType(InstanceGroupType.valueOf(ig.getType()));
        igMap.add(instanceGroupRequest);
    }
    String credentialId = itContext.getContextParam(CloudbreakITContextConstants.CREDENTIAL_ID);
    String networkId = itContext.getContextParam(CloudbreakITContextConstants.NETWORK_ID);
    StackRequest stackRequest = new StackRequest();
    publicKeyFile = StringUtils.hasLength(publicKeyFile) ? publicKeyFile : defaultPublicKeyFile;
    String publicKey = ResourceUtil.readStringFromResource(applicationContext, publicKeyFile).replaceAll("\n", "");
    StackAuthenticationRequest stackAuthenticationRequest = new StackAuthenticationRequest();
    stackAuthenticationRequest.setPublicKey(publicKey);
    stackRequest.setStackAuthentication(stackAuthenticationRequest);
    stackRequest.setName(stackName);
    stackRequest.setCredentialId(Long.valueOf(credentialId));
    stackRequest.setRegion(region);
    stackRequest.setOnFailureAction(OnFailureAction.valueOf(onFailureAction));
    FailurePolicyRequest failurePolicyRequest = new FailurePolicyRequest();
    failurePolicyRequest.setAdjustmentType(AdjustmentType.valueOf(adjustmentType));
    failurePolicyRequest.setThreshold(threshold);
    stackRequest.setFailurePolicy(failurePolicyRequest);
    stackRequest.setNetworkId(Long.valueOf(networkId));
    stackRequest.setPlatformVariant(variant);
    stackRequest.setAvailabilityZone(availabilityZone);
    stackRequest.setInstanceGroups(igMap);
    OrchestratorRequest orchestratorRequest = new OrchestratorRequest();
    orchestratorRequest.setType(orchestrator);
    stackRequest.setOrchestrator(orchestratorRequest);
    Map<String, String> map = new HashMap<>();
    if (persistentStorage != null && !persistentStorage.isEmpty()) {
        map.put("persistentStorage", persistentStorage);
    }
    stackRequest.setParameters(map);
    // WHEN
    String stackId = getCloudbreakClient().stackV1Endpoint().postPrivate(stackRequest).getId().toString();
    // THEN
    Assert.assertNotNull(stackId);
    itContext.putCleanUpParam(CloudbreakITContextConstants.STACK_ID, stackId);
    CloudbreakUtil.waitAndCheckStackStatus(getCloudbreakClient(), stackId, "AVAILABLE");
    itContext.putContextParam(CloudbreakITContextConstants.STACK_ID, stackId);
}
Also used : IntegrationTestContext(com.sequenceiq.it.IntegrationTestContext) StackAuthenticationRequest(com.sequenceiq.cloudbreak.api.model.StackAuthenticationRequest) InstanceGroupRequest(com.sequenceiq.cloudbreak.api.model.InstanceGroupRequest) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) StackRequest(com.sequenceiq.cloudbreak.api.model.StackRequest) InstanceGroup(com.sequenceiq.it.cloudbreak.InstanceGroup) OrchestratorRequest(com.sequenceiq.cloudbreak.api.model.OrchestratorRequest) FailurePolicyRequest(com.sequenceiq.cloudbreak.api.model.FailurePolicyRequest) Parameters(org.testng.annotations.Parameters) AbstractCloudbreakIntegrationTest(com.sequenceiq.it.cloudbreak.AbstractCloudbreakIntegrationTest) Test(org.testng.annotations.Test)

Example 2 with InstanceGroup

use of com.sequenceiq.it.cloudbreak.InstanceGroup in project cloudbreak by hortonworks.

the class MockStackCreationWithSaltSuccessTest method configMockServer.

@BeforeClass
@Parameters({ "stackName", "mockPort", "sshPort" })
public void configMockServer(String stackName, @Optional("9443") int mockPort, @Optional("2020") int sshPort) {
    IntegrationTestContext itContext = getItContext();
    List<InstanceGroup> instanceGroups = itContext.getContextParam(CloudbreakITContextConstants.TEMPLATE_ID, List.class);
    int numberOfServers = 0;
    for (InstanceGroup ig : instanceGroups) {
        numberOfServers += ig.getNodeCount();
    }
    StackCreationMock stackCreationMock = (StackCreationMock) applicationContext.getBean(StackCreationMock.NAME, mockPort, sshPort, numberOfServers);
    stackCreationMock.addSPIEndpoints();
    stackCreationMock.mockImageCatalogResponse(itContext);
    itContext.putContextParam(CloudbreakV2Constants.MOCK_SERVER, stackCreationMock);
    itContext.putContextParam(CloudbreakITContextConstants.MOCK_INSTANCE_MAP, stackCreationMock.getInstanceMap());
}
Also used : IntegrationTestContext(com.sequenceiq.it.IntegrationTestContext) StackCreationMock(com.sequenceiq.it.cloudbreak.v2.mock.StackCreationMock) InstanceGroup(com.sequenceiq.it.cloudbreak.InstanceGroup) BeforeClass(org.testng.annotations.BeforeClass) Parameters(org.testng.annotations.Parameters)

Aggregations

IntegrationTestContext (com.sequenceiq.it.IntegrationTestContext)2 InstanceGroup (com.sequenceiq.it.cloudbreak.InstanceGroup)2 Parameters (org.testng.annotations.Parameters)2 FailurePolicyRequest (com.sequenceiq.cloudbreak.api.model.FailurePolicyRequest)1 InstanceGroupRequest (com.sequenceiq.cloudbreak.api.model.InstanceGroupRequest)1 OrchestratorRequest (com.sequenceiq.cloudbreak.api.model.OrchestratorRequest)1 StackAuthenticationRequest (com.sequenceiq.cloudbreak.api.model.StackAuthenticationRequest)1 StackRequest (com.sequenceiq.cloudbreak.api.model.StackRequest)1 AbstractCloudbreakIntegrationTest (com.sequenceiq.it.cloudbreak.AbstractCloudbreakIntegrationTest)1 StackCreationMock (com.sequenceiq.it.cloudbreak.v2.mock.StackCreationMock)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 BeforeClass (org.testng.annotations.BeforeClass)1 Test (org.testng.annotations.Test)1