airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sma...@apache.org
Subject git commit: Updating Compute Resource to better handle decrsiption of multiple protocols - AIRAVATA-1203
Date Thu, 03 Jul 2014 19:28:30 GMT
Repository: airavata
Updated Branches:
  refs/heads/master 4d109fd18 -> 2338739ea


Updating Compute Resource to better handle decrsiption of multiple protocols - AIRAVATA-1203


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

Branch: refs/heads/master
Commit: 2338739ead4370ea2b2f3f31482bf907fd171746
Parents: 4d109fd
Author: Suresh Marru <smarru@apache.org>
Authored: Thu Jul 3 15:28:10 2014 -0400
Committer: Suresh Marru <smarru@apache.org>
Committed: Thu Jul 3 15:28:10 2014 -0400

----------------------------------------------------------------------
 .../computeResourceModel.thrift                 | 180 ++++++++++++++-----
 1 file changed, 139 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/2338739e/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift b/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
index 7c5c970..2588153 100644
--- a/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/computeResourceModel.thrift
@@ -47,6 +47,65 @@ enum ResourceJobManager {
 }
 
 /**
+ * Enumeration of File Systems on the resource
+ *
+ * FORK:
+ *  Forking of commands without any job manager
+ *
+ * PBS:
+ *  Job manager supporting the Portal Batch System (PBS) protocol. Some examples include
TORQUE, PBSPro, Grid Engine.
+ *
+ * UGE:
+ *  Univa Grid Engine, a variation of PBS implementation.
+ *
+ * SLURM:
+ *  The Simple Linux Utility for Resource Management is a open source workload manager.
+ *
+*/
+enum FileSystems {
+    HOME,
+    WORK,
+    LOCALTMP,
+    SCRATCH,
+    ARCHIVE
+}
+
+/**
+ * Batch Queue Information on SuperComputers
+ *
+ * maxRunTime:
+ *  Maximum allowed run time in hours.
+*/
+struct BatchQueue {
+    1: required string queueName,
+    2: optional string queueDescription,
+    3: optional i32 maxRunTime,
+    4: optional i32 maxNodes,
+    5: optional i32 maxProcessors,
+    6: optional i32 maxJobsInQueue
+}
+
+/**
+ * Enumeration of security authentication and authorization mechanisms supported by Airavata.
This enumeration just
+ *  describes the supported mechanism. The corresponding security credentials are registered
with Airavata Credential
+ *  store.
+ *
+ * USERNAME_PASSWORD:
+ *  A User Name.
+ *
+ * SSH_KEYS:
+ *  SSH Keys
+ *
+*/
+enum SecurityProtocol {
+    USERNAME_PASSWORD,
+    SSH_KEYS,
+    GSI,
+    KERBEROS,
+    OAUTH
+}
+
+/**
  * Enumeration of Airavata supported Job Submission Mechanisms for High Perforamance Computing
Clusters.
  *
  * SSH:
@@ -60,6 +119,7 @@ enum ResourceJobManager {
  *
 */
 enum JobSubmissionProtocol {
+    LOCALHOST,
     SSH,
     GSISSH,
     GRAM,
@@ -83,6 +143,7 @@ enum JobSubmissionProtocol {
  *
 */
 enum DataMovementProtocol {
+    LOCALHOST,
     SCP,
     SFTP,
     GridFTP,
@@ -90,91 +151,128 @@ enum DataMovementProtocol {
 }
 
 /**
- * Enumeration of security authentication and authorization mechanisms supported by Airavata.
This enumeration just
- *  describes the supported mechanism. The corresponding security credentials are registered
with Airavata Credential
- *  store.
+ * Data Movement through Secured Copy
  *
- * USERNAME_PASSWORD:
- *  A User Name.
- *
- * SSH_KEYS:
- *  SSH Keys
+ * alternativeSCPHostName:
+ *  If the login to scp is different than the hostname itself, specify it here
  *
+ * sshPort:
+ *  If a non-defualt port needs to used, specify it.
 */
-enum SecurityProtocol {
-    USERNAME_PASSWORD,
-    SSH_KEYS,
-    GSI,
-    KERBEROS,
-    OAUTH
-}
-
 struct SCPDataMovement {
-    1: required string dataMovementDataID = DEFAULT_ID,
+    1: required string dataMovementInterfaceId = DEFAULT_ID,
     2: required SecurityProtocol securityProtocol,
-    3: optional i32 sshPort = 22
+    3: optional string alternativeSCPHostName,
+    4: optional i32 sshPort = 22
 }
 
+/**
+ * Data Movement through GridFTP
+ *
+ * alternativeSCPHostName:
+ *  If the login to scp is different than the hostname itself, specify it here
+ *
+ * sshPort:
+ *  If a non-defualt port needs to used, specify it.
+*/
 struct GridFTPDataMovement {
-    1: required string dataMovementDataID = DEFAULT_ID,
+    1: required string dataMovementInterfaceId = DEFAULT_ID,
     2: required SecurityProtocol securityProtocol,
-    3: required list<string>  gridFTPEndPoint
+    3: required list<string>  gridFTPEndPoints
 }
 
+/**
+ * Authenticate using Secured Shell
+ *
+ * alternativeSSHHostName:
+ *  If the login to ssh is different than the hostname itself, specify it here
+ *
+ * sshPort:
+ *  If a non-defualt port needs to used, specify it.
+*/
 struct SSHJobSubmission {
-    1: required string jobSubmissionDataID = DEFAULT_ID,
+    1: required string jobSubmissionInterfaceId = DEFAULT_ID,
     2: required ResourceJobManager resourceJobManager,
-    3: optional i32 sshPort = 22
+    3: optional string alternativeSSHHostName,
+    4: optional i32 sshPort = 22,
+    5: optional string monitoringMechanism
 }
 
 struct GlobusJobSubmission {
-    1: required string jobSubmissionDataID = DEFAULT_ID,
+    1: required string jobSubmissionInterfaceId = DEFAULT_ID,
     2: required SecurityProtocol securityProtocol,
     3: required ResourceJobManager resourceJobManager,
     4: optional list<string> globusGateKeeperEndPoint
 }
 
-struct GSISSHJobSubmission {
-    1: required string jobSubmissionDataID = DEFAULT_ID,
-    2: required ResourceJobManager resourceJobManager,
-    3: optional i32 sshPort = 22,
-    4: optional set<string> exports,
-    5: optional list<string> preJobCommands,
-    6: optional list<string> postJobCommands,
-    7: optional string installedPath,
-    8: optional string monitorMode
+/**
+ * Job Submission Interfaces
+ *
+ * jobSubmissionInterfaceId: The Job Submission Interface has to be previously registered
and referenced here.
+ *
+ * priorityOrder:
+ *  For resources with multiple interfaces, the priority order should be selected.
+ *   Lower the numerical number, higher the priority
+ *
+*/
+struct JobSubmissionInterface {
+    1: required string jobSubmissionInterfaceId,
+    2: required JobSubmissionProtocol jobSubmissionProtocol
+    3: required i32 priorityOrder = 0,
+}
+
+/**
+ * Data Movement Interfaces
+ *
+ * dataMovementInterfaceId: The Data Movement Interface has to be previously registered and
referenced here.
+ *
+ * priorityOrder:
+ *  For resources with multiple interfaces, the priority order should be selected.
+ *   Lower the numerical number, higher the priority
+ *
+*/
+struct DataMovementInterface {
+    1: required string dataMovementInterfaceId,
+    2: required DataMovementProtocol dataMovementProtocol,
+    3: required i32 priorityOrder = 0,
 }
 
 /**
  * Computational Resource Description
  *
- * resourceId: Airavata Internal Unique Job ID. This is set by the registry.
+ * computeResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource.
  *
  * hostName:
  *   Fully Qualified Host Name.
  *
  * ipAddress:
- *   IP Addresse of the Hostname.
+ *   IP Addresses of the Resource.
  *
  * resourceDescription:
- *  A user friendly description of the hostname.
+ *  A user friendly description of the resource.
  *
  * JobSubmissionProtocols:
  *  A computational resources may have one or more ways of submitting Jobs. This structure
- *  will hold all available mechanisms to interact with the resource.
+ *    will hold all available mechanisms to interact with the resource.
+ *  The key is the priority
  *
  * DataMovementProtocol:
  *  Option to specify a prefered data movement mechanism of the available options.
  *
+ * fileSystems:
+ *  Map of file systems type and the path.
+ *
 */
 struct ComputeResourceDescription {
     1: required bool isEmpty = 0,
-    2: required string resourceId = DEFAULT_ID,
+    2: required string computeResourceId = DEFAULT_ID,
     3: required string hostName,
     4: optional set<string> hostAliases,
     5: optional set<string> ipAddresses,
-    6: optional string resourceDescription,
-    8: optional string preferredJobSubmissionProtocol,
-    9: required map<string, JobSubmissionProtocol> jobSubmissionProtocols,
-    10: required map<string, DataMovementProtocol> dataMovementProtocols
+    6: optional string computeResourceDescription,
+    7: optional ResourceJobManager resourceJobManager,
+    8: optional list<BatchQueue> batchQueues,
+    9: optional map<FileSystems, string> fileSystems,
+    10: optional list<JobSubmissionInterface> jobSubmissionInterfaces,
+    11: optional list<DataMovementInterface> dataMovemenetInterfaces
 }
\ No newline at end of file


Mime
View raw message