use of com.sequenceiq.cloudbreak.api.model.OrchestratorRequest in project cloudbreak by hortonworks.
the class StackCreationTest method testStackCreation.
@Test
@Parameters({ "stackName", "region", "onFailureAction", "threshold", "adjustmentType", "variant", "availabilityZone", "persistentStorage", "orchestrator", "userDefinedTags", "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("") String userDefinedTags, @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()));
instanceGroupRequest.setSecurityGroupId(Long.valueOf(itContext.getContextParam(CloudbreakITContextConstants.SECURITY_GROUP_ID)));
igMap.add(instanceGroupRequest);
}
String credentialId = itContext.getContextParam(CloudbreakITContextConstants.CREDENTIAL_ID);
String networkId = itContext.getContextParam(CloudbreakITContextConstants.NETWORK_ID);
publicKeyFile = StringUtils.hasLength(publicKeyFile) ? publicKeyFile : defaultPublicKeyFile;
String publicKey = ResourceUtil.readStringFromResource(applicationContext, publicKeyFile).replaceAll("\n", "");
StackRequest stackRequest = new StackRequest();
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);
if (!userDefinedTags.isEmpty()) {
stackRequest.setUserDefinedTags(TagsUtil.getTagsToCheck(userDefinedTags));
}
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);
ScalingUtil.putInstanceCountToContext(itContext, stackId);
}
use of com.sequenceiq.cloudbreak.api.model.OrchestratorRequest in project cloudbreak by hortonworks.
the class StackV2RequestToStackRequestConverter method convert.
@Override
public StackRequest convert(StackV2Request source) {
StackRequest stackRequest = new StackRequest();
stackRequest.setName(source.getGeneral().getName());
if (source.getPlacement() != null) {
stackRequest.setAvailabilityZone(source.getPlacement().getAvailabilityZone());
stackRequest.setRegion(source.getPlacement().getRegion());
}
stackRequest.setPlatformVariant(source.getPlatformVariant());
stackRequest.setAmbariVersion(source.getAmbariVersion());
stackRequest.setHdpVersion(source.getHdpVersion());
stackRequest.setParameters(convertParameters(source.getParameters()));
if (source.getCustomDomain() != null) {
stackRequest.setCustomDomain(source.getCustomDomain().getCustomDomain());
stackRequest.setCustomHostname(source.getCustomDomain().getCustomHostname());
stackRequest.setClusterNameAsSubdomain(source.getCustomDomain().isClusterNameAsSubdomain());
stackRequest.setHostgroupNameAsHostname(source.getCustomDomain().isHostgroupNameAsHostname());
}
if (source.getTags() != null) {
stackRequest.setApplicationTags(source.getTags().getApplicationTags());
stackRequest.setDefaultTags(source.getTags().getDefaultTags());
stackRequest.setUserDefinedTags(source.getTags().getUserDefinedTags());
}
stackRequest.setInstanceGroups(new ArrayList<>());
for (InstanceGroupV2Request instanceGroupV2Request : source.getInstanceGroups()) {
InstanceGroupRequest convert = conversionService.convert(instanceGroupV2Request, InstanceGroupRequest.class);
stackRequest.getInstanceGroups().add(convert);
}
stackRequest.setFailurePolicy(source.getFailurePolicy());
stackRequest.setStackAuthentication(source.getStackAuthentication());
stackRequest.setNetwork(conversionService.convert(source.getNetwork(), NetworkRequest.class));
OrchestratorRequest orchestrator = new OrchestratorRequest();
orchestrator.setType("SALT");
stackRequest.setOrchestrator(orchestrator);
if (source.getImageSettings() != null) {
stackRequest.setImageCatalog(source.getImageSettings().getImageCatalog());
stackRequest.setImageId(source.getImageSettings().getImageId());
}
stackRequest.setFlexId(source.getFlexId());
stackRequest.setCredentialName(source.getGeneral().getCredentialName());
stackRequest.setOwner(Strings.isNullOrEmpty(source.getOwner()) ? authenticatedUserService.getCbUser().getUserId() : source.getOwner());
stackRequest.setAccount(Strings.isNullOrEmpty(source.getAccount()) ? authenticatedUserService.getCbUser().getAccount() : source.getAccount());
stackRequest.setOwnerEmail(Strings.isNullOrEmpty(source.getOwnerEmail()) ? authenticatedUserService.getCbUser().getUsername() : source.getOwnerEmail());
convertClusterRequest(source, stackRequest);
stackRequest.setCloudPlatform(credentialService.get(stackRequest.getCredentialName(), stackRequest.getAccount()).cloudPlatform());
return stackRequest;
}
use of com.sequenceiq.cloudbreak.api.model.OrchestratorRequest in project cloudbreak by hortonworks.
the class OrchestratorToOrchestratorRequestConverter method convert.
@Override
public OrchestratorRequest convert(Orchestrator source) {
OrchestratorRequest orchestratorRequest = new OrchestratorRequest();
orchestratorRequest.setType(source.getType());
orchestratorRequest.setParameters(null);
return orchestratorRequest;
}
use of com.sequenceiq.cloudbreak.api.model.OrchestratorRequest 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);
}
use of com.sequenceiq.cloudbreak.api.model.OrchestratorRequest in project cloudbreak by hortonworks.
the class StackRequestToStackConverterTest method testForNoRegionAndNoDefaultRegion.
@Test
public void testForNoRegionAndNoDefaultRegion() throws CloudbreakException {
InstanceGroup instanceGroup = mock(InstanceGroup.class);
when(instanceGroup.getInstanceGroupType()).thenReturn(InstanceGroupType.GATEWAY);
// GIVEN
given(conversionService.convert(any(Object.class), any(TypeDescriptor.class), any(TypeDescriptor.class))).willReturn(new HashSet<>(Collections.singletonList(instanceGroup)));
given(conversionService.convert(any(StackAuthenticationRequest.class), eq(StackAuthentication.class))).willReturn(new StackAuthentication());
given(conversionService.convert(any(FailurePolicyRequest.class), eq(FailurePolicy.class))).willReturn(new FailurePolicy());
given(conversionService.convert(any(InstanceGroupRequest.class), eq(InstanceGroup.class))).willReturn(instanceGroup);
given(conversionService.convert(any(OrchestratorRequest.class), eq(Orchestrator.class))).willReturn(new Orchestrator());
given(orchestratorTypeResolver.resolveType(any(Orchestrator.class))).willReturn(OrchestratorType.HOST);
given(orchestratorTypeResolver.resolveType(any(String.class))).willReturn(OrchestratorType.HOST);
given(defaultCostTaggingService.prepareDefaultTags(any(String.class), any(String.class), anyMap(), anyString())).willReturn(new HashMap<>());
thrown.expect(BadRequestException.class);
thrown.expectMessage("No default region is specified. Region cannot be empty.");
// WHEN
StackRequest stackRequest = getRequest("stack/stack.json");
OrchestratorRequest orchestratorRequest = new OrchestratorRequest();
orchestratorRequest.setType("SALT");
stackRequest.setOrchestrator(orchestratorRequest);
stackRequest.setRegion(null);
underTest.convert(stackRequest);
}
Aggregations