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 2019/05/30 00:16:01 UTC

[airavata-django-portal] branch master updated (bbf671d -> f03f492)

This is an automated email from the ASF dual-hosted git repository.

machristie pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git.


    from bbf671d  Merge branch 'airavata-3016'
     new dcf5331  AIRAVATA-3035 Link to storage from experiment summary
     new f03f492  AIRAVATA-3034 Fix skipping encoding of path params

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 django_airavata/apps/api/data_products_helper.py               |  4 ++++
 django_airavata/apps/api/serializers.py                        | 10 ++++++++++
 .../api/static/django_airavata_api/js/models/Experiment.js     |  3 ++-
 .../static/django_airavata_api/js/services/ServiceFactory.js   |  4 ++--
 .../js/components/experiment/ExperimentSummary.vue             |  8 ++++++++
 .../static/django_airavata_workspace/js/utils/urls.js          |  6 ++++++
 6 files changed, 32 insertions(+), 3 deletions(-)


[airavata-django-portal] 01/02: AIRAVATA-3035 Link to storage from experiment summary

Posted by ma...@apache.org.
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.git

commit dcf5331c81bbea22d69c24629eadb3d19bccf7fa
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed May 29 20:13:48 2019 -0400

    AIRAVATA-3035 Link to storage from experiment summary
---
 django_airavata/apps/api/data_products_helper.py               |  4 ++++
 django_airavata/apps/api/serializers.py                        | 10 ++++++++++
 .../api/static/django_airavata_api/js/models/Experiment.js     |  3 ++-
 .../js/components/experiment/ExperimentSummary.vue             |  8 ++++++++
 .../static/django_airavata_workspace/js/utils/urls.js          |  6 ++++++
 5 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/django_airavata/apps/api/data_products_helper.py b/django_airavata/apps/api/data_products_helper.py
index 759cae3..d995365 100644
--- a/django_airavata/apps/api/data_products_helper.py
+++ b/django_airavata/apps/api/data_products_helper.py
@@ -151,6 +151,10 @@ def create_user_dir(request, path):
     return datastore.create_user_dir(request.user.username, path)
 
 
+def get_rel_path(request, path):
+    return datastore.rel_path(request.user.username, path)
+
+
 def _get_data_product_uri(request, full_path):
 
     user_file = models.User_Files.objects.filter(
diff --git a/django_airavata/apps/api/serializers.py b/django_airavata/apps/api/serializers.py
index d6a7600..bbb66a8 100644
--- a/django_airavata/apps/api/serializers.py
+++ b/django_airavata/apps/api/serializers.py
@@ -419,6 +419,7 @@ class ExperimentSerializer(
     creationTime = UTCPosixTimestampDateTimeField(allow_null=True)
     experimentStatus = ExperimentStatusSerializer(many=True, allow_null=True)
     userHasWriteAccess = serializers.SerializerMethodField()
+    relativeExperimentDataDir = serializers.SerializerMethodField()
 
     def get_userHasWriteAccess(self, experiment):
         request = self.context['request']
@@ -426,6 +427,15 @@ class ExperimentSerializer(
             request.authz_token, experiment.experimentId,
             ResourcePermissionType.WRITE)
 
+    def get_relativeExperimentDataDir(self, experiment):
+        if (experiment.userConfigurationData and
+                experiment.userConfigurationData.experimentDataDir):
+            request = self.context['request']
+            return data_products_helper.get_rel_path(
+                request, experiment.userConfigurationData.experimentDataDir)
+        else:
+            return None
+
 
 class DataReplicaLocationSerializer(
         thrift_utils.create_serializer_class(DataReplicaLocationModel)):
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js b/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js
index 7052299..025f07e 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js
@@ -70,7 +70,8 @@ const FIELDS = [
     name: "userHasWriteAccess",
     type: "boolean",
     default: true
-  }
+  },
+  "relativeExperimentDataDir"
 ];
 
 export default class Experiment extends BaseModel {
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentSummary.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentSummary.vue
index 65320e6..72dd87b 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentSummary.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentSummary.vue
@@ -64,6 +64,7 @@
                         </template>
                       </li>
                     </ul>
+                    <b-link v-if="storageDirLink" :href="storageDirLink">Storage Directory</b-link>
                   </td>
                 </tr>
                 <!-- Going to leave this out for now -->
@@ -256,6 +257,13 @@ export default {
     },
     isClonable() {
       return this.localFullExperiment.applicationName;
+    },
+    storageDirLink() {
+      if (this.experiment.relativeExperimentDataDir) {
+        return urls.storageDirectory(this.experiment.relativeExperimentDataDir)
+      } else {
+        return null;
+      }
     }
   },
   methods: {
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/utils/urls.js b/django_airavata/apps/workspace/static/django_airavata_workspace/js/utils/urls.js
index 060c6a9..e8bdd0a 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/utils/urls.js
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/utils/urls.js
@@ -42,5 +42,11 @@ export default {
   },
   navigateToProjectsList() {
     window.location.assign(this.projectsList());
+  },
+  storageDirectory(relativePath) {
+    if (relativePath.startsWith("/")) {
+      relativePath = relativePath.substring(1);
+    }
+    return "/workspace/storage/~/" + relativePath;
   }
 };


[airavata-django-portal] 02/02: AIRAVATA-3034 Fix skipping encoding of path params

Posted by ma...@apache.org.
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.git

commit f03f4921c000e63acd0a0af3bd75bc44f2c90c16
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed May 29 20:14:51 2019 -0400

    AIRAVATA-3034 Fix skipping encoding of path params
---
 .../apps/api/static/django_airavata_api/js/services/ServiceFactory.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/django_airavata/apps/api/static/django_airavata_api/js/services/ServiceFactory.js b/django_airavata/apps/api/static/django_airavata_api/js/services/ServiceFactory.js
index 9270e04..855d600 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/services/ServiceFactory.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/services/ServiceFactory.js
@@ -126,8 +126,8 @@ const parseServiceMapping = function(serviceConfiguration) {
             ? methodConfig.pagination
             : defaultPagination,
         encodePathParams:
-          "encodePathParams" in serviceConfiguration
-            ? serviceConfiguration.encodePathParams
+          "encodePathParams" in methodConfig
+            ? methodConfig.encodePathParams
             : true
       };
       if ("modelClass" in methodConfig) {