def fetch_storage_and_secret_ids()

in python-cli/mft_cli/airavata_mft_cli/operations.py [0:0]


def fetch_storage_and_secret_ids(storage_name):
  client = mft_client.MFTClient(transfer_api_port = configcli.transfer_api_port,
                                transfer_api_secured = configcli.transfer_api_secured,
                                resource_service_host = configcli.resource_service_host,
                                resource_service_port = configcli.resource_service_port,
                                resource_service_secured = configcli.resource_service_secured,
                                secret_service_host = configcli.secret_service_host,
                                secret_service_port = configcli.secret_service_port)
  search_req = StorageCommon_pb2.StorageSearchRequest(storageName=storage_name)
  storages = client.common_api.searchStorages(search_req)

  if len(storages.storageList) == 0:
    search_req = StorageCommon_pb2.StorageSearchRequest(storageId=storage_name)
    storages = client.common_api.searchStorages(search_req)

  if len(storages.storageList) == 0:
    print("No storage with name or id " + storage_name + " was found. Please register the storage with command mft-cli storage add")
    raise typer.Abort()

  if len(storages.storageList) > 1:
    print("More than one storage with nam " + storage_name + " was found. Please use the storage id. You can fetch it from mft-cli storage list")
    raise typer.Abort()

  storage = storages.storageList[0]
  if storage.storageType == StorageCommon_pb2.StorageType.LOCAL : #checking if storageID is Local
      return storage.storageId, ''
  sec_req = StorageCommon_pb2.SecretForStorageGetRequest(storageId = storage.storageId)
  sec_resp = client.common_api.getSecretForStorage(sec_req)
  if sec_resp.error != 0:
    print("Could not fetch the secret for storage " + storage.storageId)

  return sec_resp.storageId, sec_resp.secretId