Search in sources :

Example 21 with Region

use of com.sequenceiq.environment.environment.domain.Region in project cloudbreak by hortonworks.

the class EnvironmentService method setRegionsFromCloudRegions.

private void setRegionsFromCloudRegions(Set<String> requestedRegions, CloudRegions cloudRegions, Set<Region> regionSet) {
    for (String requestedRegion : requestedRegions) {
        Set<String> regions = cloudRegions.getCloudRegions().keySet().stream().map(region -> region.getRegionName()).collect(Collectors.toSet());
        if (regions.contains(requestedRegion)) {
            Region region = new Region();
            region.setName(requestedRegion);
            region.setDisplayName(requestedRegion);
            regionSet.add(region);
        }
    }
}
Also used : EnvironmentDtoConverter(com.sequenceiq.environment.environment.dto.EnvironmentDtoConverter) Environment(com.sequenceiq.environment.environment.domain.Environment) RoleCrnGenerator(com.sequenceiq.cloudbreak.auth.altus.service.RoleCrnGenerator) LoggerFactory(org.slf4j.LoggerFactory) StringUtils(org.apache.commons.lang3.StringUtils) ThreadBasedUserCrnProvider(com.sequenceiq.cloudbreak.auth.ThreadBasedUserCrnProvider) TransactionService(com.sequenceiq.cloudbreak.common.service.TransactionService) AccountAwareResourceRepository(com.sequenceiq.cloudbreak.common.dal.repository.AccountAwareResourceRepository) Map(java.util.Map) RegionWrapper(com.sequenceiq.environment.environment.domain.RegionWrapper) BadRequestException(javax.ws.rs.BadRequestException) Region(com.sequenceiq.environment.environment.domain.Region) StringUtils.isEmpty(org.apache.commons.lang3.StringUtils.isEmpty) NotFoundException(com.sequenceiq.cloudbreak.common.exception.NotFoundException) EnvironmentStatus(com.sequenceiq.environment.environment.EnvironmentStatus) EnumSet(java.util.EnumSet) Tunnel(com.sequenceiq.common.api.type.Tunnel) ResourceWithId(com.sequenceiq.authorization.service.list.ResourceWithId) PayloadContext(com.sequenceiq.cloudbreak.common.event.PayloadContext) PlatformParameterService(com.sequenceiq.environment.platformresource.PlatformParameterService) Collection(java.util.Collection) Set(java.util.Set) InternalServerErrorException(javax.ws.rs.InternalServerErrorException) SecurityAccessDto(com.sequenceiq.environment.environment.dto.SecurityAccessDto) JobResource(com.sequenceiq.cloudbreak.quartz.model.JobResource) Crn(com.sequenceiq.cloudbreak.auth.crn.Crn) Collectors(java.util.stream.Collectors) RegionAwareInternalCrnGeneratorFactory(com.sequenceiq.cloudbreak.auth.crn.RegionAwareInternalCrnGeneratorFactory) EnvironmentRepository(com.sequenceiq.environment.environment.repository.EnvironmentRepository) EnvironmentPropertyProvider(com.sequenceiq.authorization.service.EnvironmentPropertyProvider) List(java.util.List) MDCUtils(com.sequenceiq.cloudbreak.logger.MDCUtils) Entry(java.util.Map.Entry) Optional(java.util.Optional) Coordinate(com.sequenceiq.cloudbreak.cloud.model.Coordinate) AbstractAccountAwareResourceService(com.sequenceiq.cloudbreak.common.service.account.AbstractAccountAwareResourceService) OwnerAssignmentService(com.sequenceiq.authorization.service.OwnerAssignmentService) MDCBuilder(com.sequenceiq.cloudbreak.logger.MDCBuilder) HashMap(java.util.HashMap) CompositeAuthResourcePropertyProvider(com.sequenceiq.authorization.service.CompositeAuthResourcePropertyProvider) EnvironmentDto(com.sequenceiq.environment.environment.dto.EnvironmentDto) CloudRegions(com.sequenceiq.cloudbreak.cloud.model.CloudRegions) HashSet(java.util.HashSet) Value(org.springframework.beans.factory.annotation.Value) Code(io.grpc.Status.Code) Lists(com.google.common.collect.Lists) Service(org.springframework.stereotype.Service) PlatformResourceRequest(com.sequenceiq.environment.platformresource.PlatformResourceRequest) ExperimentalFeatures(com.sequenceiq.environment.environment.domain.ExperimentalFeatures) NotFoundException.notFound(com.sequenceiq.cloudbreak.common.exception.NotFoundException.notFound) Logger(org.slf4j.Logger) NotFoundException.notFoundException(com.sequenceiq.cloudbreak.common.exception.NotFoundException.notFoundException) PayloadContextProvider(com.sequenceiq.flow.core.PayloadContextProvider) GrpcUmsClient(com.sequenceiq.cloudbreak.auth.altus.GrpcUmsClient) StatusRuntimeException(io.grpc.StatusRuntimeException) EnvironmentValidatorService(com.sequenceiq.environment.environment.validation.EnvironmentValidatorService) ResourceIdProvider(com.sequenceiq.flow.core.ResourceIdProvider) Region(com.sequenceiq.environment.environment.domain.Region)

