in airavata_django_portal_sdk/user_storage/api.py [0:0]
def get_rel_experiment_dir(request, experiment_id, storage_resource_id=None):
"""Return experiment data dir path relative to user's directory."""
warnings.warn("Use 'list_experiment_dir' instead.", DeprecationWarning)
if remoteapi.is_remote_api_configured():
resp = remoteapi.call(request,
"/experiments/{experimentId}/",
path_params={"experimentId": experiment_id})
resp.raise_for_status()
return resp.json()['relativeExperimentDataDir']
experiment = request.airavata_client.getExperiment(
request.authz_token, experiment_id)
if (experiment.userConfigurationData and
experiment.userConfigurationData.experimentDataDir):
backend = get_user_storage_provider(request, storage_resource_id=storage_resource_id)
data_dir = experiment.userConfigurationData.experimentDataDir
if backend.exists(data_dir):
directories, _ = backend.get_metadata(os.path.dirname(data_dir))
for directory in directories:
if directory['name'] == os.path.basename(data_dir):
return directory['path']
raise Exception(f"Could not find relative path to experiment data dir {data_dir}")
else:
return None
else:
return None