use of com.sequenceiq.environment.environment.domain.EnvironmentAuthentication in project cloudbreak by hortonworks.
the class EnvironmentCreationServiceTest method testCreateForCcmV2TunnelInitialization.
// CHECKSTYLE:ON
// @formatter:on
@ParameterizedTest(name = "Tunnel = {0}, Override = {1}, CCMv2Entitled = {2}, CMv2JumpgateEntitled = {3}, Valid = {4}")
@MethodSource("tunnelingScenarios")
void testCreateForCcmV2TunnelInitialization(Tunnel tunnel, boolean override, boolean ccmV2Entitled, boolean ccmv2JumpgateEntitled, boolean valid, Tunnel expectedTunnel, Class<? extends Throwable> expectedThrowable, String errorMessage) {
EnvironmentCreationDto environmentCreationDto = EnvironmentCreationDto.builder().withName(ENVIRONMENT_NAME).withAccountId(ACCOUNT_ID).withAuthentication(AuthenticationDto.builder().build()).build();
Environment environment = new Environment();
environment.setName(ENVIRONMENT_NAME);
environment.setId(1L);
environment.setAccountId(ACCOUNT_ID);
environment.setExperimentalFeaturesJson(ExperimentalFeatures.builder().withTunnel(tunnel).withOverrideTunnel(override).build());
when(environmentService.isNameOccupied(eq(ENVIRONMENT_NAME), eq(ACCOUNT_ID))).thenReturn(false);
when(environmentResourceService.getCredentialFromRequest(any(), any())).thenReturn(new Credential());
when(environmentDtoConverter.creationDtoToEnvironment(eq(environmentCreationDto))).thenReturn(environment);
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(any())).thenReturn(getCloudRegions());
when(environmentService.save(any(Environment.class))).thenReturn(environment);
when(entitlementService.ccmV2Enabled(ACCOUNT_ID)).thenReturn(ccmV2Entitled);
when(entitlementService.ccmV2JumpgateEnabled(ACCOUNT_ID)).thenReturn(ccmv2JumpgateEntitled);
if (valid) {
environmentCreationServiceUnderTest.create(environmentCreationDto);
ArgumentCaptor<Environment> captor = ArgumentCaptor.forClass(Environment.class);
verify(environmentService).save(captor.capture());
Environment capturedEnvironment = captor.getValue();
assertEquals(expectedTunnel, capturedEnvironment.getExperimentalFeaturesJson().getTunnel(), "Tunnel should be " + expectedTunnel);
} else {
assertThatThrownBy(() -> environmentCreationServiceUnderTest.create(environmentCreationDto)).isInstanceOf(expectedThrowable).hasMessage(errorMessage);
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.environment.domain.EnvironmentAuthentication in project cloudbreak by hortonworks.
the class EnvironmentCreationServiceTest method testCreationVerificationError.
@Test
void testCreationVerificationError() {
ParametersDto parametersDto = ParametersDto.builder().withAwsParameters(AwsParametersDto.builder().withDynamoDbTableName("dynamo").build()).build();
final EnvironmentCreationDto environmentCreationDto = EnvironmentCreationDto.builder().withName(ENVIRONMENT_NAME).withAccountId(ACCOUNT_ID).withAuthentication(AuthenticationDto.builder().build()).withCreator(CRN).withAccountId(ACCOUNT_ID).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");
ValidationResultBuilder validationResultBuilder = new ValidationResultBuilder();
validationResultBuilder.error("error");
when(validatorService.validateNetworkCreation(any(), any())).thenReturn(validationResultBuilder);
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(authenticationDtoConverter.dtoToAuthentication(any())).thenReturn(new EnvironmentAuthentication());
when(environmentService.getRegionsByEnvironment(eq(environment))).thenReturn(getCloudRegions());
when(validatorService.validateParentChildRelation(any(), any())).thenReturn(ValidationResult.builder().build());
when(validatorService.validateFreeIpaCreation(any())).thenReturn(ValidationResult.builder().build());
when(validationResult.merge(any())).thenReturn(ValidationResult.builder().error("nogood"));
when(environmentService.save(any())).thenReturn(environment);
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.environment.domain.EnvironmentAuthentication in project cloudbreak by hortonworks.
the class EnvironmentCreationServiceTest method testCreateWithParentEnvironment.
@Test
void testCreateWithParentEnvironment() {
ParametersDto parametersDto = ParametersDto.builder().withAwsParameters(AwsParametersDto.builder().withDynamoDbTableName("dynamo").build()).build();
final EnvironmentCreationDto environmentCreationDto = EnvironmentCreationDto.builder().withName(ENVIRONMENT_NAME).withCreator(CRN).withAccountId(ACCOUNT_ID).withAuthentication(AuthenticationDto.builder().build()).withParameters(parametersDto).withCrn("aCrn").withLocation(LocationDto.builder().withName("test").withDisplayName("test").withLatitude(0.1).withLongitude(0.1).build()).withParentEnvironmentName("parentCrn").build();
final Environment environment = new Environment();
environment.setName(ENVIRONMENT_NAME);
environment.setId(1L);
environment.setAccountId(ACCOUNT_ID);
final Environment parentEnvironment = new Environment();
parentEnvironment.setName(ENVIRONMENT_NAME);
parentEnvironment.setId(2L);
parentEnvironment.setAccountId(ACCOUNT_ID);
String parentEnvironmentResourceCrn = "ParentEnvironmentResourceCrn";
parentEnvironment.setResourceCrn(parentEnvironmentResourceCrn);
Credential credential = new Credential();
credential.setCloudPlatform("platform");
ArgumentCaptor<Environment> environmentArgumentCaptor = ArgumentCaptor.forClass(Environment.class);
when(environmentService.findByNameAndAccountIdAndArchivedIsFalse(any(), eq(ACCOUNT_ID))).thenReturn(Optional.of(parentEnvironment));
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.validateNetworkCreation(any(), any())).thenReturn(ValidationResult.builder());
when(validatorService.validateParentChildRelation(any(), any())).thenReturn(ValidationResult.builder().build());
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(environmentArgumentCaptor.capture())).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(anyLong(), eq(ENVIRONMENT_NAME), eq(CRN), anyString());
assertEquals(environmentArgumentCaptor.getValue().getParentEnvironment(), parentEnvironment);
}
use of com.sequenceiq.environment.environment.domain.EnvironmentAuthentication in project cloudbreak by hortonworks.
the class AuthenticationDtoConverterTest method testSshKeyCreation.
@Test
void testSshKeyCreation() {
String testKey = "ssh-rsa AAAASASFAS3532== banana@apple.com";
AuthenticationDto dto = AuthenticationDto.builder().withLoginUserName(LOGIN).withPublicKey(testKey).withPublicKeyId(PUBLIC_KEY_ID).withManagedKey(true).build();
EnvironmentAuthentication environmentAuthentication = underTest.dtoToAuthentication(dto);
verify(publicKeyValidator, Mockito.times(1)).validatePublicKey(anyString());
assertEquals("ssh-rsa AAAASASFAS3532== login", environmentAuthentication.getPublicKey());
}
use of com.sequenceiq.environment.environment.domain.EnvironmentAuthentication in project cloudbreak by hortonworks.
the class AuthenticationDtoConverterTest method testDtoToAuthentication.
@Test
void testDtoToAuthentication() {
AuthenticationDto dto = AuthenticationDto.builder().withLoginUserName(LOGIN).withPublicKey(PUBLIC_KEY).withPublicKeyId(PUBLIC_KEY_ID).withManagedKey(true).build();
EnvironmentAuthentication result = underTest.dtoToAuthentication(dto);
verify(publicKeyValidator, Mockito.times(1)).validatePublicKey(anyString());
assertEquals(dto.getLoginUserName(), result.getLoginUserName());
assertEquals("ssh-rsa public-key login", result.getPublicKey());
assertEquals(dto.getPublicKeyId(), result.getPublicKeyId());
assertEquals(dto.isManagedKey(), result.isManagedKey());
}
Aggregations