Example 22 with Region

use of com.sequenceiq.environment.environment.domain.Region in project cloudbreak by hortonworks.

the class AzureEnvironmentNetworkConverterTest method createEnvironment.

private Environment createEnvironment() {
    Environment environment = new Environment();
    environment.setName(ENV_NAME);
    environment.setId(1L);
    environment.setAccountId("2");
    environment.setDescription("description");
    environment.setCloudPlatform("AZURE");
    environment.setCredential(new Credential());
    environment.setLatitude(2.4);
    environment.setLongitude(3.5);
    environment.setLocation(LOCATION);
    environment.setLocationDisplayName("London");
    environment.setNetwork(new AzureNetwork());
    environment.setRegions(Collections.singleton(new Region()));
    return environment;
}
Also used : Credential(com.sequenceiq.environment.credential.domain.Credential) Environment(com.sequenceiq.environment.environment.domain.Environment) Region(com.sequenceiq.environment.environment.domain.Region) AzureNetwork(com.sequenceiq.environment.network.dao.domain.AzureNetwork)

Example 23 with Region

use of com.sequenceiq.environment.environment.domain.Region in project cloudbreak by hortonworks.

the class EnvironmentDtoConverter method setLocation.

private void setLocation(EnvironmentCreationDto creationDto, Environment environment, LocationDto location) {
    Set<Region> regions = creationDto.getRegions().stream().map(r -> {
        Region region = new Region();
        region.setName(r);
        return region;
    }).collect(Collectors.toSet());
    environment.setRegions(regions);
    environment.setLocation(location.getName());
    environment.setLocationDisplayName(location.getDisplayName());
    environment.setLongitude(location.getLongitude());
    environment.setLatitude(location.getLatitude());
}
Also used : Environment(com.sequenceiq.environment.environment.domain.Environment) EnvironmentNetworkConverter(com.sequenceiq.environment.network.v1.converter.EnvironmentNetworkConverter) EntitlementService(com.sequenceiq.cloudbreak.auth.altus.EntitlementService) CDPTagGenerationRequest(com.sequenceiq.cloudbreak.tag.request.CDPTagGenerationRequest) NONE(com.sequenceiq.environment.environment.EnvironmentDeletionType.NONE) LoggerFactory(org.slf4j.LoggerFactory) HashMap(java.util.HashMap) CloudPlatform(com.sequenceiq.cloudbreak.common.mappable.CloudPlatform) DefaultInternalAccountTagService(com.sequenceiq.environment.tags.service.DefaultInternalAccountTagService) AccountTagValidationFailed(com.sequenceiq.cloudbreak.tag.AccountTagValidationFailed) Map(java.util.Map) Region(com.sequenceiq.environment.environment.domain.Region) AccountTagResponse(com.sequenceiq.environment.api.v1.tags.model.response.AccountTagResponse) EnvironmentStatus(com.sequenceiq.environment.environment.EnvironmentStatus) BaseParameters(com.sequenceiq.environment.parameters.dao.domain.BaseParameters) BadRequestException(com.sequenceiq.cloudbreak.common.exception.BadRequestException) NullUtil.doIfNotNull(com.sequenceiq.cloudbreak.util.NullUtil.doIfNotNull) Logger(org.slf4j.Logger) Set(java.util.Set) AccountTagToAccountTagResponsesConverter(com.sequenceiq.environment.tags.v1.converter.AccountTagToAccountTagResponsesConverter) CrnUserDetailsService(com.sequenceiq.cloudbreak.auth.security.CrnUserDetailsService) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) Json(com.sequenceiq.cloudbreak.common.json.Json) List(java.util.List) Component(org.springframework.stereotype.Component) AccountTagService(com.sequenceiq.environment.tags.service.AccountTagService) EnvironmentView(com.sequenceiq.environment.environment.domain.EnvironmentView) EnvironmentParametersConverter(com.sequenceiq.environment.parameters.v1.converter.EnvironmentParametersConverter) CostTagging(com.sequenceiq.cloudbreak.tag.CostTagging) AwsParameters(com.sequenceiq.environment.parameters.dao.domain.AwsParameters) EnvironmentTags(com.sequenceiq.environment.environment.domain.EnvironmentTags) Optional(java.util.Optional) AccountTag(com.sequenceiq.environment.tags.domain.AccountTag) Region(com.sequenceiq.environment.environment.domain.Region)

