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/09/13 18:29:53 UTC
[airavata-django-portal] 01/02: Adding convenience
AppInterface.createExperiment method
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 461dbc10d219a340a50f55fcc53aa3717e255041
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Fri Sep 13 14:29:30 2019 -0400
Adding convenience AppInterface.createExperiment method
---
.../js/models/ApplicationInterfaceDefinition.js | 8 ++++
.../js/containers/CreateExperimentContainer.vue | 48 +++++++++++-----------
2 files changed, 32 insertions(+), 24 deletions(-)
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/ApplicationInterfaceDefinition.js b/django_airavata/apps/api/static/django_airavata_api/js/models/ApplicationInterfaceDefinition.js
index 9ca07f0..8aa28e2 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/ApplicationInterfaceDefinition.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/ApplicationInterfaceDefinition.js
@@ -2,6 +2,7 @@ import BaseModel from "./BaseModel";
import InputDataObjectType from "./InputDataObjectType";
import OutputDataObjectType from "./OutputDataObjectType";
import DataType from "./DataType";
+import Experiment from "./Experiment";
const FIELDS = [
"applicationInterfaceId",
@@ -60,4 +61,11 @@ export default class ApplicationInterfaceDefinition extends BaseModel {
}
this.applicationOutputs.push(stdout, stderr);
}
+
+ createExperiment() {
+ const experiment = new Experiment();
+ experiment.populateInputsOutputsFromApplicationInterface(this);
+ experiment.executionId = this.applicationInterfaceId;
+ return experiment;
+ }
}
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 6c93a6e..ff17345 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
@@ -11,7 +11,7 @@
</template>
<script>
-import { models, services } from "django-airavata-api";
+import { services } from "django-airavata-api";
import { notifications } from "django-airavata-common-ui";
import ExperimentEditor from "../components/experiment/ExperimentEditor.vue";
import urls from "../utils/urls";
@@ -37,40 +37,40 @@ export default {
},
handleSavedAndLaunchedExperiment: function(experiment) {
// Redirect to experiment view
- urls.navigateToViewExperiment(experiment, {launching: true});
+ urls.navigateToViewExperiment(experiment, { launching: true });
}
},
computed: {},
mounted: function() {
- const experiment = new models.Experiment();
const loadAppModule = services.ApplicationModuleService.retrieve(
{ lookup: this.appModuleId },
{ ignoreErrors: true }
- ).then(appModule => {
- experiment.experimentName =
- appModule.appModuleName + " on " + moment().format("lll");
- this.appModule = appModule;
- });
+ );
const loadAppInterface = services.ApplicationModuleService.getApplicationInterface(
{ lookup: this.appModuleId },
{ ignoreErrors: true }
- ).then(appInterface => {
- experiment.populateInputsOutputsFromApplicationInterface(appInterface);
- if (this.userInputFiles) {
- Object.keys(this.userInputFiles).forEach(k => {
- const experimentInput = experiment.experimentInputs.find(inp => inp.name === k);
- if (experimentInput) {
- experimentInput.value = this.userInputFiles[k];
- }
- })
- }
- experiment.executionId = appInterface.applicationInterfaceId;
- });
- if (this.experimentDataDir) {
- experiment.userConfigurationData.experimentDataDir = this.experimentDataDir;
- }
+ );
Promise.all([loadAppModule, loadAppInterface])
- .then(() => (this.experiment = experiment))
+ .then(([appModule, appInterface]) => {
+ const experiment = appInterface.createExperiment();
+ experiment.experimentName =
+ appModule.appModuleName + " on " + moment().format("lll");
+ this.appModule = appModule;
+ if (this.userInputFiles) {
+ Object.keys(this.userInputFiles).forEach(k => {
+ const experimentInput = experiment.experimentInputs.find(
+ inp => inp.name === k
+ );
+ if (experimentInput) {
+ experimentInput.value = this.userInputFiles[k];
+ }
+ });
+ }
+ if (this.experimentDataDir) {
+ experiment.userConfigurationData.experimentDataDir = this.experimentDataDir;
+ }
+ this.experiment = experiment;
+ })
.catch(error => {
notifications.NotificationList.addError(error);
});