airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ramin...@apache.org
Subject [1/2] git commit: Added ultrascan application under OGCE account.
Date Mon, 06 Oct 2014 22:15:30 GMT
Repository: airavata
Updated Branches:
  refs/heads/master 282362f10 -> 57adb55db


Added ultrascan application under OGCE account.

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

Branch: refs/heads/master
Commit: 00e242033abde3a447520b1ca1b0589240bb1b90
Parents: cbfeb2c
Author: raminder <raminder@apache.org>
Authored: Mon Oct 6 18:15:10 2014 -0400
Committer: raminder <raminder@apache.org>
Committed: Mon Oct 6 18:15:10 2014 -0400

----------------------------------------------------------------------
 .../tools/RegisterOGCEUS3Application.java       | 313 +++++++++++++++++++
 1 file changed, 313 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/00e24203/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
new file mode 100644
index 0000000..e5eaf23
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
@@ -0,0 +1,313 @@
+package org.apache.airavata.client.tools;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.airavata.api.Airavata;
+import org.apache.airavata.api.client.AiravataClientFactory;
+import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
+import org.apache.airavata.model.appcatalog.appinterface.DataType;
+import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
+import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
+import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
+import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
+import org.apache.airavata.model.appcatalog.computeresource.SCPDataMovement;
+import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.SecurityProtocol;
+import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
+import org.apache.airavata.model.error.AiravataClientException;
+import org.apache.thrift.TException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class RegisterOGCEUS3Application {
+	
+	private final static Logger logger = LoggerFactory.getLogger(RegisterSampleApplications.class);
+    
+//	public static final String THRIFT_SERVER_HOST = "gridfarm005.ucs.indiana.edu";
+//  public static final int THRIFT_SERVER_PORT = 8930;
+	private static final String DEFAULT_GATEWAY= "default"; 
+	public static final String THRIFT_SERVER_HOST = "gw111.iu.xsede.org";
+	public static final int THRIFT_SERVER_PORT = 9930;		
+//    private static final String DEFAULT_GATEWAY = "ultrascan";
+    private static Airavata.Client airavataClient;
+
+    //Host Id's
+    private static String stampedeResourceId = "stampede.tacc.xsede.org_af57850b-103b-49a1-aab2-27cb070d3bd9";
+    private static String trestlesResourceId = "trestles.sdsc.xsede.org_1ccc526f-ab74-4a5a-970a-c464cb9def5a";
+//    private static String lonestarResourceId = "lonestar.tacc.teragrid.org_2e0273bc-324b-419b-9786-38a360d44772";
+//    private static String alamoResourceId = "alamo.uthscsa.edu_7b6cf99a-af2e-4e8b-9eff-998a5ef60fe5";
+    
+    private static String ultrascanModuleId = "ultrascan_f8e80bc9-c0da-48d8-bb2a-30fe7e3fbab6";
+    private static String ultrascanAppId = "ultrascan_e76ab5cf-79f6-44df-a244-10a734183fec";
+    
+    public static void main(String[] args) {
+        try {
+			airavataClient = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT);
+			System.out.println("API version is " + airavataClient.getAPIVersion());
+
+			//Register all compute hosts
+			registerXSEDEHosts();
+			
+			// Register Gateway Details
+			registerGatewayResourceProfile();
+		
+			//Register module
+			registerAppModules();
+			
+			//Register Application
+			registerUltrascanInterface();
+			
+			//Register Deployment 
+			registerApplicationDeployment();
+	
+			// update 
+//			updateXSEDEHosts();
+
+        } catch (Exception e) {
+            logger.error("Error while connecting with server", e.getMessage());
+            e.printStackTrace();
+        }
+
+	}
+    public static void registerXSEDEHosts() {
+        try {
+            System.out.println("\n #### Registering XSEDE Computational Resources #### \n");
+
+            //Register Stampede
+            stampedeResourceId = registerComputeHost("stampede.tacc.xsede.org", "TACC Stampede
Cluster",
+                    ResourceJobManagerType.SLURM, "push", "/usr/bin", SecurityProtocol.GSI,
2222, "/usr/local/bin/ibrun");
+            System.out.println("Stampede Resource Id is " + stampedeResourceId);
+
+            //Register Trestles
+            trestlesResourceId = registerComputeHost("trestles.sdsc.xsede.org", "SDSC Trestles
Cluster",
+                    ResourceJobManagerType.PBS, "push", "/opt/torque/bin/", SecurityProtocol.GSI,
22, "/opt/mvapich2/pgi/ib/bin/mpiexec -np");
+            System.out.println("Trestles Resource Id is " + trestlesResourceId);
+            
+            //Register Lonestar
+//            lonestarResourceId = registerComputeHost("lonestar.tacc.teragrid.org", "TACC
Lonestar Cluster",
+//                    ResourceJobManagerType.UGE, "push", "/opt/sge6.2/bin/lx24-amd64", SecurityProtocol.GSI,
22, "/sge_common/default/pe_scripts/ibrun");
+//            System.out.println("Lonestar Resource Id is " + lonestarResourceId);
+//
+//            //Register Alamo
+//            alamoResourceId = registerComputeHost("alamo.uthscsa.edu", "Alamo Cluster",
+//                    ResourceJobManagerType.PBS, "push", "/opt/torque/bin/", SecurityProtocol.SSH_KEYS,
22, "/share/apps/openmpi/bin/mpiexec - n" );
+//            System.out.println("Alamo Cluster " + alamoResourceId);
+
+        } catch (TException e) {
+            e.printStackTrace();
+        }
+
+    }
+    public static void updateXSEDEHosts() {
+        try {
+            System.out.println("\n #### Registering XSEDE Computational Resources #### \n");
+
+            //Register Stampede
+            stampedeResourceId = updateComputeHost( stampedeResourceId,"stampede.tacc.xsede.org",
"TACC Stampede Cluster",
+                    ResourceJobManagerType.SLURM, "push", "/usr/bin", SecurityProtocol.GSI,
2222, "/usr/local/bin/ibrun");
+            System.out.println("Stampede Resource Id is " + stampedeResourceId);
+
+            //Register Trestles
+            trestlesResourceId = updateComputeHost(trestlesResourceId,"trestles.sdsc.xsede.org",
"SDSC Trestles Cluster",
+                    ResourceJobManagerType.PBS, "push", "/opt/torque/bin/", SecurityProtocol.GSI,
22, "/opt/mvapich2/pgi/ib/bin/mpiexec -np");
+            System.out.println("Trestles Resource Id is " + trestlesResourceId);
+            
+            //Register Lonestar
+//            lonestarResourceId = updateComputeHost(lonestarResourceId,"lonestar.tacc.teragrid.org",
"TACC Lonestar Cluster",
+//                    ResourceJobManagerType.UGE, "push", "/opt/sge6.2/bin/lx24-amd64", SecurityProtocol.GSI,
22, "/sge_common/default/pe_scripts/ibrun");
+//            System.out.println("Lonestar Resource Id is " + lonestarResourceId);
+//
+//            //Register Alamo
+//            alamoResourceId = updateComputeHost(alamoResourceId,"alamo.uthscsa.edu", "Alamo
Cluster",
+//                    ResourceJobManagerType.PBS, "push", "/opt/torque/bin/", SecurityProtocol.SSH_KEYS,
22, "/share/apps/openmpi/bin/mpiexec -n");
+//            System.out.println("Alamo Cluster " + alamoResourceId);
+
+        } catch (TException e) {
+            e.printStackTrace();
+        }
+
+    }
+    public static void registerAppModules() {
+        try {
+            System.out.println("\n #### Registering Application Modules #### \n");
+
+            //Register Echo
+            ultrascanModuleId = airavataClient.registerApplicationModule(
+                    RegisterSampleApplicationsUtils.createApplicationModule(
+                            "ultrascan_ogce", "1.0", "ultrascan application"));
+            System.out.println("Ultrascan Module Id " + ultrascanModuleId);
+        }catch(Exception e){
+        	e.getLocalizedMessage();
+        }
+    }
+    public static void registerUltrascanInterface() {
+        try {
+            System.out.println("#### Registering Ultrascan Interface #### \n");
+
+            List<String> appModules = new ArrayList<String>();
+            appModules.add(ultrascanModuleId);
+
+            InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("input",
null,
+                    DataType.URI, null, false, "input tar file", null);
+           
+            List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
+            applicationInputs.add(input1);
+
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("output",
+                    "", DataType.URI);
+
+//            OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("stdout",
+//                    "", DataType.URI);
+//            OutputDataObjectType output3 = RegisterSampleApplicationsUtils.createAppOutput("stderr",
+//                    "", DataType.URI);
+
+            List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
+            applicationOutputs.add(output1);
+  
+            ultrascanAppId = airavataClient.registerApplicationInterface(
+                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("ultrascan",
"ultrascan application",
+                            appModules, applicationInputs, applicationOutputs));
+            System.out.println("Ultrascan Application Interface Id " + ultrascanAppId);
+
+        } catch (TException e) {
+            e.printStackTrace();
+        }
+    }
+
+	public static void registerApplicationDeployment() {
+		try {
+			System.out.println("#### Registering Application Deployments on Stampede #### \n");
+
+			// Register Stampede
+			String ultascanStamplede = airavataClient.registerApplicationDeployment(RegisterSampleApplicationsUtils.createApplicationDeployment(ultrascanModuleId,
+					stampedeResourceId, "/home1/01437/ogce/xsede_apps/ultrascan/bin/us_mpi_analysis", ApplicationParallelismType.MPI,
"ultrascan OGCE application"));
+			System.out.println("Ultrascan on stampede deployment Id " + ultascanStamplede);
+			
+			String ultascanTrestles = airavataClient.registerApplicationDeployment(RegisterSampleApplicationsUtils.createApplicationDeployment(ultrascanModuleId,
+					trestlesResourceId, "/home/ogce/xsede_app/ultrascan/bin/us_mpi_analysis", ApplicationParallelismType.MPI,
"ultrascan OGCE application"));
+			System.out.println("Ultrascan on trestles deployment Id " + ultascanTrestles);
+//			String ultascanLonestar = airavataClient.registerApplicationDeployment(RegisterSampleApplicationsUtils.createApplicationDeployment(ultrascanModuleId,
+//					lonestarResourceId, "/home1/01623/us3/bin/us_mpi_analysis", ApplicationParallelismType.MPI,
"ultrascan application"));
+//			System.out.println("Ultrascan on lonestar deployment Id " + ultascanLonestar);
+//			String ultascanAlamo = airavataClient.registerApplicationDeployment(RegisterSampleApplicationsUtils.createApplicationDeployment(ultrascanModuleId,
+//					alamoResourceId, "/home/us3/bin/us_mpi_analysis.sh", ApplicationParallelismType.MPI,
"ultrascan application"));
+//			System.out.println("Ultrascan on alamo deployment Id " + ultascanAlamo);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	public static void registerGatewayResourceProfile() {
+
+        try {
+            System.out.println("#### Registering Gateway proflie #### \n");
+
+
+            ComputeResourcePreference stampedeResourcePreferences = RegisterSampleApplicationsUtils.
+                    createComputeResourcePreference(stampedeResourceId, "TG-STA110014S",
false, null, null, null,
+                            "/scratch/01437/ogce/ultrascan_testing/");
+
+            ComputeResourcePreference trestlesResourcePreferences = RegisterSampleApplicationsUtils.
+                    createComputeResourcePreference(trestlesResourceId, "sds128", false,
null, null, null,
+                            "/oasis/scratch/trestles/ogce/temp_project/gta-work-dirs/");
+
+//            ComputeResourcePreference lonestarResourcePreferences = RegisterSampleApplicationsUtils.
+//                    createComputeResourcePreference(lonestarResourceId, "ULTRASCAN", false,
null, null, null,
+//                            "/scratch/01623/us3/airavata/");
+//            
+//            ComputeResourcePreference alamoResourcePreferences = RegisterSampleApplicationsUtils.
+//                    createComputeResourcePreference(alamoResourceId, null, false, null,
null, null,
+//                            "/mnt/glusterfs/work/");
+
+            GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
+            gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
+            gatewayResourceProfile.addToComputeResourcePreferences(stampedeResourcePreferences);
+            gatewayResourceProfile.addToComputeResourcePreferences(trestlesResourcePreferences);
+  //          gatewayResourceProfile.addToComputeResourcePreferences(lonestarResourcePreferences);
+  //          gatewayResourceProfile.addToComputeResourcePreferences(alamoResourcePreferences);
+
+            String gatewayProfile = airavataClient.registerGatewayResourceProfile(gatewayResourceProfile);
+            System.out.println("Gateway Profile is registered with Id " + gatewayProfile);
+
+        } catch (TException e) {
+            e.printStackTrace();
+        }
+    }
+	public static String registerComputeHost(String hostName, String hostDesc, ResourceJobManagerType
resourceJobManagerType, String monitoringEndPoint,
+			String jobMangerBinPath, SecurityProtocol securityProtocol, int portNumber, String jobManagerCommand)
throws TException {
+
+		ComputeResourceDescription computeResourceDescription = RegisterSampleApplicationsUtils
+				.createComputeResourceDescription(hostName, hostDesc, null, null);
+
+		String computeResourceId = airavataClient.registerComputeResource(computeResourceDescription);
+
+		if (computeResourceId.isEmpty())
+			throw new AiravataClientException();
+
+		ResourceJobManager resourceJobManager = RegisterSampleApplicationsUtils.createResourceJobManager(resourceJobManagerType,
monitoringEndPoint,
+				jobMangerBinPath, null);
+
+		if (jobManagerCommand != null) {
+			Map<JobManagerCommand, String> jobManagerCommandStringMap = new HashMap<JobManagerCommand,
String>();
+			jobManagerCommandStringMap.put(JobManagerCommand.SUBMISSION, jobManagerCommand);
+			resourceJobManager.setJobManagerCommands(jobManagerCommandStringMap);
+		}
+		SSHJobSubmission sshJobSubmission = new SSHJobSubmission();
+		sshJobSubmission.setResourceJobManager(resourceJobManager);
+		sshJobSubmission.setSecurityProtocol(securityProtocol);
+		sshJobSubmission.setSshPort(portNumber);
+		boolean sshAddStatus = airavataClient.addSSHJobSubmissionDetails(computeResourceId, 1,
sshJobSubmission);
+
+		if (!sshAddStatus)
+			throw new AiravataClientException();
+
+		SCPDataMovement scpDataMovement = new SCPDataMovement();
+		scpDataMovement.setSecurityProtocol(securityProtocol);
+		scpDataMovement.setSshPort(portNumber);
+		boolean scpAddStatus = airavataClient.addSCPDataMovementDetails(computeResourceId, 1, scpDataMovement);
+
+		if (!scpAddStatus)
+			throw new AiravataClientException();
+
+		return computeResourceId;
+	}
+	public static String updateComputeHost( String computeResourceId, String hostName, String
hostDesc, ResourceJobManagerType resourceJobManagerType, String monitoringEndPoint,
+			String jobMangerBinPath, SecurityProtocol securityProtocol, int portNumber, String jobManagerCommand)
throws TException {
+
+		if (computeResourceId.isEmpty())
+			throw new AiravataClientException();
+
+		ResourceJobManager resourceJobManager = RegisterSampleApplicationsUtils.createResourceJobManager(resourceJobManagerType,
monitoringEndPoint,
+				jobMangerBinPath, null);
+
+		if (jobManagerCommand != null) {
+			Map<JobManagerCommand, String> jobManagerCommandStringMap = new HashMap<JobManagerCommand,
String>();
+			jobManagerCommandStringMap.put(JobManagerCommand.SUBMISSION, jobManagerCommand);
+			resourceJobManager.setJobManagerCommands(jobManagerCommandStringMap);
+		}
+		SSHJobSubmission sshJobSubmission = new SSHJobSubmission();
+		sshJobSubmission.setResourceJobManager(resourceJobManager);
+		sshJobSubmission.setSecurityProtocol(securityProtocol);
+		sshJobSubmission.setSshPort(portNumber);
+		boolean sshAddStatus = airavataClient.addSSHJobSubmissionDetails(computeResourceId, 1,
sshJobSubmission);
+		ComputeResourceDescription computeResourceDescription = airavataClient.getComputeResource(computeResourceId);
+		computeResourceDescription.getJobSubmissionInterfacesIterator();
+		if (!sshAddStatus)
+			throw new AiravataClientException();
+
+		SCPDataMovement scpDataMovement = new SCPDataMovement();
+		scpDataMovement.setSecurityProtocol(securityProtocol);
+		scpDataMovement.setSshPort(portNumber);
+		boolean scpAddStatus = airavataClient.addSCPDataMovementDetails(computeResourceId, 1, scpDataMovement);
+
+		if (!scpAddStatus)
+			throw new AiravataClientException();
+
+		return computeResourceId;
+	}
+}


Mime
View raw message