Example 24 with Region

use of com.sequenceiq.environment.environment.domain.Region in project cloudbreak by hortonworks.

the class RegionConverter method convertRegions.

public CompactRegionResponse convertRegions(Set<Region> regions) {
    CompactRegionResponse compactRegionResponse = new CompactRegionResponse();
    List<String> values = new ArrayList<>();
    Map<String, String> displayNames = new HashMap<>();
    for (Region region : regions) {
        values.add(region.getName());
        displayNames.put(region.getName(), region.getDisplayName());
    }
    compactRegionResponse.setNames(values);
    compactRegionResponse.setDisplayNames(displayNames);
    return compactRegionResponse;
}
Also used : CompactRegionResponse(com.sequenceiq.environment.api.v1.environment.model.response.CompactRegionResponse) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Region(com.sequenceiq.environment.environment.domain.Region)

Example 25 with Region

use of com.sequenceiq.environment.environment.domain.Region in project cloudbreak by hortonworks.

the class AwsEnvironmentSecurityGroupValidator method checkSecurityGroupVpc.

private void checkSecurityGroupVpc(EnvironmentDto environmentDto, ValidationResult.ValidationResultBuilder resultBuilder, String securityGroupIds) {
    Region region = environmentDto.getRegions().iterator().next();
    PlatformResourceRequest request = platformParameterService.getPlatformResourceRequest(environmentDto.getAccountId(), environmentDto.getCredential().getName(), null, region.getName(), getCloudPlatform().name(), null);
    CloudSecurityGroups securityGroups = platformParameterService.getSecurityGroups(request);
    boolean securityGroupInVpc = false;
    String awsVpcId = environmentDto.getNetwork().getAws().getVpcId();
    Map<String, Set<CloudSecurityGroup>> cloudSecurityGroupsResponses = securityGroups.getCloudSecurityGroupsResponses();
    if (Objects.nonNull(cloudSecurityGroupsResponses)) {
        Set<CloudSecurityGroup> cloudSecurityGroups = cloudSecurityGroupsResponses.get(region.getName());
        if (Objects.nonNull(cloudSecurityGroups)) {
            for (String securityGroupId : getSecurityGroupIds(securityGroupIds)) {
                securityGroupInVpc = isSecurityGroupInVpc(awsVpcId, cloudSecurityGroups, securityGroupId);
                if (!securityGroupInVpc) {
                    break;
                }
            }
        }
    }
    if (!securityGroupInVpc) {
        LOGGER.error("Security group {} does not belongs to the {} network.", securityGroupIds, environmentDto.getNetwork());
        resultBuilder.error(securityGroupNotInTheSameVpc(securityGroupIds));
        return;
    }
}
Also used : Set(java.util.Set) CloudSecurityGroups(com.sequenceiq.cloudbreak.cloud.model.CloudSecurityGroups) Region(com.sequenceiq.environment.environment.domain.Region) PlatformResourceRequest(com.sequenceiq.environment.platformresource.PlatformResourceRequest) CloudSecurityGroup(com.sequenceiq.cloudbreak.cloud.model.CloudSecurityGroup)

Aggregations

Region (com.sequenceiq.environment.environment.domain.Region)27 PlatformResourceRequest (com.sequenceiq.environment.platformresource.PlatformResourceRequest)15 EnvironmentDto (com.sequenceiq.environment.environment.dto.EnvironmentDto)12 Test (org.junit.jupiter.api.Test)10 ValidationResultBuilder (com.sequenceiq.cloudbreak.validation.ValidationResult.ValidationResultBuilder)9 EnvironmentValidationDto (com.sequenceiq.environment.environment.dto.EnvironmentValidationDto)9 Environment (com.sequenceiq.environment.environment.domain.Environment)7 Set (java.util.Set)7 HashMap (java.util.HashMap)6 CloudSecurityGroups (com.sequenceiq.cloudbreak.cloud.model.CloudSecurityGroups)4 Credential (com.sequenceiq.environment.credential.domain.Credential)4 Map (java.util.Map)4 Optional (java.util.Optional)4 Logger (org.slf4j.Logger)4 LoggerFactory (org.slf4j.LoggerFactory)4 CloudSecurityGroup (com.sequenceiq.cloudbreak.cloud.model.CloudSecurityGroup)3 UsageProto (com.cloudera.thunderhead.service.common.usage.UsageProto)2 Lists (com.google.common.collect.Lists)2 CompositeAuthResourcePropertyProvider (com.sequenceiq.authorization.service.CompositeAuthResourcePropertyProvider)2 EnvironmentPropertyProvider (com.sequenceiq.authorization.service.EnvironmentPropertyProvider)2