airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sma...@apache.org
Subject git commit: Updating experiment models to address the data management needs discused in AIRAVATA-1017
Date Fri, 14 Feb 2014 13:22:29 GMT
Updated Branches:
  refs/heads/master f52dc3b71 -> e7849ef98


Updating experiment models to address the data management needs discused in AIRAVATA-1017


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/e7849ef9
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/e7849ef9
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/e7849ef9

Branch: refs/heads/master
Commit: e7849ef980bb49f3129bf972265e258fd10056ea
Parents: f52dc3b
Author: Suresh Marru <smarru@apache.org>
Authored: Fri Feb 14 08:22:16 2014 -0500
Committer: Suresh Marru <smarru@apache.org>
Committed: Fri Feb 14 08:22:16 2014 -0500

----------------------------------------------------------------------
 .../airavataAPI.thrift                          |   1 -
 .../experimentModel.thrift                      | 284 +++++++++++++------
 .../monitoringModel.thrift                      | 124 --------
 3 files changed, 204 insertions(+), 205 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/e7849ef9/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 402b3e2..1ea10a3 100644
--- a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
+++ b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
@@ -27,7 +27,6 @@
 include "airavataErrors.thrift"
 include "airavataDataModel.thrift"
 include "experimentModel.thrift"
-include "monitoringModel.thrift"
 
 namespace java org.apache.airavata.api
 namespace php Airavata.API

http://git-wip-us.apache.org/repos/asf/airavata/blob/e7849ef9/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 109b50a..808e488 100644
--- a/airavata-api/thrift-interface-descriptions/experimentModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
@@ -49,29 +49,97 @@ namespace php Airavata.Model.Experiment
  *
 */
 
+enum ExperimentStatus {
+    CREATED,
+    VALIDATED,
+    SCHEDULED,
+    LAUNCHED,
+    EXECUTING,
+    CANCELED,
+    COMPLETED,
+    FAILED,
+    UNKNOWN
+}
+
+enum WorkflowNodeStatus {
+    INVOKED,
+    EXECUTING,
+    CANCELED,
+    COMPLETED,
+    FAILED,
+    UNKNOWN
+}
+
+enum ExecutionStatus {
+    AUTHENTICATED,
+    PRE_PROCESSING,
+    CONFIGURING_WORKSPACE,
+    INPUT_DATA_STAGING,
+    OUTPUT_DATA_STAGING,
+    POST_PROCESSING,
+    CANCELED,
+    COMPLETED,
+    FAILED,
+    UNKNOWN
+}
+
+enum JobStatus {
+    SUBMITTED,
+    QUEUED,
+    ACTIVE,
+    COMPLETE,
+    CANCELED,
+    FAILED,
+    HELD,
+    SUSPENDED,
+    UNKNOWN
+}
+
+enum TransferStatus {
+    SUBMITTED,
+    QUEUED,
+    ACTIVE,
+    COMPLETE,
+    CANCELED,
+    FAILED,
+    HELD,
+    SUSPENDED,
+    UNKNOWN
+}
+
+enum ActionableGroup {
+    RESOURCE_ADMINS,
+    AIRAVATA_ADMINS,
+    GATEWAYS_ADMINS,
+    USER,
+    CANNOT_BE_DETERMINED
+}
+
+enum ErrorCategory {
+    FILE_SYSTEM_FAILURE,
+    APPLICATION_FAILURE,
+    RESOURCE_NODE_FAILURE,
+    DISK_FULL,
+    INSUFFICIENT_ALLOCATION,
+    SYSTEM_MAINTENANCE,
+    AIRAVATA_INTERNAL_ERROR,
+    CANNOT_BE_DETERMINED
+}
+
+enum CorrectiveAction {
+    RETRY_SUBMISSION,
+    CONTACT_SUPPORT,
+    CANNOT_BE_DETERMINED
+}
+
 /**
- * A structure holding the basic experiment metadata.
- *
- * userName:
- *   The user name of the targeted gateway end user on whose behalf the experiment is being
created.
- *     the associated gateway identity can only be inferred from the security hand-shake
so as to avoid
- *     authorized Airavata Clients mimicking an unauthorized request. If a gateway is not
registered with
- *     Airavata, an authorization exception is thrown.
- *
- * experimentName:
- *   The name of the experiment as defined by the user. The name need not be unique as uniqueness
is enforced
- *      by the generated experiment id.
- *
- * experimentDescription:
- *    The verbose description of the experiment. This is an optional parameter.
+* A structure  hold experiment input output
+*
 */
