Repository: airavata Updated Branches: refs/heads/master a0c1cbde9 -> 712652888
Adding data models for within workspace and parent to experiment and defualt values for all id's- AIRAVATA-1017 Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/71265288 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/71265288 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/71265288 Branch: refs/heads/master Commit: 7126528886030d0f6325f35d55dc122d28af74d2 Parents: a0c1cbd Author: Suresh Marru <[email protected]> Authored: Mon Feb 17 16:08:46 2014 -0500 Committer: Suresh Marru <[email protected]> Committed: Mon Feb 17 16:08:46 2014 -0500 ---------------------------------------------------------------------- .../airavataAPI.thrift | 30 ++++++---- .../airavataDataModel.thrift | 5 +- .../experimentModel.thrift | 55 ++++++++++-------- .../workspaceModel.thrift | 59 ++++++++++++++++++++ 4 files changed, 114 insertions(+), 35 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/71265288/airavata-api/thrift-interface-descriptions/airavataAPI.thrift ---------------------------------------------------------------------- diff --git a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift index 1ea10a3..6a39c7b 100644 --- a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift +++ b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift @@ -94,7 +94,7 @@ service Airavata { * rather an Airavata Administrator will be notified to take corrective action. * */ - string createExperiment(1: experimentModel.BasicMetadata basicExperimentMetadata) + string createExperiment(1: experimentModel.Experiment experiment) throws (1: airavataErrors.InvalidRequestException ire, 2: airavataErrors.AiravataClientException ace, 3: airavataErrors.AiravataSystemException ase) @@ -132,7 +132,7 @@ service Airavata { * rather an Airavata Administrator will be notified to take corrective action. * */ - experimentModel.BasicMetadata getBasicExperimentMetadata(1: string airavataExperimentId) + experimentModel.Experiment getBasicExperiment(1: string airavataExperimentId) throws (1: airavataErrors.InvalidRequestException ire, 2: airavataErrors.ExperimentNotFoundException enf, 3: airavataErrors.AiravataClientException ace, @@ -177,8 +177,8 @@ service Airavata { * rather an Airavata Administrator will be notified to take corrective action. * */ - void configureExperiment(1: string airavataExperimentId, - 2: experimentModel.ConfigurationData experimentConfigurationData) + void updateExperiment(1: string airavataExperimentId, + 2: experimentModel.Experiment experiment) throws (1: airavataErrors.InvalidRequestException ire, 2: airavataErrors.ExperimentNotFoundException enf, 3: airavataErrors.AiravataClientException ace, @@ -217,7 +217,7 @@ service Airavata { * rather an Airavata Administrator will be notified to take corrective action. * */ - experimentModel.ConfigurationData getExperimentConfiguration(1: string airavataExperimentId) + experimentModel.ExperimentStatus getExperimentStatus(1: string airavataExperimentId) throws (1: airavataErrors.InvalidRequestException ire, 2: airavataErrors.ExperimentNotFoundException enf, 3: airavataErrors.AiravataClientException ace, @@ -266,7 +266,7 @@ service Airavata { * rather an Airavata Administrator will be notified to take corrective action. * */ - void launchConfiguredExperiment(1: string airavataExperimentId + void launchExperiment(1: string airavataExperimentId 2: string airavataCredStoreToken) throws (1: airavataErrors.InvalidRequestException ire, 2: airavataErrors.ExperimentNotFoundException enf, @@ -317,8 +317,8 @@ service Airavata { * rather an Airavata Administrator will be notified to take corrective action. * */ - string configureAndLaunchExperiment (1: string airavataExperimentId - 2: experimentModel.ConfigurationData experimentConfigurationData, + string updateAndLaunchExperiment (1: string airavataExperimentId + 2: experimentModel.Experiment experiment, 3: string airavataCredStoreToken) throws (1: airavataErrors.InvalidRequestException ire, 2: airavataErrors.ExperimentNotFoundException enf, @@ -364,8 +364,8 @@ service Airavata { * rather an Airavata Administrator will be notified to take corrective action. * */ - string cloneExperimentConfiguration(1: string airavataExperimentIdToBeCloned, - 2: experimentModel.BasicMetadata basicExperimentMetadata) + string cloneExperiment(1: string airavataExperimentIdToBeCloned, + 2: experimentModel.Experiment updatedExperiment) throws (1: airavataErrors.InvalidRequestException ire, 2: airavataErrors.ExperimentNotFoundException enf, 3: airavataErrors.AiravataClientException ace, @@ -410,4 +410,14 @@ service Airavata { 3: airavataErrors.AiravataClientException ace, 4: airavataErrors.AiravataSystemException ase) + string registerGateway (1: string gatewayName) + throws (1: airavataErrors.InvalidRequestException ire, + 2: airavataErrors.ExperimentNotFoundException enf, + 3: airavataErrors.AiravataClientException ace, + 4: airavataErrors.AiravataSystemException ase) + + bool registerUser(1: string userName, 2: string gatewayName) + + string createProject (1: string projectName, string userName) + } http://git-wip-us.apache.org/repos/asf/airavata/blob/71265288/airavata-api/thrift-interface-descriptions/airavataDataModel.thrift ---------------------------------------------------------------------- diff --git a/airavata-api/thrift-interface-descriptions/airavataDataModel.thrift b/airavata-api/thrift-interface-descriptions/airavataDataModel.thrift index b062205..1e9b635 100644 --- a/airavata-api/thrift-interface-descriptions/airavataDataModel.thrift +++ b/airavata-api/thrift-interface-descriptions/airavataDataModel.thrift @@ -18,7 +18,7 @@ * */ -include "experimentModel.thrift" +include "workspaceModel.thrift" namespace java org.apache.airavata.model namespace php Airavata.Model @@ -28,3 +28,6 @@ namespace php Airavata.Model * language specific Airavata Client SDK's will translate this neutral data model into an * appropriate form for passing to the Airavata Server Execution API Calls. */ + + + http://git-wip-us.apache.org/repos/asf/airavata/blob/71265288/airavata-api/thrift-interface-descriptions/experimentModel.thrift ---------------------------------------------------------------------- diff --git a/airavata-api/thrift-interface-descriptions/experimentModel.thrift b/airavata-api/thrift-interface-descriptions/experimentModel.thrift index 4d84441..31f15ed 100644 --- a/airavata-api/thrift-interface-descriptions/experimentModel.thrift +++ b/airavata-api/thrift-interface-descriptions/experimentModel.thrift @@ -18,8 +18,8 @@ * */ -namespace java org.apache.airavata.model.experiment -namespace php Airavata.Model.Experiment +namespace java org.apache.airavata.model.workspace.experiment +namespace php Airavata.Model.Workspace.Experiment /* * This file describes the definitions of the Airavata Experiment Data Structures. Each of the @@ -49,6 +49,10 @@ namespace php Airavata.Model.Experiment * */ +const string DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS" +const string DEFAULT_PROJECT_NAME = "DEFAULT" +const string SINGLE_APP_NODE_NAME = "SINGLE_APP_NODE" + enum ExperimentState { CREATED, VALIDATED, @@ -80,21 +84,23 @@ struct WorkflowNodeStatus { 2: optional i64 timeOfStateChange } -enum ExecutionState { - AUTHENTICATED, +enum TaskState { + WAITING, + STARTED, PRE_PROCESSING, CONFIGURING_WORKSPACE, INPUT_DATA_STAGING, OUTPUT_DATA_STAGING, POST_PROCESSING, + EXECUTING, CANCELED, COMPLETED, FAILED, UNKNOWN } -struct ExecutionStatus { - 1: required ExecutionState executionState, +struct TaskStatus { + 1: required TaskState executionState, 2: optional i64 timeOfStateChange } @@ -236,7 +242,7 @@ struct UserConfigurationData { } struct ErrorDetails { - 1: required string errorID = "DO_NO_SET_BY_CLIENT", + 1: required string errorID = DEFAULT_ID, 2: optional i64 creationTime, 3: optional string actualErrorMessage, 4: optional string userFriendlyMessage, @@ -248,7 +254,7 @@ struct ErrorDetails { } struct JobDetails { - 1: required string jobID, + 1: required string jobID = DEFAULT_ID, 2: required string jobDescription, 3: optional i64 creationTime, 4: optional JobStatus jobStatus, @@ -257,7 +263,7 @@ struct JobDetails { } struct DataTransferDetails { - 1: required string transferID, + 1: required string transferID = DEFAULT_ID, 2: optional i64 creationTime, 3: required string transferDescription, 4: optional TransferStatus transferStatus, @@ -270,16 +276,16 @@ struct DataTransferDetails { * */ struct TaskDetails { - 1: required string taskID, + 1: required string taskID = DEFAULT_ID, 2: optional i64 creationTime, 3: optional string applicationId, 4: optional string applicationVersion, 5: optional list<DataObjectType> applicationInputs, 6: optional list<DataObjectType> applicationOutputs, - 7: optional ComputationalResourceScheduling executionScheduling, + 7: optional ComputationalResourceScheduling taskScheduling, 8: optional AdvancedInputDataHandling advancedInputDataHandling, 9: optional AdvancedOutputDataHandling advancedOutputDataHandling, - 10: optional ExecutionStatus executionStatus, + 10: optional TaskStatus taskStatus, 11: optional list<JobDetails> jobDetailsList, 12: optional list<DataTransferDetails> dataTransferDetailsList, 13: optional list<ErrorDetails> errors @@ -290,9 +296,9 @@ struct TaskDetails { * nodeInstanceId - unique node identifier for each run */ struct WorkflowNodeDetails { - 1: required string nodeInstanceId = "DO_NO_SET_BY_CLIENT", + 1: required string nodeInstanceId = DEFAULT_ID, 2: optional i64 creationTime, - 3: required string nodeName = "SIMPLE_APP_NODE", + 3: required string nodeName = SINGLE_APP_NODE_NAME, 4: optional list<DataObjectType> nodeInputs, 5: optional list<DataObjectType> nodeOutputs, 6: optional WorkflowNodeStatus workflowNodeStatus, @@ -318,8 +324,8 @@ struct WorkflowNodeDetails { */ struct Experiment { - 1: required string experimentID = "DO_NO_SET_BY_CLIENT" - 2: required string projectID = "DEFAULT", + 1: required string experimentID = DEFAULT_ID, + 2: required string projectID = DEFAULT_PROJECT_NAME 3: optional i64 creationTime, 4: required string userName, 5: required string name, @@ -328,11 +334,12 @@ struct Experiment { 8: optional string applicationVersion, 9: optional string workflowTemplateId, 10: optional string workflowTemplateVersion, - 11: optional string workflowExecutionInstanceId, - 12: optional list<DataObjectType> experimentInputs, - 13: optional list<DataObjectType> experimentOutputs, - 14: optional ExecutionStatus experimentStatus, - 15: optional list<ExecutionStatus> stateChangeList, - 16: optional list<WorkflowNodeDetails> workflowNodeDetailsList, - 17: optional list<ErrorDetails> errors -} \ No newline at end of file + 11: optional UserConfigurationData userConfigurationData, + 12: optional string workflowExecutionInstanceId, + 13: optional list<DataObjectType> experimentInputs, + 14: optional list<DataObjectType> experimentOutputs, + 15: optional ExperimentStatus experimentStatus, + 16: optional list<WorkflowNodeStatus> stateChangeList, + 17: optional list<WorkflowNodeDetails> workflowNodeDetailsList, + 18: optional list<ErrorDetails> errors +} http://git-wip-us.apache.org/repos/asf/airavata/blob/71265288/airavata-api/thrift-interface-descriptions/workspaceModel.thrift ---------------------------------------------------------------------- diff --git a/airavata-api/thrift-interface-descriptions/workspaceModel.thrift b/airavata-api/thrift-interface-descriptions/workspaceModel.thrift new file mode 100644 index 0000000..4d01495 --- /dev/null +++ b/airavata-api/thrift-interface-descriptions/workspaceModel.thrift @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +include "experimentModel.thrift" + +namespace java org.apache.airavata.model.workspace +namespace php Airavata.Model.Workspace + +/* + * This file describes the definitions of the Airavata Workspace. The workspace is a container for all user data + * organized as Projects and Experiment within them. + * + * The Experiment data model is divided into 6 categories: experiment metadata, experiment configuration + * data, experiment generated data, experiment monitoring data, provenance data and error handling data. + * + * +*/ + +struct Group { + 1: required string groupName, + 2: optional string description +} + +struct Project { + 1: required string projectID = experimentModel.DEFUALT_PROJECT_NAME, + 2: required string owner, + 3: required string name, + 4: optional string description + 5: optional i64 creationTime + 6: optional list<string> sharedUsers, + 7: optional list<string> sharedGroups +} + +struct User { + 1: required string userName, + 2: optional list<Group> groupList +} + +struct Gateway { + 1: required string gatewayId = DEFUALT_ID + 2: required string name, +} \ No newline at end of file
