Search in sources :

Example 31 with PlatformResourceRequest

use of com.sequenceiq.environment.platformresource.PlatformResourceRequest in project cloudbreak by hortonworks.

the class AzureEnvironmentSecurityGroupValidator method validateSecurityGroup.

private void validateSecurityGroup(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 securityGroupFoundInRegion = false;
    Map<String, Set<CloudSecurityGroup>> cloudSecurityGroupsResponses = securityGroups.getCloudSecurityGroupsResponses();
    if (Objects.nonNull(cloudSecurityGroupsResponses)) {
        Set<CloudSecurityGroup> cloudSecurityGroups = cloudSecurityGroupsResponses.get(region.getName());
        for (String securityGroupId : getSecurityGroupIds(securityGroupIds)) {
            securityGroupFoundInRegion = false;
            if (Objects.nonNull(cloudSecurityGroups)) {
                for (CloudSecurityGroup cloudSecurityGroup : cloudSecurityGroups) {
                    String groupId = cloudSecurityGroup.getGroupId();
                    if (!Strings.isNullOrEmpty(groupId) && groupId.equalsIgnoreCase(securityGroupId)) {
                        securityGroupFoundInRegion = true;
                        break;
                    }
                }
            }
            if (!securityGroupFoundInRegion) {
                break;
            }
        }
    }
    if (!securityGroupFoundInRegion) {
        LOGGER.info("The security groups {} are not presented in the region {}", securityGroupIds, region.getName());
        resultBuilder.error(securityGroupNotInTheSameRegion(securityGroupIds, region.getName()));
    }
}
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

PlatformResourceRequest (com.sequenceiq.environment.platformresource.PlatformResourceRequest)31 CheckPermissionByResourceCrn (com.sequenceiq.authorization.annotation.CheckPermissionByResourceCrn)12 CustomPermissionCheck (com.sequenceiq.authorization.annotation.CustomPermissionCheck)12 CloudSecurityGroups (com.sequenceiq.cloudbreak.cloud.model.CloudSecurityGroups)9 CloudNetworks (com.sequenceiq.cloudbreak.cloud.model.CloudNetworks)7 CloudNoSqlTables (com.sequenceiq.cloudbreak.cloud.model.nosql.CloudNoSqlTables)7 PlatformNoSqlTablesResponse (com.sequenceiq.environment.api.v1.platformresource.model.PlatformNoSqlTablesResponse)7 CloudAccessConfigs (com.sequenceiq.cloudbreak.cloud.model.CloudAccessConfigs)6 CloudEncryptionKeys (com.sequenceiq.cloudbreak.cloud.model.CloudEncryptionKeys)6 CloudGateWays (com.sequenceiq.cloudbreak.cloud.model.CloudGateWays)6 CloudIpPools (com.sequenceiq.cloudbreak.cloud.model.CloudIpPools)6 CloudRegions (com.sequenceiq.cloudbreak.cloud.model.CloudRegions)6 CloudSshKeys (com.sequenceiq.cloudbreak.cloud.model.CloudSshKeys)6 CloudVmTypes (com.sequenceiq.cloudbreak.cloud.model.CloudVmTypes)6 PlatformAccessConfigsResponse (com.sequenceiq.environment.api.v1.platformresource.model.PlatformAccessConfigsResponse)6 PlatformEncryptionKeysResponse (com.sequenceiq.environment.api.v1.platformresource.model.PlatformEncryptionKeysResponse)6 PlatformGatewaysResponse (com.sequenceiq.environment.api.v1.platformresource.model.PlatformGatewaysResponse)6 PlatformIpPoolsResponse (com.sequenceiq.environment.api.v1.platformresource.model.PlatformIpPoolsResponse)6 PlatformNetworksResponse (com.sequenceiq.environment.api.v1.platformresource.model.PlatformNetworksResponse)6 PlatformSecurityGroupsResponse (com.sequenceiq.environment.api.v1.platformresource.model.PlatformSecurityGroupsResponse)6