in api/service/src/main/java/org/apache/airavata/mft/api/handler/MFTApiHandler.java [238:383]
private GetResourceMetadataRequest deriveDirectRequest(GetResourceMetadataFromIDsRequest idRequest) {
StorageServiceClient storageClient = StorageServiceClientBuilder.buildClient(resourceServiceHost, resourceServicePort);
SecretServiceClient secretClient = SecretServiceClientBuilder.buildClient(secretServiceHost, secretServicePort);
StorageTypeResolveResponse storageTypeResp = storageClient.common().resolveStorageType(
StorageTypeResolveRequest.newBuilder().setStorageId(idRequest.getStorageId()).build());
GetResourceMetadataRequest.Builder directReqBuilder = GetResourceMetadataRequest.newBuilder();
directReqBuilder.setResourcePath(idRequest.getResourcePath());
directReqBuilder.setRecursiveSearch(idRequest.getRecursiveSearch());
switch (storageTypeResp.getStorageType()) {
case S3:
S3Storage s3Storage = storageClient.s3()
.getS3Storage(S3StorageGetRequest.newBuilder()
.setStorageId(idRequest.getStorageId()).build());
S3Secret s3Secret = secretClient.s3()
.getS3Secret(S3SecretGetRequest.newBuilder()
.setSecretId(idRequest.getSecretId()).build());
directReqBuilder
.setStorage(StorageWrapper.newBuilder().setS3(s3Storage).build())
.setSecret(SecretWrapper.newBuilder().setS3(s3Secret).build());
break;
case FTP:
FTPStorage ftpStorage = storageClient.ftp()
.getFTPStorage(FTPStorageGetRequest.newBuilder()
.setStorageId(idRequest.getStorageId()).build());
FTPSecret ftpSecret = secretClient.ftp()
.getFTPSecret(FTPSecretGetRequest.newBuilder()
.setSecretId(idRequest.getSecretId()).build());
directReqBuilder
.setStorage(StorageWrapper.newBuilder().setFtp(ftpStorage).build())
.setSecret(SecretWrapper.newBuilder().setFtp(ftpSecret).build());
break;
case LOCAL:
LocalStorage localStorage = storageClient.local()
.getLocalStorage(LocalStorageGetRequest.newBuilder()
.setStorageId(idRequest.getStorageId()).build());
directReqBuilder
.setStorage(StorageWrapper.newBuilder().setLocal(localStorage).build());
break;
case BOX:
BoxStorage boxStorage = storageClient.box()
.getBoxStorage(BoxStorageGetRequest.newBuilder()
.setStorageId(idRequest.getStorageId()).build());
BoxSecret boxSecret = secretClient.box()
.getBoxSecret(BoxSecretGetRequest.newBuilder()
.setSecretId(idRequest.getSecretId()).build());
directReqBuilder
.setStorage(StorageWrapper.newBuilder().setBox(boxStorage).build())
.setSecret(SecretWrapper.newBuilder().setBox(boxSecret).build());
break;
case DROPBOX:
DropboxStorage dropBoxStorage = storageClient.dropbox()
.getDropboxStorage(DropboxStorageGetRequest.newBuilder()
.setStorageId(idRequest.getStorageId()).build());
DropboxSecret dropBoxSecret = secretClient.dropbox()
.getDropboxSecret(DropboxSecretGetRequest.newBuilder()
.setSecretId(idRequest.getSecretId()).build());
directReqBuilder
.setStorage(StorageWrapper.newBuilder().setDropbox(dropBoxStorage).build())
.setSecret(SecretWrapper.newBuilder().setDropbox(dropBoxSecret).build());
break;
case GCS:
GCSStorage gcsStorage = storageClient.gcs()
.getGCSStorage(GCSStorageGetRequest.newBuilder()
.setStorageId(idRequest.getStorageId()).build());
GCSSecret gcsSecret = secretClient.gcs()
.getGCSSecret(GCSSecretGetRequest.newBuilder()
.setSecretId(idRequest.getSecretId()).build());
directReqBuilder
.setStorage(StorageWrapper.newBuilder().setGcs(gcsStorage).build())
.setSecret(SecretWrapper.newBuilder().setGcs(gcsSecret).build());
break;
case AZURE:
AzureStorage azureStorage = storageClient.azure()
.getAzureStorage(AzureStorageGetRequest.newBuilder()
.setStorageId(idRequest.getStorageId()).build());
AzureSecret azureSecret = secretClient.azure()
.getAzureSecret(AzureSecretGetRequest.newBuilder()
.setSecretId(idRequest.getSecretId()).build());
directReqBuilder
.setStorage(StorageWrapper.newBuilder().setAzure(azureStorage).build())
.setSecret(SecretWrapper.newBuilder().setAzure(azureSecret).build());
break;
case SWIFT:
SwiftStorage swiftStorage = storageClient.swift()
.getSwiftStorage(SwiftStorageGetRequest.newBuilder()
.setStorageId(idRequest.getStorageId()).build());
SwiftSecret swiftSecret = secretClient.swift()
.getSwiftSecret(SwiftSecretGetRequest.newBuilder()
.setSecretId(idRequest.getSecretId()).build());
directReqBuilder
.setStorage(StorageWrapper.newBuilder().setSwift(swiftStorage).build())
.setSecret(SecretWrapper.newBuilder().setSwift(swiftSecret).build());
break;
case ODATA:
ODataStorage odataStorage = storageClient.odata()
.getODataStorage(ODataStorageGetRequest.newBuilder()
.setStorageId(idRequest.getStorageId()).build());
ODataSecret odataSecret = secretClient.odata()
.getODataSecret(ODataSecretGetRequest.newBuilder()
.setSecretId(idRequest.getSecretId()).build());
directReqBuilder
.setStorage(StorageWrapper.newBuilder().setOdata(odataStorage).build())
.setSecret(SecretWrapper.newBuilder().setOdata(odataSecret).build());
break;
case SCP:
SCPStorage scpStorage = storageClient.scp()
.getSCPStorage(SCPStorageGetRequest.newBuilder()
.setStorageId(idRequest.getStorageId()).build());
SCPSecret scpSecret = secretClient.scp()
.getSCPSecret(SCPSecretGetRequest.newBuilder()
.setSecretId(idRequest.getSecretId()).build());
directReqBuilder
.setStorage(StorageWrapper.newBuilder().setScp(scpStorage).build())
.setSecret(SecretWrapper.newBuilder().setScp(scpSecret).build());
break;
case HTTP:
HTTPStorage httpStorage = storageClient.http()
.getHTTPStorage(HTTPStorageGetRequest.newBuilder()
.setStorageId(idRequest.getStorageId()).build());
HTTPSecret httpSecret = secretClient.http()
.getHTTPSecret(HTTPSecretGetRequest.newBuilder()
.setSecretId(idRequest.getSecretId()).build());
directReqBuilder
.setStorage(StorageWrapper.newBuilder().setHttp(httpStorage).build())
.setSecret(SecretWrapper.newBuilder().setHttp(httpSecret).build());
break;
}
return directReqBuilder.build();
}