in services/shared-services/tenant-registration-service/src/main/java/com/amazonaws/saas/eks/TenantRegistrationService.java [268:312]
private TenantDetails updateDistroConfig(TenantDetails tenant) {
AmazonCloudFront amazonCloudFront = AmazonCloudFrontClientBuilder.defaultClient();
UpdateDistributionRequest updateDistributionRequest = new UpdateDistributionRequest();
GetDistributionResult distroInfo = getDistributionDetails(amazonCloudFront, tenant);
LoggingManager.logInfo(tenant.getTenantId(), "CustomDomain:" + tenant.getCustomDomain());
LoggingManager.logInfo(tenant.getTenantId(), "AppCloudFrontId:" + tenant.getAppCloudFrontId());
LoggingManager.logInfo(tenant.getTenantId(), "Distro:" + distroInfo.toString());
updateDistributionRequest.setId(tenant.getAppCloudFrontId());
updateDistributionRequest.setIfMatch(distroInfo.getETag());
DistributionConfig distributionConfig = distroInfo.getDistribution().getDistributionConfig();
Aliases existingAliases = null;
Aliases newAliases = new Aliases();
if (distributionConfig != null) {
existingAliases = distributionConfig.getAliases();
List<String> items = new ArrayList<String>();
for (String item : existingAliases.getItems()) {
items.add(item);
}
items.add(tenant.getTenantId().toLowerCase() + "." + tenant.getCustomDomain());
newAliases.setItems(items);
newAliases.setQuantity(existingAliases.getQuantity() + 1);
}
distroInfo.getDistribution().getDistributionConfig().setAliases(newAliases);
updateDistributionRequest.setDistributionConfig(distributionConfig);
UpdateDistributionResult result = amazonCloudFront.updateDistribution(updateDistributionRequest);
LoggingManager.logInfo(tenant.getTenantId(),
"Updating Cloudfront Distribution successful for domain =>" + result.getDistribution().getDomainName());
// Retrieve DomainName from the result and set it to tenant details.
tenant.setAppCloudFrontDomainName(result.getDistribution().getDomainName());
return tenant;
}