-struct BasicMetadata {
-  1: required string userName,
-  2: required string experimentName,
-  3: required string projectID = "default",
-  4: optional string experimentDescription,
-  5: optional bool shareExperimentPublicly = 0,
-  6: required string experimentID = "DO_NOT_SET"
+struct DataObjectType {
+    1: required string key,
+    2: optional string type,
+    3: optional string value
 }
 
 /**
@@ -79,17 +147,15 @@ struct BasicMetadata {
  *
 */
 struct ComputationalResourceScheduling {
-  1:required bool airavataAutoSchedule = 1
-  2:required bool overrideManualScheduledParams = 0,
-  3:optional string resourceHostId,
-  4:optional i32 totalCPUCount,
-  5:optional i32 nodeCount,
-  6:optional i32 numberOfThreads,
-  7:optional string queueName,
-  8:optional i32 wallTimeLimit,
-  9:optional i32 jobStartTime,
-  10:optional i32 totalPhysicalMemory,
-  11:optional string ComputationalProjectAccount
+    1: optional string resourceHostId,
+    2: optional i32 totalCPUCount,
+    3: optional i32 nodeCount,
+    4: optional i32 numberOfThreads,
+    5: optional string queueName,
+    6: optional i32 wallTimeLimit,
+    7: optional i32 jobStartTime,
+    8: optional i32 totalPhysicalMemory,
+    9: optional string ComputationalProjectAccount
 }
 
 /**
@@ -97,8 +163,8 @@ struct ComputationalResourceScheduling {
  *
 */
 struct AdvancedInputDataHandling {
-    1:optional bool stageInputFilesToWorkingDir = 0,
-    2: optional string workingDirectoryParent,
+    1: optional bool stageInputFilesToWorkingDir = 0,
+    2: optional string parentWorkingDirectory,
     3: optional string uniqueWorkingDirectory,
     4: optional bool cleanUpWorkingDirAfterJob = 0
 }
@@ -108,9 +174,9 @@ struct AdvancedInputDataHandling {
  *
 */
 struct AdvancedOutputDataHandling {
-    2:optional string outputdataDir,
-    3:optional string dataRegistryURL,
-    4:optional bool persistOutputData = 1
+    2: optional string outputDataDir,
+    3: optional string dataRegistryURL,
+    4: optional bool persistOutputData = 1
 }
 
 /**
@@ -118,9 +184,9 @@ struct AdvancedOutputDataHandling {
  *
 */
 struct QualityOfServiceParams {
-    1:optional string startExecutionAt,
-    2:optional string executeBefore,
-    3:optional i32 numberofRetries,
+    1: optional string startExecutionAt,
+    2: optional string executeBefore,
+    3: optional i32 numberofRetries
 }
 
 /**
@@ -128,55 +194,113 @@ struct QualityOfServiceParams {
  *
  *
 */
-struct ConfigurationData {
-  1: optional BasicMetadata basicMetadata,
-  2: optional string applicationId,
-  3: optional string applicationVersion,
-  4: optional string workflowTemplateId,
-  5: optional string worklfowTemplateVersion,
-  6: optional map<string,string> experimentInputs,
-  7: optional ComputationalResourceScheduling computationalResourceScheduling,
-  8: optional AdvancedInputDataHandling advanceInputDataHandling,
-  9: optional AdvancedOutputDataHandling advanceOutputDataHandling,
-  10: optional QualityOfServiceParams qosParams
+struct UserConfigurationData {
+    1: required bool airavataAutoSchedule = 0,
+    2: required bool overrideManualScheduledParams = 0,
+    3: optional bool shareExperimentPublicly = 0,
+    4: optional ComputationalResourceScheduling computationalResourceScheduling,
+    5: optional AdvancedInputDataHandling advanceInputDataHandling,
+    6: optional AdvancedOutputDataHandling advanceOutputDataHandling,
+    7: optional QualityOfServiceParams qosParams
+}
+
+struct ErrorDetails {
+    1: optional string actualErrorMessage,
+    2: optional bool transientOrPersistant = 0,
+    3: optional CorrectiveAction correctiveAction,
+    4: optional ActionableGroup actionableGroup,
+    5: optional string userFriendlyMessage,
+    6: optional ErrorCategory errorCategory
+}
+
+struct JobDetails {
+    1: required string jobID,
+    2: required string jobDescription,
+    3: optional JobStatus jobStatus,
+    4: optional i64 lastUpdateTime,
+    5: optional string applicationStatus,
+    6: optional i64 applicationLastUpdateTime,
+    7: optional list<ErrorDetails> errors
+}
+
+struct DataTransferDetails {
+    1: required string transferID,
+    2: required string transferDescription,
+    3: optional TransferStatus transferStatus,
+    4: optional i64 lastUpdateTime
 }
 
 /**
-* A structure holding the node data.
-* nodeInstanceId - unique node identifier for each run
-* executionIndex - auto incrementing index for each run.
-* nodeType - type of the node, whether it is an input node, output node or service node
+ * A structure holding the actual execution context decided based on user provided configuration
data or system inferred
+ *   information from scheduling and QoS parameters .
+ *
 */
-struct NodeData {
-    1: required string nodeName,
-    2: required string nodeInstanceId = "DO_NOT_SET",
-    3: required string executionIndex,
-    4: optional string nodeType,
-    5: optional string nodeInput,
-    6: optional string nodeOutput,
-    7: optional string nodeStatus,
-    8: optional int32 startTime,
-    9: optional int32 lastUpdateTime
+struct AiravataExecutionDetails {
+    1: required string executionID
+    2: optional string applicationId,
+    3: optional string applicationVersion,
+    4: optional list<DataObjectType> applicationInputs,
+    5: optional list<DataObjectType> applicationOoutputs,
+    6: optional ComputationalResourceScheduling executionScheduling,
+    7: optional AdvancedInputDataHandling advancedInputDataHandling,
+    8: optional AdvancedOutputDataHandling advancedOutputDataHandling,
+    9: optional i64 creationTime,
+    10: optional ExecutionStatus executionStatus,
+    11: optional i64 lastUpdateTime,
+    12: optional list<JobDetails> jobDetailsList,
+    13: optional list<DataTransferDetails> dataTransferDetailsList,
+    14: optional list<ErrorDetails> errors
 }
 
 /**
-* A structure to hold experiment output
-*
+* A structure holding the node data.
+* nodeInstanceId - unique node identifier for each run
 */
-struct ExperimentOutput {
-    1: required string outputKey,
-    2: optional string outputType,
-    3: optional string outputkeyValue
+struct WorkflowNodeDetails {
+    1: required string nodeInstanceId = "DO_NOT_SET",
+    2: required string nodeName = "SIMPLE_APP_NODE",
+    3: optional list<DataObjectType> nodeInputs,
+    4: optional list<DataObjectType> nodeOutputs,
+    5: optional i64 startTime,
+    6: optional WorkflowNodeStatus workflowNodeStatus,
+    7: optional i64 lastUpdateTime,
+    8: optional list<AiravataExecutionDetails> executionDetailsList
+    9: optional list<ErrorDetails> errors
 }
 
 /**
-* A structure to hold generated data
-*
+ * A structure holding the experiment metadata and its child models.
+ *
+ * userName:
+ *   The user name of the targeted gateway end user on whose behalf the experiment is being
created.
+ *     the associated gateway identity can only be inferred from the security hand-shake
so as to avoid
+ *     authorized Airavata Clients mimicking an unauthorized request. If a gateway is not
registered with
+ *     Airavata, an authorization exception is thrown.
+ *
+ * experimentName:
+ *   The name of the experiment as defined by the user. The name need not be unique as uniqueness
is enforced
+ *      by the generated experiment id.
+ *
+ * experimentDescription:
+ *    The verbose description of the experiment. This is an optional parameter.
 */
-struct GeneratedData {
-    1: required string workflowTemplateId,
-    2: optional string workflowTemplateName,
-    3: optional int32 startTime,
-    4: optional list<ExperimentOutput> experimentOutputs,
-    5: optional list<NodeData> nodes
-}
+
+struct Experiment {
+    1: required string experimentID = "DO_NOT_SET"
+    2: required string projectID = "DEFAULT",
+    3: optional i64 creationTime,
+    4: required string userName,
+    5: required string experimentName,
+    6: optional string experimentDescription,
+    7: optional string applicationId,
+    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 i64 lastUpdateTime,
+    16: optional list<WorkflowNodeDetails> workflowNodeDetailsList,
+    17: optional list<ErrorDetails> errors
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/e7849ef9/airavata-api/thrift-interface-descriptions/monitoringModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/monitoringModel.thrift b/airavata-api/thrift-interface-descriptions/monitoringModel.thrift
deleted file mode 100644
index a41b15e..0000000
--- a/airavata-api/thrift-interface-descriptions/monitoringModel.thrift
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * 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.
- *
- */
-
-namespace java org.apache.airavata.model.monitoring
-namespace php Airavata.Model.Monitoring
-
-/**
- *  Experiment Monitoring Data is a structure contains fine grained experiment status information.
-*/
-
-/** 
-* To communicate date in ISO 8601 format like YYYY-MM-DD hh:mm:ss or YYYY-MM-DD
-*/ 
-typedef string TimeStamp
-
-/**
-* Enumeration for the job monitoring status. 
-*/
-enum STATUS {
-  CREATED,
-  SUBMITTED,
-  AUTHENTICATE,
-  CONFIGURING_WORKSPACE,
-  INPUT_TRANSFER,
-  OUTPUT_TRANSFER,
-  QUEUED,
-  PENDING,
-  ACTIVE,
-  COMPLETE,
-  CANCELED,
-  FINISHED,
-  FAILED,
-  UNKNOWN  
-}
-/**
-* Application runtime details 
-*/
-struct ApplicationDetails {
- 	1: optional string name,
- 	2: optional string instanceid,
- 	3: optional string status,
- 	4: optional string currentAction,
- 	5: optional string apperror
-}
- 
- /**
- * A structure holding the experiment monitoring request.
- *
- * expeimentID: 
- * 	Unique id returned by airavata on experiment creation.  
- *	
- * userName:
- * 	User of an experiment. This can be used to get all experiment triggered by user
- * 
- * filter:
- * 	This is to filter the output results. Filter can be failed, canceled, running, aborted
and all.
- * 
- * To get data for certain date range, provide a date range for the experiment run
- * startDateTime: 
- * 	Start criteria for a date range 
- * endDateTime:
- *  End criteria for a date range
- *
- */
-struct MonitoringRequest {
- 	1: optional string experimentID,
-  	2: optional string userName,
-  	3: optional string filter = "all",
-  	4: optional i64 startDateTime,
-  	5: optional i64 endDateTime,
-  	6: optional bool applicationdetails = false
-}
-
- /**
- * A structure holding the experiment monitoring response.
- *
- * expeimentID: 
- * 	Unique id returned by airavata on experiment creation.  
- *	
- * userName:
- * 	User of an experiment. 
- * 
- * experimentStatus:
- * 	Experiment status for a experiment run.
- * 
- * startTime: 
- * 	Experiment start datetime in ISO 8601 format.
- *
- * endTime:
- *  Experiment end datetime in ISO 8601 format.
- * 
- * errormessage: 
- * 	If the experiment status is failed then this will return the reason of error. 
- *
- * appdetails
- *  Application details are specific to applications executed in this experiment.
- */
-
-struct MonitoringResponse {
-  1: required string experimentID,
-  2: required string userName,
-  3: required STATUS experimentStatus,
-  4: optional TimeStamp startTime,
-  5: optional TimeStamp endTime,
-  6: optional string errormessage,
-  7: optional list <ApplicationDetails> appdetails
-}
\ No newline at end of file


Mime
View raw message