use of com.sequenceiq.cloudbreak.domain.cloudstorage.CloudIdentity in project cloudbreak by hortonworks.
the class CloudStorageConverter method requestToFileSystem.
public FileSystem requestToFileSystem(CloudStorageBase cloudStorageRequest) {
FileSystem fileSystem = new FileSystem();
fileSystem.setName(nameGenerator.generateName(FILESYSTEM));
FileSystemType fileSystemType = fileSystemResolver.determineFileSystemType(cloudStorageRequest);
fileSystem.setType(fileSystemType);
CloudStorage cloudStorage = new CloudStorage();
String s3GuardDynamoTableName = getS3GuardDynamoTableName(cloudStorageRequest);
cloudStorage.setS3GuardDynamoTableName(s3GuardDynamoTableName);
List<StorageLocation> storageLocations = cloudStorageRequest.getLocations().stream().map(this::storageLocationRequestToStorageLocation).collect(Collectors.toList());
cloudStorage.setLocations(storageLocations);
if (cloudStorageRequest.getIdentities() != null) {
List<CloudIdentity> cloudIdentities = cloudStorageRequest.getIdentities().stream().map(this::identityRequestToCloudIdentity).collect(Collectors.toList());
cloudStorage.setCloudIdentities(cloudIdentities);
}
cloudStorage.setAccountMapping(accountMappingRequestToAccountMapping(cloudStorageRequest.getAccountMapping()));
fileSystem.setCloudStorage(cloudStorage);
return fileSystem;
}
use of com.sequenceiq.cloudbreak.domain.cloudstorage.CloudIdentity in project cloudbreak by hortonworks.
the class CloudFileSystemViewProviderTest method getCloudIdentities.
private List<CloudIdentity> getCloudIdentities() {
List<CloudIdentity> cloudIdentities = new ArrayList<>();
CloudIdentity idBroker = new CloudIdentity();
idBroker.setIdentityType(CloudIdentityType.ID_BROKER);
S3Identity idBrokerS3Identity = new S3Identity();
idBrokerS3Identity.setInstanceProfile(ID_BROKER_INSTANCE_PROFILE);
idBroker.setS3Identity(idBrokerS3Identity);
cloudIdentities.add(idBroker);
CloudIdentity log = new CloudIdentity();
log.setIdentityType(CloudIdentityType.LOG);
S3Identity logS3Identity = new S3Identity();
logS3Identity.setInstanceProfile(LOG_INSTANCE_PROFILE);
log.setS3Identity(logS3Identity);
cloudIdentities.add(log);
return cloudIdentities;
}
use of com.sequenceiq.cloudbreak.domain.cloudstorage.CloudIdentity in project cloudbreak by hortonworks.
the class ClouderaManagerStorageErrorMapperTest method setUp.
@BeforeEach
void setUp() {
underTest = new ClouderaManagerStorageErrorMapper();
exception = new CloudStorageConfigurationFailedException(EXCEPTION_MESSAGE);
cluster = new Cluster();
fileSystem = new FileSystem();
cloudStorage = new CloudStorage();
cloudIdentity = new CloudIdentity();
cloudIdentity.setIdentityType(CloudIdentityType.ID_BROKER);
cloudStorage.setCloudIdentities(List.of(cloudIdentity));
accountMapping = new AccountMapping();
accountMapping.setUserMappings(Map.ofEntries(entry("hive", "myDataAccessRole"), entry("solr", "myRangerAuditRole")));
cloudStorage.setAccountMapping(accountMapping);
StorageLocation locationRangerAudit = new StorageLocation();
locationRangerAudit.setType(CloudStorageCdpService.RANGER_AUDIT);
locationRangerAudit.setValue("myRangerAuditLocation");
cloudStorage.setLocations(List.of(locationRangerAudit));
fileSystem.setCloudStorage(cloudStorage);
cluster.setFileSystem(fileSystem);
}
use of com.sequenceiq.cloudbreak.domain.cloudstorage.CloudIdentity in project cloudbreak by hortonworks.
the class CloudStorageConverter method identityRequestToCloudIdentity.
private CloudIdentity identityRequestToCloudIdentity(StorageIdentityBase storageIdentityRequest) {
CloudIdentity cloudIdentity = new CloudIdentity();
cloudIdentity.setIdentityType(storageIdentityRequest.getType());
if (storageIdentityRequest.getS3() != null) {
S3Identity s3Identity = identityRequestToS3(storageIdentityRequest);
cloudIdentity.setS3Identity(s3Identity);
}
if (storageIdentityRequest.getEfs() != null) {
EfsIdentity efsIdentity = identityRequestToEfs(storageIdentityRequest);
cloudIdentity.setEfsIdentity(efsIdentity);
}
if (storageIdentityRequest.getWasb() != null) {
WasbIdentity wasbIdentity = identityRequestToWasb(storageIdentityRequest);
cloudIdentity.setWasbIdentity(wasbIdentity);
}
if (storageIdentityRequest.getAdlsGen2() != null) {
AdlsGen2Identity identity = identityRequestToAdlsGen2(storageIdentityRequest);
cloudIdentity.setAdlsGen2Identity(identity);
}
if (storageIdentityRequest.getGcs() != null) {
GcsIdentity identity = identityRequestToGcs(storageIdentityRequest);
cloudIdentity.setGcsIdentity(identity);
}
if (storageIdentityRequest.getAdls() != null) {
throw new BadRequestException("ADLS cloud storage is not (yet) supported.");
}
return cloudIdentity;
}
use of com.sequenceiq.cloudbreak.domain.cloudstorage.CloudIdentity in project cloudbreak by hortonworks.
the class CloudStorageConverter method requestToAdditionalFileSystem.
public FileSystem requestToAdditionalFileSystem(CloudStorageBase cloudStorageRequest) {
FileSystem fileSystem = new FileSystem();
AwsEfsParameters efsParameters = cloudStorageRequest.getAws() == null ? null : cloudStorageRequest.getAws().getEfsParameters();
if (efsParameters == null || StringUtils.isEmpty(efsParameters.getName())) {
return null;
}
fileSystem.setName(efsParameters.getName());
FileSystemType fileSystemType = FileSystemType.EFS;
fileSystem.setType(fileSystemType);
Map<String, Object> configurations = new HashMap<>();
configurations.put(CloudEfsConfiguration.KEY_BACKUP_POLICY_STATUS, efsParameters.getBackupPolicyStatus());
configurations.put(CloudEfsConfiguration.KEY_ENCRYPTED, efsParameters.getEncrypted());
configurations.put(CloudEfsConfiguration.KEY_FILESYSTEM_POLICY, efsParameters.getFileSystemPolicy());
configurations.put(CloudEfsConfiguration.KEY_FILESYSTEM_TAGS, efsParameters.getFileSystemTags());
configurations.put(CloudEfsConfiguration.KEY_KMSKEYID, efsParameters.getKmsKeyId());
configurations.put(CloudEfsConfiguration.KEY_LIFECYCLE_POLICIES, efsParameters.getLifeCyclePolicies());
configurations.put(CloudEfsConfiguration.KEY_PERFORMANCE_MODE, efsParameters.getPerformanceMode());
configurations.put(CloudEfsConfiguration.KEY_PROVISIONED_THROUGHPUT_INMIBPS, efsParameters.getProvisionedThroughputInMibps());
configurations.put(CloudEfsConfiguration.KEY_THROUGHPUT_MODE, efsParameters.getThroughputMode());
String configString;
try {
configString = JsonUtil.writeValueAsString(configurations);
} catch (JsonProcessingException ignored) {
configString = configurations.toString();
}
fileSystem.setConfigurations(new Json(configString));
CloudStorage cloudStorage = new CloudStorage();
if (cloudStorageRequest.getIdentities() != null) {
Optional<CloudIdentity> cloudIdentity = cloudStorageRequest.getIdentities().stream().map(this::identityRequestToCloudIdentity).filter(currCloudIdentity -> currCloudIdentity.getEfsIdentity() != null).findFirst();
if (cloudIdentity != null && cloudIdentity.get() != null) {
cloudStorage.setCloudIdentities(List.of(cloudIdentity.get()));
}
}
cloudStorage.setAccountMapping(accountMappingRequestToAccountMapping(cloudStorageRequest.getAccountMapping()));
fileSystem.setCloudStorage(cloudStorage);
return fileSystem;
}
Aggregations