You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2015/06/12 14:57:04 UTC
airavata git commit: Simplifying data models in preparation for a
stable 1.0 release - AIRAVATA-1014
Repository: airavata
Updated Branches:
refs/heads/master 5a6b64703 -> 95007241e
Simplifying data models in preparation for a stable 1.0 release - AIRAVATA-1014
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/95007241
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/95007241
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/95007241
Branch: refs/heads/master
Commit: 95007241eb7e93075df7e4b1f1110334da39deab
Parents: 5a6b647
Author: Suresh Marru <sm...@apache.org>
Authored: Fri Jun 12 08:56:55 2015 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Fri Jun 12 08:56:55 2015 -0400
----------------------------------------------------------------------
.../airavata_commons.thrift | 35 ++++++
.../application_io_models.thrift | 118 +++++++++++++++++++
.../airavata-data-models/process_model.thrift | 54 +++++++++
.../scheduling_model.thrift | 39 ++++++
.../airavata-data-models/status_models.thrift | 56 +++++++++
.../airavata-data-models/task_model.thrift | 75 ++++++++++++
6 files changed, 377 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/95007241/thrift-interface-descriptions/airavata-data-models/airavata_commons.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-data-models/airavata_commons.thrift b/thrift-interface-descriptions/airavata-data-models/airavata_commons.thrift
new file mode 100644
index 0000000..90a4132
--- /dev/null
+++ b/thrift-interface-descriptions/airavata-data-models/airavata_commons.thrift
@@ -0,0 +1,35 @@
+/*
+ * 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.commons
+namespace php Airavata.Model.Commons
+namespace cpp apache.airavata.model.commons
+namespace py apache.airavata.model.commons
+
+const string DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"
+
+struct ErrorDetails {
+ 1: required string errorID = DEFAULT_ID,
+ 2: optional i64 creationTime,
+ 3: optional string actualErrorMessage,
+ 4: optional string userFriendlyMessage,
+ 5: optional bool transientOrPersistent = 0,
+ 6: optional list<string> rootCauseErrorIdList
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/95007241/thrift-interface-descriptions/airavata-data-models/application_io_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-data-models/application_io_models.thrift b/thrift-interface-descriptions/airavata-data-models/application_io_models.thrift
new file mode 100644
index 0000000..4a5b9ef
--- /dev/null
+++ b/thrift-interface-descriptions/airavata-data-models/application_io_models.thrift
@@ -0,0 +1,118 @@
+/*
+ * 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 "compute_resource_model.thrift"
+include "application_interface_model.thrift"
+
+namespace java org.apache.airavata.model.application.io
+namespace php Airavata.Model.Application.Io
+namespace cpp apache.airavata.model.application.io
+namespace py apache.airavata.model.application.io
+
+/**
+ * Data Types supported in Airavata. The primitive data types
+ *
+*/
+enum DataType{
+ STRING,
+ INTEGER,
+ FLOAT,
+ URI,
+ STDOUT,
+ STDERR
+}
+
+/**
+ * Application Inputs. The paramters describe how inputs are passed to the application.
+ *
+ * name:
+ * Name of the parameter.
+ *
+ * value:
+ * Value of the parameter. A default value could be set during registration.
+ *
+ * type:
+ * Data type of the parameter
+ *
+ * applicationArguement:
+ * The argument flag sent to the application. Such as -p pressure.
+ *
+ * standardInput:
+ * When this value is set, the parameter is sent as standard input rather than a parameter.
+ * Typically this is passed using redirection operator ">".
+ *
+ * userFriendlyDescription:
+ * Description to be displayed at the user interface.
+ *
+ * metaData:
+ * Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
+ *
+*/
+struct InputDataObjectType {
+ 1: required string name,
+ 2: optional string value,
+ 3: optional DataType type,
+ 4: optional string applicationArgument,
+ 5: optional bool standardInput = 0,
+ 6: optional string userFriendlyDescription,
+ 7: optional string metaData,
+ 8: optional i32 inputOrder,
+ 9: optional bool isRequired,
+ 10: optional bool requiredToAddedToCommandLine,
+ 11: optional bool dataStaged = 0
+}
+
+/**
+ * Application Outputs. The paramters describe how outputs generated by the application.
+ *
+ * name:
+ * Name of the parameter.
+ *
+ * value:
+ * Value of the parameter.
+ *
+ * type:
+ * Data type of the parameter
+ *
+ * applicationArguement:
+ * The argument flag sent to the application. Such as -p pressure.
+ *
+ * standardInput:
+ * When this value is set, the parameter is sent as standard input rather than a parameter.
+ * Typically this is passed using redirection operator ">".
+ *
+ * userFriendlyDescription:
+ * Description to be displayed at the user interface.
+ *
+ * metaData:
+ * Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
+ *
+*/
+struct OutputDataObjectType {
+ 1: required string name,
+ 2: optional string value,
+ 3: optional DataType type,
+ 4: optional string applicationArgument,
+ 5: optional bool isRequired,
+ 6: optional bool requiredToAddedToCommandLine,
+ 7: optional bool dataMovement,
+ 8: optional string location,
+ 9: optional string searchQuery
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/95007241/thrift-interface-descriptions/airavata-data-models/process_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-data-models/process_model.thrift b/thrift-interface-descriptions/airavata-data-models/process_model.thrift
new file mode 100644
index 0000000..974906c
--- /dev/null
+++ b/thrift-interface-descriptions/airavata-data-models/process_model.thrift
@@ -0,0 +1,54 @@
+/*
+ * 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 "airavata_commons.thrift"
+include "status_models.thrift"
+include "task_model.thrift"
+include "application_io_models.thrift"
+include "scheduling_model.thrift"
+
+namespace java org.apache.airavata.model.process
+namespace php Airavata.Model.Process
+namespace cpp apache.airavata.model.process
+namespace py apache.airavata.model.process
+
+
+/**
+ * ProcessModel: A structure holding the process details. The infromation is derived based on user provided
+ * configuration data or system inferred information from scheduling and QoS parameters.
+ *
+ * processDetail:
+ * A friendly description of the process, usally used to communicate information to users.
+ *
+ *
+*/
+struct ProcessModel {
+ 1: required string processId = airavata_commons.DEFAULT_ID,
+ 2: optional i64 creationTime,
+ 3: optional i64 lastUpdateTime,
+ 4: optional status_models.Status processStatus,
+ 5: optional string processDetail,
+ 6: optional list<application_io_models.InputDataObjectType> processInputs,
+ 7: optional list<application_io_models.OutputDataObjectType> processOutputs,
+ 8: optional scheduling_model.ComputationalResourceSchedulingModel resourceSchedule,
+ 9: optional list<task_model.TaskModel> tasks,
+ 10: optional string taskDag
+ 11: optional airavata_commons.ErrorDetails processErrorDetails
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/95007241/thrift-interface-descriptions/airavata-data-models/scheduling_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-data-models/scheduling_model.thrift b/thrift-interface-descriptions/airavata-data-models/scheduling_model.thrift
new file mode 100644
index 0000000..59c6abd
--- /dev/null
+++ b/thrift-interface-descriptions/airavata-data-models/scheduling_model.thrift
@@ -0,0 +1,39 @@
+/*
+ * 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.scheduling
+namespace php Airavata.Model.Scheduling
+namespace cpp apache.airavata.model.scheduling
+namespace py apache.airavata.model.scheduling
+
+/**
+ * ComputationalResourceSchedulingModel:
+ *
+ *
+*/
+struct ComputationalResourceSchedulingModel {
+ 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 totalPhysicalMemory,
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/95007241/thrift-interface-descriptions/airavata-data-models/status_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-data-models/status_models.thrift b/thrift-interface-descriptions/airavata-data-models/status_models.thrift
new file mode 100644
index 0000000..458135c
--- /dev/null
+++ b/thrift-interface-descriptions/airavata-data-models/status_models.thrift
@@ -0,0 +1,56 @@
+/*
+ * 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.status
+namespace php Airavata.Model.Status
+namespace cpp apache.airavata.model.status
+namespace py apache.airavata.model.status
+
+enum State {
+ CREATED,
+ VALIDATED,
+ SCHEDULED,
+ LAUNCHED,
+ EXECUTING,
+ CANCELING,
+ CANCELED,
+ SUSPENDED,
+ COMPLETED,
+ FAILED
+}
+
+/**
+ * Status: A generic status object.
+ *
+ * state:
+ * State .
+ *
+ * timeOfStateChange:
+ * time the status was last updated.
+ *
+ * reason:
+ * User friendly reason on how the state is inferred.
+ *
+*/
+struct Status {
+ 1: required State state,
+ 2: optional i64 timeOfStateChange,
+ 3: string reason
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/95007241/thrift-interface-descriptions/airavata-data-models/task_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-data-models/task_model.thrift b/thrift-interface-descriptions/airavata-data-models/task_model.thrift
new file mode 100644
index 0000000..ee82c74
--- /dev/null
+++ b/thrift-interface-descriptions/airavata-data-models/task_model.thrift
@@ -0,0 +1,75 @@
+/*
+ * 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 "airavata_commons.thrift"
+include "status_models.thrift"
+
+namespace java org.apache.airavata.model.task
+namespace php Airavata.Model.Task
+namespace cpp apache.airavata.model.task
+namespace py apache.airavata.model.task
+
+/**
+ * TaskTypes: An enumerated list of TaskTypes. Task being generic, the task type will provide the concrete interpretation.
+ *
+*/
+enum TaskTypes {
+ ENV_SETUP,
+ DATA_STAGING,
+ JOB_SUBMISSION,
+ ENV_CLEANUP,
+ MONITORING
+}
+
+/**
+ * TaskModel: A structure holding the generic task details.
+ *
+ * taskDetail:
+ * A friendly description of the task, usally used to communicate information to users.
+ *
+ * taskInternalStore:
+ * A generic byte object for the Task developer to store internal serialized data into registry catalogs.
+*/
+struct TaskModel {
+ 1: required string taskId = airavata_commons.DEFAULT_ID,
+ 2: required TaskTypes taskType,
+ 3: required string parentProcessId,
+ 4: required i64 creationTime,
+ 5: required i64 lastUpdateTime,
+ 6: required status_models.Status taskStatus,
+ 7: optional string taskDetail,
+ 8: optional byte taskInternalStore,
+ 9: optional airavata_commons.ErrorDetails taskErrorDetails
+}
+
+/**
+ * DataStagingTaskModel: A structure holding the data staging task details.
+ *
+ * Source and Destination locations includes standard representation of protocol, host, port and path
+ * A friendly description of the task, usally used to communicate information to users.
+ *
+*/
+struct DataStagingTaskModel {
+ 1: required string source,
+ 2: required string destination,
+ 3: optional i64 transferStartTime,
+ 4: optional i64 transferEndTime,
+ 5: optional string transferRate
+}
\ No newline at end of file