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/08 20:30:36 UTC
[airavata-django-portal] 01/02: Allow passing experimentDataDir to
create experiment
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 4d2fb01a8670ecca8a290cb093a33dd6e746fac2
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed May 8 14:52:09 2019 -0400
Allow passing experimentDataDir to create experiment
---
django_airavata/apps/api/views.py | 11 ++++++-----
.../js/containers/CreateExperimentContainer.vue | 5 ++++-
.../django_airavata_workspace/js/entry-create-experiment.js | 6 +++++-
.../django_airavata_workspace/create_experiment.html | 5 ++++-
django_airavata/apps/workspace/views.py | 11 ++++++++---
5 files changed, 27 insertions(+), 11 deletions(-)
diff --git a/django_airavata/apps/api/views.py b/django_airavata/apps/api/views.py
index dffba15..d5a03af 100644
--- a/django_airavata/apps/api/views.py
+++ b/django_airavata/apps/api/views.py
@@ -181,7 +181,7 @@ class ExperimentViewSet(APIBackedViewSet):
gatewayId=self.gateway_id,
userName=self.username)
# The project or exp name may have changed, so update the exp data dir
- self._set_storage_id_and_data_dir(experiment)
+ # self._set_storage_id_and_data_dir(experiment)
self.request.airavata_client.updateExperiment(
self.authz_token, experiment.experimentId, experiment)
self._update_most_recent_project(experiment.projectId)
@@ -193,10 +193,11 @@ class ExperimentViewSet(APIBackedViewSet):
# Create experiment dir and set it on model
project = self.request.airavata_client.getProject(
self.authz_token, experiment.projectId)
- exp_dir = datastore.get_experiment_dir(self.username,
- project.name,
- experiment.experimentName)
- experiment.userConfigurationData.experimentDataDir = exp_dir
+ if not experiment.userConfigurationData.experimentDataDir:
+ exp_dir = datastore.get_experiment_dir(self.username,
+ project.name,
+ experiment.experimentName)
+ experiment.userConfigurationData.experimentDataDir = exp_dir
@detail_route(methods=['post'])
def launch(self, request, experiment_id=None):
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/CreateExperimentContainer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/CreateExperimentContainer.vue
index c7f7d0b..d820834 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/CreateExperimentContainer.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/CreateExperimentContainer.vue
@@ -20,7 +20,7 @@ import moment from "moment";
export default {
name: "create-experiment-container",
- props: ["app-module-id", "user-input-files"],
+ props: ["app-module-id", "user-input-files", "experiment-data-dir"],
data() {
return {
experiment: null,
@@ -66,6 +66,9 @@ export default {
}
experiment.executionId = appInterface.applicationInterfaceId;
});
+ if (this.experimentDataDir) {
+ experiment.userConfigurationData.experimentDataDir = this.experimentDataDir;
+ }
Promise.all([loadAppModule, loadAppInterface])
.then(() => (this.experiment = experiment))
.catch(error => {
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/entry-create-experiment.js b/django_airavata/apps/workspace/static/django_airavata_workspace/js/entry-create-experiment.js
index 386d665..4f2e983 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/entry-create-experiment.js
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/entry-create-experiment.js
@@ -8,7 +8,8 @@ entry(Vue => {
h(CreateExperimentContainer, {
props: {
appModuleId: this.appModuleId,
- userInputFiles: this.userInputFiles
+ userInputFiles: this.userInputFiles,
+ experimentDataDir: this.experimentDataDir
}
})
]);
@@ -26,6 +27,9 @@ entry(Vue => {
if (this.$el.dataset.userInputFiles) {
this.userInputFiles = JSON.parse(this.$el.dataset.userInputFiles);
}
+ if (this.$el.dataset.experimentDataDir) {
+ this.experimentDataDir = this.$el.dataset.experimentDataDir;
+ }
}
}).$mount("#create-experiment");
});
diff --git a/django_airavata/apps/workspace/templates/django_airavata_workspace/create_experiment.html b/django_airavata/apps/workspace/templates/django_airavata_workspace/create_experiment.html
index 327d5a3..08939a2 100644
--- a/django_airavata/apps/workspace/templates/django_airavata_workspace/create_experiment.html
+++ b/django_airavata/apps/workspace/templates/django_airavata_workspace/create_experiment.html
@@ -2,6 +2,9 @@
{% block content %}
-<div id="{{ bundle_name }}" data-app-module-id="{{ app_module_id }}" data-user-input-files="{{ user_input_files }}"></div>
+<div id="{{ bundle_name }}" data-app-module-id="{{ app_module_id }}" data-user-input-files="{{ user_input_files }}"
+ {% if experiment_data_dir %}data-experiment-data-dir="{{ experiment_data_dir }}"{% endif %}
+>
+</div>
{% endblock content %}
diff --git a/django_airavata/apps/workspace/views.py b/django_airavata/apps/workspace/views.py
index 402bceb..45675cf 100644
--- a/django_airavata/apps/workspace/views.py
+++ b/django_airavata/apps/workspace/views.py
@@ -94,12 +94,17 @@ def create_experiment(request, app_module_id):
data_product_uri = request.airavata_client.registerDataProduct(
request.authz_token, data_product)
user_input_files[app_input['name']] = data_product_uri
+ context = {
+ 'bundle_name': 'create-experiment',
+ 'app_module_id': app_module_id,
+ 'user_input_files': json.dumps(user_input_files)
+ }
+ if 'experiment-data-dir' in request.GET:
+ context['experiment_data_dir'] = request.GET['experiment-data-dir']
return render(request,
'django_airavata_workspace/create_experiment.html',
- {'bundle_name': 'create-experiment',
- 'app_module_id': app_module_id,
- 'user_input_files': json.dumps(user_input_files)})
+ context)
@login_required