use of com.sequenceiq.environment.credential.domain.Credential in project cloudbreak by hortonworks.
the class EnvironmentCreationServiceTest method testCreateAzureDisabled.
@Test
void testCreateAzureDisabled() {
ParametersDto parametersDto = ParametersDto.builder().withAwsParameters(AwsParametersDto.builder().withDynamoDbTableName("dynamo").build()).build();
final EnvironmentCreationDto environmentCreationDto = EnvironmentCreationDto.builder().withName(ENVIRONMENT_NAME).withCloudPlatform("AZURE").withCreator(CRN).withAccountId(ACCOUNT_ID).withAuthentication(AuthenticationDto.builder().build()).withParameters(parametersDto).withLocation(LocationDto.builder().withName("test").withDisplayName("test").withLatitude(0.1).withLongitude(0.1).build()).build();
final Environment environment = new Environment();
environment.setName(ENVIRONMENT_NAME);
environment.setId(1L);
environment.setAccountId(ACCOUNT_ID);
Credential credential = new Credential();
credential.setCloudPlatform("AZURE");
when(environmentService.isNameOccupied(eq(ENVIRONMENT_NAME), eq(ACCOUNT_ID))).thenReturn(false);
when(environmentDtoConverter.creationDtoToEnvironment(eq(environmentCreationDto))).thenReturn(environment);
when(environmentResourceService.getCredentialFromRequest(any(), any())).thenReturn(credential);
when(validatorService.validateParentChildRelation(any(), any())).thenReturn(ValidationResult.builder().build());
when(validatorService.validateNetworkCreation(any(), any())).thenReturn(ValidationResult.builder());
when(validatorService.validateFreeIpaCreation(any())).thenReturn(ValidationResult.builder().build());
when(authenticationDtoConverter.dtoToAuthentication(any())).thenReturn(new EnvironmentAuthentication());
when(environmentService.getRegionsByEnvironment(eq(environment))).thenReturn(getCloudRegions());
when(environmentService.save(any())).thenReturn(environment);
when(entitlementService.azureEnabled(eq(ACCOUNT_ID))).thenReturn(false);
assertThrows(BadRequestException.class, () -> environmentCreationServiceUnderTest.create(environmentCreationDto));
verify(validatorService, Mockito.times(1)).validatePublicKey(any());
verify(environmentService, never()).save(any());
verify(environmentResourceService, never()).createAndSetNetwork(any(), any(), any(), any(), any());
verify(reactorFlowManager, never()).triggerCreationFlow(anyLong(), eq(ENVIRONMENT_NAME), eq(USER), anyString());
}
use of com.sequenceiq.environment.credential.domain.Credential in project cloudbreak by hortonworks.
the class EnvironmentCreationServiceTest method testCreate.
@Test
void testCreate() {
ParametersDto parametersDto = ParametersDto.builder().withAwsParameters(AwsParametersDto.builder().withDynamoDbTableName("dynamo").build()).build();
String environmentCrn = "crn";
final EnvironmentCreationDto environmentCreationDto = EnvironmentCreationDto.builder().withName(ENVIRONMENT_NAME).withCreator(CRN).withAccountId(ACCOUNT_ID).withCrn(environmentCrn).withAuthentication(AuthenticationDto.builder().build()).withParameters(parametersDto).withLocation(LocationDto.builder().withName("test").withDisplayName("test").withLatitude(0.1).withLongitude(0.1).build()).build();
final Environment environment = new Environment();
environment.setName(ENVIRONMENT_NAME);
environment.setId(1L);
environment.setAccountId(ACCOUNT_ID);
Credential credential = new Credential();
credential.setCloudPlatform("platform");
when(environmentService.isNameOccupied(eq(ENVIRONMENT_NAME), eq(ACCOUNT_ID))).thenReturn(false);
when(environmentDtoConverter.creationDtoToEnvironment(eq(environmentCreationDto))).thenReturn(environment);
when(environmentResourceService.getCredentialFromRequest(any(), eq(ACCOUNT_ID))).thenReturn(credential);
when(validatorService.validateParentChildRelation(any(), any())).thenReturn(ValidationResult.builder().build());
when(validatorService.validateNetworkCreation(any(), any())).thenReturn(ValidationResult.builder());
when(validatorService.validateFreeIpaCreation(any())).thenReturn(ValidationResult.builder().build());
when(authenticationDtoConverter.dtoToAuthentication(any())).thenReturn(new EnvironmentAuthentication());
when(environmentService.getRegionsByEnvironment(eq(environment))).thenReturn(getCloudRegions());
when(environmentService.save(any())).thenReturn(environment);
environmentCreationServiceUnderTest.create(environmentCreationDto);
verify(validatorService, Mockito.times(1)).validatePublicKey(any());
verify(environmentService).save(any());
verify(parametersService).saveParameters(eq(environment), eq(parametersDto));
verify(environmentResourceService).createAndSetNetwork(any(), any(), any(), any(), any());
verify(reactorFlowManager).triggerCreationFlow(eq(1L), eq(ENVIRONMENT_NAME), eq(CRN), anyString());
}
use of com.sequenceiq.environment.credential.domain.Credential in project cloudbreak by hortonworks.
the class AwsCredentialValidatorTest method testValidUpdate.
@Test
public void testValidUpdate() {
Credential original = new Credential();
ObjectNode rootOriginal = getAwsAttributes();
putKeyBased(rootOriginal);
original.setAttributes(rootOriginal.toString());
Credential newCred = new Credential();
ObjectNode rootNew = getAwsAttributes();
putKeyBased(rootNew);
newCred.setAttributes(rootNew.toString());
ValidationResultBuilder resultBuilder = new ValidationResultBuilder();
ValidationResult validationResult = awsCredentialValidator.validateUpdate(original, newCred, resultBuilder);
assertFalse(validationResult.hasError());
}
use of com.sequenceiq.environment.credential.domain.Credential in project cloudbreak by hortonworks.
the class AwsCredentialValidatorTest method testRoleBasedToKeyBased.
@Test
public void testRoleBasedToKeyBased() {
Credential original = new Credential();
ObjectNode rootOriginal = getAwsAttributes();
putRoleBased(rootOriginal);
original.setAttributes(rootOriginal.toString());
Credential newCred = new Credential();
ObjectNode rootNew = getAwsAttributes();
putKeyBased(rootNew);
newCred.setAttributes(rootNew.toString());
ValidationResultBuilder resultBuilder = new ValidationResultBuilder();
ValidationResult result = awsCredentialValidator.validateUpdate(original, newCred, resultBuilder);
assertEquals(1, result.getErrors().size());
assertThat(result.getErrors().get(0), CoreMatchers.containsString("Cannot change AWS credential from role based to key based."));
}
use of com.sequenceiq.environment.credential.domain.Credential in project cloudbreak by hortonworks.
the class CredentialValidatorTest method testValidateCredentialUpdateWhenInvalidPlatformChange.
@Test
void testValidateCredentialUpdateWhenInvalidPlatformChange() {
Credential original = new Credential();
original.setCloudPlatform(CloudPlatform.AWS.name());
Credential newCred = new Credential();
newCred.setCloudPlatform(CloudPlatform.AZURE.name());
ValidationResult result = underTest.validateCredentialUpdate(original, newCred, ENVIRONMENT);
assertEquals(1, result.getErrors().size());
assertThat(result.getErrors().get(0)).contains("CloudPlatform of the credential cannot be changed! Original: 'AWS' New: 'AZURE'.");
}
Aggregations