use of com.sequenceiq.environment.environment.domain.Region 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()));
}
}
use of com.sequenceiq.environment.environment.domain.Region in project cloudbreak by hortonworks.
the class EnvironmentDetailsToCDPEnvironmentDetailsConverter method convert.
public UsageProto.CDPEnvironmentDetails convert(EnvironmentDetails srcEnvironmentDetails) {
UsageProto.CDPEnvironmentDetails.Builder cdpEnvironmentDetails = UsageProto.CDPEnvironmentDetails.newBuilder();
cdpEnvironmentDetails.setNumberOfAvailabilityZones(DEFAULT_INTEGER_VALUE);
if (srcEnvironmentDetails != null) {
if (srcEnvironmentDetails.getRegions() != null) {
cdpEnvironmentDetails.setRegion(srcEnvironmentDetails.getRegions().stream().map(Region::getName).filter(Objects::nonNull).map(region -> region.toLowerCase().replace(" ", "")).sorted().distinct().collect(Collectors.joining(",")));
}
if (srcEnvironmentDetails.getCloudPlatform() != null) {
cdpEnvironmentDetails.setEnvironmentType(UsageProto.CDPEnvironmentsEnvironmentType.Value.valueOf(srcEnvironmentDetails.getCloudPlatform()));
}
NetworkDto network = srcEnvironmentDetails.getNetwork();
if (network != null && network.getSubnetMetas() != null) {
if (network.getSubnetMetas().isEmpty()) {
cdpEnvironmentDetails.setNumberOfAvailabilityZones(0);
} else {
List<String> availabilityZones = network.getSubnetMetas().values().stream().map(CloudSubnet::getAvailabilityZone).filter(Objects::nonNull).sorted().distinct().collect(Collectors.toUnmodifiableList());
if (!availabilityZones.isEmpty()) {
cdpEnvironmentDetails.setNumberOfAvailabilityZones(availabilityZones.size());
cdpEnvironmentDetails.setAvailabilityZones(String.join(",", availabilityZones));
}
}
}
cdpEnvironmentDetails.setNetworkDetails(networkDetailsConverter.convert(srcEnvironmentDetails));
cdpEnvironmentDetails.setAwsDetails(convertAwsDetails(srcEnvironmentDetails.getParameters()));
cdpEnvironmentDetails.setAzureDetails(convertAzureDetails(srcEnvironmentDetails.getParameters()));
cdpEnvironmentDetails.setGcpDetails(convertGcpDetails(srcEnvironmentDetails.getParameters()));
Map<String, String> userTags = srcEnvironmentDetails.getUserDefinedTags();
if (userTags != null && !userTags.isEmpty()) {
cdpEnvironmentDetails.setUserTags(JsonUtil.writeValueAsStringSilentSafe(userTags));
}
}
UsageProto.CDPEnvironmentDetails ret = cdpEnvironmentDetails.build();
LOGGER.debug("Converted CDPEnvironmentDetails event: {}", ret);
return ret;
}
Aggregations