use of com.sequenceiq.freeipa.entity.SecurityGroup in project cloudbreak by hortonworks.
the class SecurityGroupRequestToSecurityGroupConverter method convert.
@Override
public SecurityGroup convert(@Nonnull SecurityGroupRequest source) {
SecurityGroup entity = new SecurityGroup();
entity.setName(missingResourceNameGenerator.generateName(APIResourceType.SECURITY_GROUP));
entity.setSecurityGroupIds(convertSecurityGroupIdsToList(source));
entity.setSecurityRules(convertSecurityRules(source.getSecurityRules(), entity));
return entity;
}
use of com.sequenceiq.freeipa.entity.SecurityGroup in project cloudbreak by hortonworks.
the class StackToCreateFreeIpaRequestConverterTest method testConvert.
@Test
void testConvert() {
// Initialize
Stack stack = new Stack();
stack.setEnvironmentCrn(ENVIRONMENT_CRN);
stack.setName(NAME + "_" + TERMINATION_TIME);
stack.setRegion(REGION);
stack.setAvailabilityZone(AVAILIBILTYY_ZONE);
stack.setGatewayport(GATEWAY_PORT);
stack.setUseCcm(true);
stack.setTunnel(Tunnel.CCMV2);
stack.setPlatformvariant(CLOUD_PLATFORM);
StackStatus stackStatus = new StackStatus();
stackStatus.setStack(stack);
stackStatus.setDetailedStackStatus(DetailedStackStatus.DELETE_COMPLETED);
stackStatus.setStatus(Status.DELETE_COMPLETED);
stack.setStackStatus(stackStatus);
InstanceGroup ig = new InstanceGroup();
ig.setGroupName(INSTANCE_GROUP_NAME);
Template template = new Template();
template.setInstanceType(INSTANCE_TYPE);
template.setAttributes(new Json(Map.of(AwsInstanceTemplate.EC2_SPOT_PERCENTAGE, EC2_SPOT_PERCENTAGE, AwsInstanceTemplate.EC2_SPOT_MAX_PRICE, EC2_SPOT_MAX_PRICE)));
template.setVolumeType(VOLUME_TYPE);
template.setVolumeCount(VOLUMNE_COUNT);
template.setVolumeSize(VOLUMNE_SIZE);
ig.setTemplate(template);
InstanceGroupNetwork igNetwork = new InstanceGroupNetwork();
igNetwork.setAttributes(new Json(Map.of(NetworkConstants.SUBNET_IDS, SUBNET_IDS)));
ig.setInstanceGroupNetwork(igNetwork);
ig.setNodeCount(NODE_COUNT);
SecurityGroup sg = new SecurityGroup();
sg.setSecurityGroupIds(SECURITY_GROUP_IDS);
SecurityRule sr = new SecurityRule();
sr.setModifiable(true);
sr.setPorts(PORT);
sr.setProtocol(PROTOCOL);
sr.setCidr(CIDR);
sg.setSecurityRules(Set.of(sr));
ig.setSecurityGroup(sg);
ig.setInstanceGroupType(InstanceGroupType.MASTER);
stack.setInstanceGroups(Set.of(ig));
StackAuthentication stackAuthentication = new StackAuthentication();
stackAuthentication.setLoginUserName(LOGIN_NAME);
stackAuthentication.setPublicKey(PUBLIC_KEY);
stackAuthentication.setPublicKeyId(PUBLIC_KEY_ID);
stack.setStackAuthentication(stackAuthentication);
Network network = new Network();
network.setNetworkCidrs(List.of(CIDR));
network.setOutboundInternetTraffic(OutboundInternetTraffic.ENABLED);
network.setAttributes(new Json(Map.of("vpcId", VPC_ID, "subnetId", SUBNET_ID)));
network.setCloudPlatform(CLOUD_PLATFORM);
stack.setNetwork(network);
ImageEntity image = new ImageEntity();
image.setImageCatalogUrl(IMAGE_CATALOG_URL);
image.setImageId(IMAGE_ID);
image.setOs(IMAGE_OS);
stack.setImage(image);
FreeIpa freeIpa = new FreeIpa();
freeIpa.setAdminGroupName(ADMIN_GROUP_NAME);
freeIpa.setAdminPassword(ADMIN_PASSWORD);
freeIpa.setDomain(DOMAIN);
freeIpa.setHostname(HOSTNAME);
Telemetry telemetry = new Telemetry();
Map<String, Object> fluentAttributes = Map.of("fluent", "attributes");
telemetry.setFluentAttributes(fluentAttributes);
Logging logging = new Logging();
logging.setStorageLocation(STORAGE_LOCATION);
S3CloudStorageV1Parameters s3Storage = new S3CloudStorageV1Parameters();
logging.setS3(s3Storage);
AdlsGen2CloudStorageV1Parameters adlsStorage = new AdlsGen2CloudStorageV1Parameters();
logging.setAdlsGen2(adlsStorage);
GcsCloudStorageV1Parameters gcsStorage = new GcsCloudStorageV1Parameters();
logging.setGcs(gcsStorage);
CloudwatchParams cloudwatchParamsStorage = new CloudwatchParams();
logging.setCloudwatch(cloudwatchParamsStorage);
telemetry.setLogging(logging);
Features features = new Features();
features.setClusterLogsCollection(new FeatureSetting());
features.setMonitoring(new FeatureSetting());
features.setCloudStorageLogging(new FeatureSetting());
features.setWorkloadAnalytics(new FeatureSetting());
telemetry.setFeatures(features);
WorkloadAnalytics workloadAnalytics = new WorkloadAnalytics();
workloadAnalytics.setAttributes(Map.of());
telemetry.setWorkloadAnalytics(workloadAnalytics);
stack.setTelemetry(telemetry);
Backup backup = new Backup();
backup.setStorageLocation(BACKUP_STORAGE_LOCATION);
S3CloudStorageV1Parameters s3BackupLocation = new S3CloudStorageV1Parameters();
backup.setS3(s3BackupLocation);
AdlsGen2CloudStorageV1Parameters adlsBackupLocation = new AdlsGen2CloudStorageV1Parameters();
backup.setAdlsGen2(adlsBackupLocation);
GcsCloudStorageV1Parameters gcsBackupLocation = new GcsCloudStorageV1Parameters();
backup.setGcs(gcsBackupLocation);
stack.setBackup(backup);
StackTags tags = new StackTags(USER_DEFINED_TAGS, APPLICATION_TAGS, DEFAULT_TAGS);
stack.setTags(new Json(tags));
when(freeIpaService.findByStack(stack)).thenReturn(freeIpa);
// Convert
CreateFreeIpaRequest request = underTest.convert(stack);
// Validate
assertNotNull(request);
assertEquals(ENVIRONMENT_CRN, request.getEnvironmentCrn());
assertEquals(NAME, request.getName());
assertEquals(GATEWAY_PORT, request.getGatewayPort());
assertTrue(request.getUseCcm());
assertEquals(Tunnel.CCMV2, request.getTunnel());
assertEquals(CLOUD_PLATFORM, request.getVariant());
PlacementRequest placementRequest = request.getPlacement();
assertNotNull(placementRequest);
assertEquals(REGION, placementRequest.getRegion());
assertEquals(AVAILIBILTYY_ZONE, placementRequest.getAvailabilityZone());
assertEquals(1, request.getInstanceGroups().size());
InstanceGroupRequest igRequest = request.getInstanceGroups().get(0);
assertEquals(INSTANCE_GROUP_NAME, igRequest.getName());
InstanceTemplateRequest templateRequest = igRequest.getInstanceTemplate();
assertNotNull(templateRequest);
assertEquals(INSTANCE_TYPE, templateRequest.getInstanceType());
assertNotNull(templateRequest.getAws());
assertNotNull(templateRequest.getAws().getSpot());
assertEquals(EC2_SPOT_PERCENTAGE, templateRequest.getAws().getSpot().getPercentage());
assertEquals(EC2_SPOT_MAX_PRICE, templateRequest.getAws().getSpot().getMaxPrice());
List<VolumeRequest> volumeRequests = templateRequest.getAttachedVolumes().stream().collect(Collectors.toList());
assertEquals(1, volumeRequests.size());
assertEquals(VOLUME_TYPE, volumeRequests.get(0).getType());
assertEquals(VOLUMNE_COUNT, volumeRequests.get(0).getCount());
assertEquals(VOLUMNE_SIZE, volumeRequests.get(0).getSize());
assertNotNull(igRequest.getNetwork());
assertNotNull(igRequest.getNetwork().getAws());
assertEquals(SUBNET_IDS, igRequest.getNetwork().getAws().getSubnetIds());
assertEquals(NODE_COUNT, ig.getNodeCount());
assertNotNull(igRequest.getSecurityGroup());
assertEquals(SECURITY_GROUP_IDS, igRequest.getSecurityGroup().getSecurityGroupIds());
List<SecurityRuleRequest> srRequst = igRequest.getSecurityGroup().getSecurityRules();
assertEquals(1, srRequst.size());
assertTrue(srRequst.get(0).isModifiable());
assertEquals(List.of(PORT), srRequst.get(0).getPorts());
assertEquals(PROTOCOL, srRequst.get(0).getProtocol());
assertEquals(CIDR, srRequst.get(0).getSubnet());
assertEquals(InstanceGroupType.MASTER, ig.getInstanceGroupType());
StackAuthenticationRequest stackAuthenticationRequest = request.getAuthentication();
assertNotNull(stackAuthenticationRequest);
assertEquals(LOGIN_NAME, stackAuthenticationRequest.getLoginUserName());
assertEquals(PUBLIC_KEY, stackAuthenticationRequest.getPublicKey());
assertEquals(PUBLIC_KEY_ID, stackAuthenticationRequest.getPublicKeyId());
NetworkRequest networkRequest = request.getNetwork();
assertNotNull(networkRequest);
assertEquals(CloudPlatform.AWS, networkRequest.getCloudPlatform());
assertEquals(List.of(CIDR), networkRequest.getNetworkCidrs());
assertEquals(OutboundInternetTraffic.ENABLED, networkRequest.getOutboundInternetTraffic());
assertNotNull(networkRequest.getAws());
assertNull(networkRequest.getAzure());
assertNull(networkRequest.getGcp());
assertNull(networkRequest.getMock());
assertNull(networkRequest.getYarn());
assertEquals(CloudPlatform.AWS, networkRequest.getAws().getCloudPlatform());
assertEquals(VPC_ID, networkRequest.getAws().getVpcId());
assertEquals(SUBNET_ID, networkRequest.getAws().getSubnetId());
ImageSettingsRequest imageSettingsRequest = request.getImage();
assertNotNull(imageSettingsRequest);
assertEquals(IMAGE_ID, imageSettingsRequest.getId());
assertEquals(IMAGE_CATALOG_URL, imageSettingsRequest.getCatalog());
assertEquals(IMAGE_OS, imageSettingsRequest.getOs());
FreeIpaServerRequest freeIpaServerRequest = request.getFreeIpa();
assertNotNull(freeIpaServerRequest);
assertEquals(ADMIN_GROUP_NAME, freeIpaServerRequest.getAdminGroupName());
assertEquals(ADMIN_PASSWORD, freeIpaServerRequest.getAdminPassword());
assertEquals(DOMAIN, freeIpaServerRequest.getDomain());
assertEquals(HOSTNAME, freeIpaServerRequest.getHostname());
TelemetryRequest telemetryRequest = request.getTelemetry();
assertNotNull(telemetryRequest);
assertEquals(fluentAttributes, telemetryRequest.getFluentAttributes());
assertNotNull(telemetryRequest.getLogging());
assertEquals(STORAGE_LOCATION_REQUEST, telemetryRequest.getLogging().getStorageLocation());
assertEquals(s3Storage, telemetryRequest.getLogging().getS3());
assertEquals(adlsStorage, telemetryRequest.getLogging().getAdlsGen2());
assertEquals(gcsStorage, telemetryRequest.getLogging().getGcs());
assertNotNull(telemetryRequest.getLogging().getCloudwatch());
assertNotNull(telemetryRequest.getFeatures());
assertNotNull(telemetryRequest.getFeatures().getClusterLogsCollection());
assertNotNull(telemetryRequest.getFeatures().getMonitoring());
assertNotNull(telemetryRequest.getFeatures().getCloudStorageLogging());
assertNotNull(telemetryRequest.getFeatures().getWorkloadAnalytics());
assertNotNull(telemetryRequest.getWorkloadAnalytics());
assertEquals(Map.of(), telemetryRequest.getWorkloadAnalytics().getAttributes());
BackupRequest backupRequest = request.getBackup();
assertNotNull(backupRequest);
assertEquals(BACKUP_STORAGE_LOCATION_REQUEST, backupRequest.getStorageLocation());
assertEquals(s3BackupLocation, backupRequest.getS3());
assertEquals(adlsBackupLocation, backupRequest.getAdlsGen2());
assertEquals(gcsBackupLocation, backupRequest.getGcs());
assertEquals(USER_DEFINED_TAGS, request.getTags());
}
use of com.sequenceiq.freeipa.entity.SecurityGroup in project cloudbreak by hortonworks.
the class InstanceGroupRequestToInstanceGroupConverterTest method testConvertWithNullTemplate.
@Test
public void testConvertWithNullTemplate() {
int nodeCount = 2;
InstanceGroupRequest request = new InstanceGroupRequest();
request.setName(NAME);
request.setType(InstanceGroupType.MASTER);
request.setNodeCount(nodeCount);
Template template = mock(Template.class);
SecurityGroupRequest securityGroupRequest = mock(SecurityGroupRequest.class);
SecurityGroup securityGroup = mock(SecurityGroup.class);
request.setSecurityGroup(securityGroupRequest);
Stack stack = new Stack();
stack.setAccountId(ACCOUNT_ID);
stack.setCloudPlatform(MOCK.name());
stack.setName(NAME);
FreeIpaServerRequest freeIpaServerRequest = new FreeIpaServerRequest();
freeIpaServerRequest.setHostname(HOSTNAME);
freeIpaServerRequest.setDomain(DOMAINNAME);
NetworkRequest networkRequest = new NetworkRequest();
DetailedEnvironmentResponse detailedEnvironmentResponse = new DetailedEnvironmentResponse();
// GIVEN
given(defaultInstanceGroupProvider.createDefaultTemplate(eq(MOCK), eq(ACCOUNT_ID), eq(null), eq(null), eq(null))).willReturn(template);
given(securityGroupConverter.convert(eq(securityGroupRequest))).willReturn(securityGroup);
// WHEN
InstanceGroup result = underTest.convert(request, networkRequest, ACCOUNT_ID, stack, freeIpaServerRequest, detailedEnvironmentResponse, createAndGetCloudArgsForIgCoverterMap(null, null, null));
// THEN
assertThat(result).isNotNull();
assertThat(result.getGroupName()).isEqualTo(NAME);
assertThat(result.getInstanceGroupType()).isEqualTo(InstanceGroupType.MASTER);
assertThat(result.getSecurityGroup()).isEqualTo(securityGroup);
assertThat(result.getNodeCount()).isEqualTo(nodeCount);
assertThat(result.getInstanceMetaData().size()).isEqualTo(nodeCount);
int i = 0;
for (InstanceMetaData instanceMetaData : result.getInstanceMetaData()) {
assertThat(instanceMetaData.getInstanceGroup()).isEqualTo(result);
assertThat(instanceMetaData.getDiscoveryFQDN()).startsWith(HOSTNAME + i);
i++;
}
}
use of com.sequenceiq.freeipa.entity.SecurityGroup in project cloudbreak by hortonworks.
the class SecurityGroupRequestToSecurityGroupConverterTest method testConvertWithNullSecurityRulesAndNullGroupIds.
@Test
public void testConvertWithNullSecurityRulesAndNullGroupIds() {
SecurityGroupRequest securityGroupRequest = new SecurityGroupRequest();
securityGroupRequest.setSecurityRules(null);
securityGroupRequest.setSecurityGroupIds(null);
SecurityGroup result = underTest.convert(securityGroupRequest);
assertNotNull(result.getSecurityGroupIds());
assertTrue(result.getSecurityGroupIds().isEmpty());
assertNotNull(result.getSecurityRules());
assertTrue(result.getSecurityRules().isEmpty());
}
use of com.sequenceiq.freeipa.entity.SecurityGroup in project cloudbreak by hortonworks.
the class SecurityGroupRequestToSecurityGroupConverterTest method testConvertWithEmptySecurityRulesAndProvidedGroupIds.
@Test
public void testConvertWithEmptySecurityRulesAndProvidedGroupIds() {
SecurityGroupRequest securityGroupRequest = new SecurityGroupRequest();
securityGroupRequest.setSecurityGroupIds(Set.of("sg-1", "sg-2"));
securityGroupRequest.setSecurityRules(List.of());
SecurityGroup result = underTest.convert(securityGroupRequest);
assertNotNull(result.getSecurityGroupIds());
assertEquals(2, result.getSecurityGroupIds().size());
assertNotNull(result.getSecurityRules());
assertTrue(result.getSecurityRules().isEmpty());
}
Aggregations