use of com.sequenceiq.freeipa.entity.Template in project cloudbreak by hortonworks.
the class InstanceTemplateRequestToTemplateConverterTest method shouldSetDiskEncryptionSetIdPropertyWhenAzureAndDiskEncryptionSetIdPresent.
@Test
void shouldSetDiskEncryptionSetIdPropertyWhenAzureAndDiskEncryptionSetIdPresent() {
InstanceTemplateRequest source = new InstanceTemplateRequest();
source.setInstanceType(INSTANCE_TYPE);
Template result = underTest.convert(source, CloudPlatform.AZURE, ACCOUNT_ID, "dummyDiskEncryptionSet", "", "");
Json attributes = result.getAttributes();
assertThat(attributes).isNotNull();
assertThat(attributes.<Object>getValue(AzureInstanceTemplate.DISK_ENCRYPTION_SET_ID)).isEqualTo("dummyDiskEncryptionSet");
assertThat(attributes.<Object>getValue(AzureInstanceTemplate.MANAGED_DISK_ENCRYPTION_WITH_CUSTOM_KEY_ENABLED)).isEqualTo(Boolean.TRUE);
}
use of com.sequenceiq.freeipa.entity.Template 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.Template in project cloudbreak by hortonworks.
the class InstanceGroupRequestToInstanceGroupConverterTest method convertTestDefaultTemplateConversionWithDiskEncryptionSetId.
@Test
void convertTestDefaultTemplateConversionWithDiskEncryptionSetId() {
InstanceGroupRequest request = new InstanceGroupRequest();
Stack stack = new Stack();
stack.setAccountId(ACCOUNT_ID);
stack.setCloudPlatform(AZURE.name());
stack.setName(NAME);
FreeIpaServerRequest freeIpaServerRequest = new FreeIpaServerRequest();
freeIpaServerRequest.setHostname(HOSTNAME);
freeIpaServerRequest.setDomain(DOMAINNAME);
NetworkRequest networkRequest = new NetworkRequest();
DetailedEnvironmentResponse detailedEnvironmentResponse = new DetailedEnvironmentResponse();
Template template = new Template();
Map<String, Object> json = new HashMap<>();
json.put(AzureInstanceTemplate.DISK_ENCRYPTION_SET_ID, "dummyDiskEncryptionSetId");
json.put(AzureInstanceTemplate.MANAGED_DISK_ENCRYPTION_WITH_CUSTOM_KEY_ENABLED, Boolean.TRUE);
template.setAttributes(new Json(json));
when(defaultInstanceGroupProvider.createDefaultTemplate(AZURE, ACCOUNT_ID, "dummyDiskEncryptionSetId", null, null)).thenReturn(template);
InstanceGroup result = underTest.convert(request, networkRequest, ACCOUNT_ID, stack, freeIpaServerRequest, detailedEnvironmentResponse, createAndGetCloudArgsForIgCoverterMap("dummyDiskEncryptionSetId", null, null));
assertThat(result).isNotNull();
assertThat(result.getTemplate()).isSameAs(template);
}
use of com.sequenceiq.freeipa.entity.Template in project cloudbreak by hortonworks.
the class InstanceGroupRequestToInstanceGroupConverterTest method convertTestTemplateConversionWithGcpEncryptionKey.
@Test
void convertTestTemplateConversionWithGcpEncryptionKey() {
InstanceGroupRequest request = new InstanceGroupRequest();
InstanceTemplateRequest instanceTemplateRequest = mock(InstanceTemplateRequest.class);
request.setInstanceTemplateRequest(instanceTemplateRequest);
Template template = mock(Template.class);
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();
when(templateConverter.convert(instanceTemplateRequest, MOCK, ACCOUNT_ID, null, "dummyEncryptionKey", null)).thenReturn(template);
InstanceGroup result = underTest.convert(request, networkRequest, ACCOUNT_ID, stack, freeIpaServerRequest, detailedEnvironmentResponse, createAndGetCloudArgsForIgCoverterMap(null, "dummyEncryptionKey", null));
assertThat(result).isNotNull();
assertThat(result.getTemplate()).isSameAs(template);
}
use of com.sequenceiq.freeipa.entity.Template in project cloudbreak by hortonworks.
the class InstanceGroupRequestToInstanceGroupConverterTest method convertTestDefaultTemplateConversionWithAwsEncryptionKey.
@Test
void convertTestDefaultTemplateConversionWithAwsEncryptionKey() {
InstanceGroupRequest request = new InstanceGroupRequest();
Stack stack = new Stack();
stack.setAccountId(ACCOUNT_ID);
stack.setCloudPlatform(AWS.name());
stack.setName(NAME);
FreeIpaServerRequest freeIpaServerRequest = new FreeIpaServerRequest();
freeIpaServerRequest.setHostname(HOSTNAME);
freeIpaServerRequest.setDomain(DOMAINNAME);
NetworkRequest networkRequest = new NetworkRequest();
DetailedEnvironmentResponse detailedEnvironmentResponse = new DetailedEnvironmentResponse();
Template template = new Template();
Map<String, Object> json = new HashMap<>();
json.put(AwsInstanceTemplate.VOLUME_ENCRYPTION_KEY_ID, "dummyAwsEncryptionKeyArn");
json.put(AwsInstanceTemplate.VOLUME_ENCRYPTION_KEY_TYPE, EncryptionType.CUSTOM);
template.setAttributes(new Json(json));
when(defaultInstanceGroupProvider.createDefaultTemplate(AWS, ACCOUNT_ID, null, null, "dummyAwsEncryptionKeyArn")).thenReturn(template);
InstanceGroup result = underTest.convert(request, networkRequest, ACCOUNT_ID, stack, freeIpaServerRequest, detailedEnvironmentResponse, createAndGetCloudArgsForIgCoverterMap(null, null, "dummyAwsEncryptionKeyArn"));
assertThat(result).isNotNull();
assertThat(result.getTemplate()).isSameAs(template);
}
Aggregations