You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2021/01/07 00:14:24 UTC
[airavata-django-portal-sdk] branch master updated: AIRAVATA-3362
experiment_dir_exists and fixes to computed paths
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal-sdk.git
The following commit(s) were added to refs/heads/master by this push:
new 5a61fab AIRAVATA-3362 experiment_dir_exists and fixes to computed paths
5a61fab is described below
commit 5a61fab2a011e47a3b20b60f290eca5c85fddcd9
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Wed Jan 6 19:13:55 2021 -0500
AIRAVATA-3362 experiment_dir_exists and fixes to computed paths
---
airavata_django_portal_sdk/user_storage.py | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/airavata_django_portal_sdk/user_storage.py b/airavata_django_portal_sdk/user_storage.py
index 8fe2bf4..7de1830 100644
--- a/airavata_django_portal_sdk/user_storage.py
+++ b/airavata_django_portal_sdk/user_storage.py
@@ -416,7 +416,7 @@ def listdir(request, path):
raise ObjectDoesNotExist("User storage path does not exist")
-def list_experiment_dir(request, experiment_id, path=None):
+def list_experiment_dir(request, experiment_id, path=""):
"""
List files, directories in experiment data directory. Returns a tuple,
see `listdir`.
@@ -428,15 +428,14 @@ def list_experiment_dir(request, experiment_id, path=None):
request.authz_token, experiment_id)
datastore = _Datastore()
exp_data_path = experiment.userConfigurationData.experimentDataDir
- if path is not None:
- exp_data_path = os.path.join(exp_data_path, path)
+ exp_data_path = os.path.join(exp_data_path, path)
exp_owner = experiment.userName
if datastore.dir_exists(exp_owner, exp_data_path):
directories, files = datastore.list_user_dir(
exp_owner, exp_data_path)
directories_data = []
for d in directories:
- dpath = os.path.join(path, d)
+ dpath = os.path.join(exp_data_path, d)
created_time = datastore.get_created_time(
exp_owner, dpath)
size = datastore.size(exp_owner, dpath)
@@ -451,7 +450,7 @@ def list_experiment_dir(request, experiment_id, path=None):
)
files_data = []
for f in files:
- user_rel_path = os.path.join(path, f)
+ user_rel_path = os.path.join(exp_data_path, f)
if not datastore.exists(exp_owner, user_rel_path):
logger.warning(
f"list_experiment_dir skipping {exp_owner}:{user_rel_path}, "
@@ -484,6 +483,20 @@ def list_experiment_dir(request, experiment_id, path=None):
else:
raise ObjectDoesNotExist("Experiment data directory does not exist")
+
+def experiment_dir_exists(request, experiment_id, path=""):
+
+ if _is_remote_api():
+ raise NotImplementedError()
+ experiment = request.airavata_client.getExperiment(
+ request.authz_token, experiment_id)
+ datastore = _Datastore()
+ exp_data_path = experiment.userConfigurationData.experimentDataDir
+ exp_data_path = os.path.join(exp_data_path, path)
+ exp_owner = experiment.userName
+ return datastore.dir_exists(exp_owner, exp_data_path)
+
+
def get_experiment_dir(
request,
project_name=None,