Search in sources :

Example 6 with AttachedFreeIpaRequest

use of com.sequenceiq.environment.api.v1.environment.model.request.AttachedFreeIpaRequest in project cloudbreak by hortonworks.

the class FreeIpaConverterTest method testConvertWithImage.

@Test
public void testConvertWithImage() {
    // GIVEN
    AttachedFreeIpaRequest request = new AttachedFreeIpaRequest();
    request.setCreate(true);
    request.setImage(aFreeIpaImage(IMAGE_CATALOG, IMAGE_ID));
    request.setEnableMultiAz(true);
    // WHEN
    when(entitlementService.awsNativeFreeIpaEnabled(anyString())).thenReturn(true);
    FreeIpaCreationDto result = underTest.convert(request, "id", CloudConstants.AWS);
    // THEN
    assertEquals(IMAGE_CATALOG, result.getImageCatalog());
    assertEquals(IMAGE_ID, result.getImageId());
}
Also used : AttachedFreeIpaRequest(com.sequenceiq.environment.api.v1.environment.model.request.AttachedFreeIpaRequest) FreeIpaCreationDto(com.sequenceiq.environment.environment.dto.FreeIpaCreationDto) Test(org.junit.jupiter.api.Test)

Example 7 with AttachedFreeIpaRequest

use of com.sequenceiq.environment.api.v1.environment.model.request.AttachedFreeIpaRequest in project cloudbreak by hortonworks.

the class FreeIpaConverter method convert.

public FreeIpaCreationDto convert(AttachedFreeIpaRequest request, String accountId, String cloudPlatform) {
    FreeIpaCreationDto.Builder builder = FreeIpaCreationDto.builder();
    if (request != null) {
        builder.withCreate(request.getCreate());
        builder.withEnableMultiAz(request.isEnableMultiAz());
        if (request.isEnableMultiAz()) {
            if (!cloudPlatform.equalsIgnoreCase(CloudConstants.AWS)) {
                throw new BadRequestException("You need to provision AWS environment to use Multi Availability Zone.");
            }
            if (!entitlementService.awsNativeFreeIpaEnabled(accountId)) {
                throw new BadRequestException("You need to be entitled for CDP_CB_AWS_NATIVE_FREEIPA to provision FreeIPA in Multi Availability Zone.");
            }
        }
        Optional.ofNullable(request.getInstanceCountByGroup()).ifPresent(builder::withInstanceCountByGroup);
        Optional.ofNullable(request.getInstanceType()).ifPresent(builder::withInstanceType);
        Optional.ofNullable(request.getAws()).map(AwsFreeIpaParameters::getSpot).ifPresent(spotParameters -> builder.withAws(FreeIpaCreationAwsParametersDto.builder().withSpot(FreeIpaCreationAwsSpotParametersDto.builder().withPercentage(spotParameters.getPercentage()).withMaxPrice(spotParameters.getMaxPrice()).build()).build()));
        FreeIpaImageRequest image = request.getImage();
        if (image != null) {
            builder.withImageCatalog(image.getCatalog());
            builder.withImageId(image.getId());
        }
    }
    return builder.build();
}
Also used : FreeIpaImageRequest(com.sequenceiq.environment.api.v1.environment.model.request.FreeIpaImageRequest) FreeIpaCreationDto(com.sequenceiq.environment.environment.dto.FreeIpaCreationDto) BadRequestException(com.sequenceiq.cloudbreak.common.exception.BadRequestException)

Example 8 with AttachedFreeIpaRequest

use of com.sequenceiq.environment.api.v1.environment.model.request.AttachedFreeIpaRequest in project cloudbreak by hortonworks.

the class AwsCloudProvider method getAttachedFreeIpaRequest.

private AttachedFreeIpaRequest getAttachedFreeIpaRequest() {
    AttachedFreeIpaRequest attachedFreeIpaRequest = new AttachedFreeIpaRequest();
    AwsFreeIpaParameters awsFreeIpaParameters = new AwsFreeIpaParameters();
    AwsFreeIpaSpotParameters awsFreeIpaSpotParameters = new AwsFreeIpaSpotParameters();
    awsFreeIpaSpotParameters.setPercentage(getSpotPercentage());
    awsFreeIpaParameters.setSpot(awsFreeIpaSpotParameters);
    attachedFreeIpaRequest.setAws(awsFreeIpaParameters);
    return attachedFreeIpaRequest;
}
Also used : AttachedFreeIpaRequest(com.sequenceiq.environment.api.v1.environment.model.request.AttachedFreeIpaRequest) AwsFreeIpaParameters(com.sequenceiq.environment.api.v1.environment.model.request.aws.AwsFreeIpaParameters) AwsFreeIpaSpotParameters(com.sequenceiq.environment.api.v1.environment.model.request.aws.AwsFreeIpaSpotParameters)

Example 9 with AttachedFreeIpaRequest

use of com.sequenceiq.environment.api.v1.environment.model.request.AttachedFreeIpaRequest in project cloudbreak by hortonworks.

the class AbstractCloudProvider method environment.

@Override
public EnvironmentTestDto environment(EnvironmentTestDto environment) {
    AttachedFreeIpaRequest attachedFreeIpaRequest = new AttachedFreeIpaRequest();
    attachedFreeIpaRequest.setCreate(Boolean.FALSE);
    return environment.withLocation(location()).withFreeIpa(attachedFreeIpaRequest);
}
Also used : AttachedFreeIpaRequest(com.sequenceiq.environment.api.v1.environment.model.request.AttachedFreeIpaRequest)

Aggregations

AttachedFreeIpaRequest (com.sequenceiq.environment.api.v1.environment.model.request.AttachedFreeIpaRequest)8 FreeIpaCreationDto (com.sequenceiq.environment.environment.dto.FreeIpaCreationDto)5 Test (org.junit.jupiter.api.Test)4 AwsFreeIpaParameters (com.sequenceiq.environment.api.v1.environment.model.request.aws.AwsFreeIpaParameters)2 AwsFreeIpaSpotParameters (com.sequenceiq.environment.api.v1.environment.model.request.aws.AwsFreeIpaSpotParameters)2 BadRequestException (com.sequenceiq.cloudbreak.common.exception.BadRequestException)1 FreeIpaImageRequest (com.sequenceiq.environment.api.v1.environment.model.request.FreeIpaImageRequest)1