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 2014/07/11 15:17:39 UTC

git commit: Application Interface Examples - AIRAVATA-1344

Repository: airavata
Updated Branches:
  refs/heads/master b6392ef33 -> 3e151ce37


Application Interface Examples -  AIRAVATA-1344


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

Branch: refs/heads/master
Commit: 3e151ce37690a1664b2a18747153ef12466e82ec
Parents: b6392ef
Author: Suresh Marru <sm...@apache.org>
Authored: Fri Jul 11 09:17:32 2014 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Fri Jul 11 09:17:32 2014 -0400

----------------------------------------------------------------------
 .../tools/RegisterSampleApplications.java       | 153 +++++++++++++++----
 .../tools/RegisterSampleApplicationsUtils.java  |  26 +++-
 2 files changed, 148 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/3e151ce3/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
index 9db25fb..f6de61d 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
@@ -38,6 +38,8 @@ import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
 import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
 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.*;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
@@ -64,6 +66,28 @@ public class RegisterSampleApplications {
     private static String trestlesResourceId;
     private static String bigredResourceId;
 
+    //Appplication Names
+    private static final String echoName = "Echo";
+    private static final String amberName = "Amber";
+    private static final String autoDockName = "AutoDock";
+    private static final String espressoName = "ESPRESSO";
+    private static final String gromacsName = "GROMACS";
+    private static final String lammpsName = "LAMMPS";
+    private static final String nwChemName = "NWChem";
+    private static final String trinityName = "Trinity";
+    private static final String wrfName = "WRF";
+
+    //Appplication Descriptions
+    private static final String echoDescription = "A Simple Echo Application";
+    private static final String amberDescription = "Amber Molecular Dynamics Package";
+    private static final String autoDockDescription = "AutoDock suite of automated docking tools";
+    private static final String espressoDescription = "Nanoscale electronic-structure calculations and materials modeling";
+    private static final String gromacsDescription = "GROMACS Molecular Dynamics Package";
+    private static final String lammpsDescription = "Large-scale Atomic/Molecular Massively Parallel Simulator";
+    private static final String nwChemDescription = "Ab initio computational chemistry software package";
+    private static final String trinityDescription = "de novo reconstruction of transcriptomes from RNA-seq data";
+    private static final String wrfDescription = "Weather Research and Forecasting";
+
     //App Module Id's
     private static String echoModuleId;
     private static String amberModuleId;
@@ -75,6 +99,17 @@ public class RegisterSampleApplications {
     private static String trinityModuleId;
     private static String wrfModuleId;
 
+    //App Interface Id's
+    private static String echoInterfaceId;
+    private static String amberInterfaceId;
+    private static String autoDockInterfaceId;
+    private static String espressoInterfaceId;
+    private static String gromacsInterfaceId;
+    private static String lammpsInterfaceId;
+    private static String nwChemInterfaceId;
+    private static String trinityInterfaceId;
+    private static String wrfInterfaceId;
+
     public static void main(String[] args) {
         try {
             airavataClient = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT);
@@ -89,6 +124,9 @@ public class RegisterSampleApplications {
             //Register all application deployments
             registerAppDeployments();
 
+            //Register all application interfaces
+            registerAppInterfaces();
+
         } catch (Exception e) {
             logger.error("Error while connecting with server", e.getMessage());
             e.printStackTrace();
@@ -127,55 +165,55 @@ public class RegisterSampleApplications {
             //Register Echo
             echoModuleId = airavataClient.registerApplicationModule(
                     RegisterSampleApplicationsUtils.createApplicationModule(
-                            "Echo", "1.0", "A Simple Echo Application"));
+                            echoName, "1.0", echoDescription));
             System.out.println("Echo Module Id " + echoModuleId);
 
             //Register Amber
             amberModuleId = airavataClient.registerApplicationModule(
                     RegisterSampleApplicationsUtils.createApplicationModule(
-                            "Amber", "12.0", "Amber Molecular Dynamics Package"));
+                            amberName, "12.0", amberDescription));
             System.out.println("Amber Module Id " + amberModuleId);
 
             //Register AutoDock
             autoDockModuleId = airavataClient.registerApplicationModule(
                     RegisterSampleApplicationsUtils.createApplicationModule(
-                            "AutoDock", "4.2", "AutoDock suite of automated docking tools"));
+                            autoDockName, "4.2", autoDockDescription));
             System.out.println("AutoDock Module Id " + autoDockModuleId);
 
             //Register ESPRESSO
             espressoModuleId = airavataClient.registerApplicationModule(
                     RegisterSampleApplicationsUtils.createApplicationModule(
-                            "ESPRESSO", "5.0.3", "Nanoscale electronic-structure calculations and materials modeling"));
+                            espressoName, "5.0.3", espressoDescription));
             System.out.println("ESPRESSO Module Id " + espressoModuleId);
 
             //Register GROMACS
             gromacsModuleId = airavataClient.registerApplicationModule(
                     RegisterSampleApplicationsUtils.createApplicationModule(
-                            "GROMACS", "4.6.5", "GROMACS Molecular Dynamics Package"));
+                            gromacsName, "4.6.5", gromacsDescription));
             System.out.println("GROMACS Module Id " + gromacsModuleId);
 
             //Register LAMMPS
             lammpsModuleId = airavataClient.registerApplicationModule(
                     RegisterSampleApplicationsUtils.createApplicationModule(
-                            "LAMMPS", "20Mar14", "Large-scale Atomic/Molecular Massively Parallel Simulator"));
+                            lammpsName, "20Mar14", lammpsDescription));
             System.out.println("LAMMPS Module Id " + lammpsModuleId);
 
             //Register NWChem
             nwChemModuleId = airavataClient.registerApplicationModule(
                     RegisterSampleApplicationsUtils.createApplicationModule(
-                            "NWChem", "6.3", "Ab initio computational chemistry software package"));
+                            nwChemName, "6.3", nwChemDescription));
             System.out.println("NWChem Module Id " + nwChemModuleId);
 
             //Register Trinity
             trinityModuleId = airavataClient.registerApplicationModule(
                     RegisterSampleApplicationsUtils.createApplicationModule(
-                            "Trinity", "r20130225", "de novo reconstruction of transcriptomes from RNA-seq data"));
+                            trinityName, "r20130225", trinityDescription));
             System.out.println("Trinity Module Id " + trinityModuleId);
 
             //Register WRF
             wrfModuleId = airavataClient.registerApplicationModule(
                     RegisterSampleApplicationsUtils.createApplicationModule(
-                            "WRF", "3.5.1", "Weather Research and Forecasting"));
+                            wrfName, "3.5.1", wrfDescription));
             System.out.println("WRF Module Id " + wrfModuleId);
 
         } catch (TException e) {
@@ -197,63 +235,124 @@ public class RegisterSampleApplications {
         registerBigRedApps();
     }
 
-    public static void registerStampedeApps() {
+    public static void registerAppInterfaces() {
+        System.out.println("\n #### Registering Application Interfaces #### \n");
+
+        //Registering Echo
+        registerEchoInterface();
+
+        //Registering Amber
+//        registerAmberInterface();
+
+        //Registering AutoDock
+//        registerAutoDockInterface();
+
+        //Registering Espresso
+//        registerEspressoInterface();
+
+        //Registering Gromacs
+//        registerGromacsInterface();
+
+        //Registering Lammps
+//        registerLammpsInterface();
+
+        //Registering NWChem
+//        registerNWChemInterface();
+
+        //Registering Trinity
+//        registerTrinityInterface();
+
+        //Registering WRF
+//        registerWRFInterface();
+
+    }
+
+    public static void registerEchoInterface() {
+        try {
+            System.out.println("#### Registering Echo Interface #### \n");
+
+            List<String> echoModules = new ArrayList<String>();
+            echoModules.add(echoModuleId);
+
+            InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Input_to_Echo", "Hello World",
+                    DataType.STRING, null, false, null, null);
+
+            List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
+            applicationInputs.add(input1);
+
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Echoed_Output",
+                    "", DataType.STRING);
+
+            List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
+            applicationOutputs.add(output1);
+
+            echoInterfaceId = airavataClient.registerApplicationInterface(
+                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription(echoName,echoDescription,
+                            echoModules,applicationInputs,applicationOutputs));
+            System.out.println("Echo Application Interface Id " + echoInterfaceId);
+
+        } catch (TException e) {
+            e.printStackTrace();
+        }
+    }
+
+        public static void registerStampedeApps() {
         try {
             System.out.println("#### Registering Application Deployments on Stampede #### \n");
 
             //Register Echo
             String echoAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(echoModuleId, stampedeResourceId,
-                            "/bin/echo", ApplicationParallelismType.SERIAL, "Echo Testing Application"));
+                            "/bin/echo", ApplicationParallelismType.SERIAL, echoDescription));
             System.out.println("Echo on stampede deployment Id " + echoAppDeployId);
 
             //Register Amber
             String amberAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(amberModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/amber_wrapper_simple.sh", ApplicationParallelismType.MPI,
-                            "Amber Molecular Dynamics Package"));
+                            amberDescription));
             System.out.println("Amber on stampede deployment Id " + amberAppDeployId);
 
             //Register ESPRESSO
             String espressoAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(espressoModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/espresso_wrapper.sh", ApplicationParallelismType.MPI,
-                            "Nanoscale electronic-structure calculations and materials modeling"));
+                            espressoDescription));
             System.out.println("ESPRESSO on stampede deployment Id " + espressoAppDeployId);
 
             //Register GROMACS
             String gromacsAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(gromacsModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/gromacs_wrapper.sh", ApplicationParallelismType.MPI,
-                            "GROMACS Molecular Dynamics Package"));
+                            gromacsDescription));
             System.out.println("GROMACS on stampede deployment Id " + gromacsAppDeployId);
 
             //Register LAMMPS
             String lammpsAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(lammpsModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/lammps_wrapper.sh", ApplicationParallelismType.MPI,
-                            "Large-scale Atomic/Molecular Massively Parallel Simulator"));
+                            lammpsDescription));
             System.out.println("LAMMPS on stampede deployment Id " + lammpsAppDeployId);
 
             //Register NWChem
             String nwChemAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(nwChemModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/nwchem_wrapper.sh", ApplicationParallelismType.MPI,
-                            "Ab initio computational chemistry software package"));
+                            nwChemDescription));
             System.out.println("NWChem on stampede deployment Id " + nwChemAppDeployId);
 
             //Register Trinity
             String trinityAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(trinityModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/trinity_wrapper.sh", ApplicationParallelismType.MPI,
-                            "de novo reconstruction of transcriptomes from RNA-seq data"));
+                            trinityDescription));
             System.out.println("Trinity on stampede deployment Id " + trinityAppDeployId);
 
             //Register WRF
             String wrfAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(wrfModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/wrf_wrapper_3.5.1.sh", ApplicationParallelismType.MPI,
-                            "Weather Research and Forecasting"));
+                            wrfDescription));
             System.out.println("WRF on stampede deployment Id " + wrfAppDeployId);
 
         } catch (TException e) {
@@ -268,28 +367,28 @@ public class RegisterSampleApplications {
             //Register Echo
             String echoAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(echoModuleId, trestlesResourceId,
-                            "/bin/echo", ApplicationParallelismType.SERIAL, "Echo Testing Application"));
+                            "/bin/echo", ApplicationParallelismType.SERIAL, echoDescription));
             System.out.println("Echo on trestles deployment Id " + echoAppDeployId);
 
             //Register Amber
             String amberAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(amberModuleId, trestlesResourceId,
                             "/home/ogce/production/app_wrappers/amber_wrapper_simple.sh", ApplicationParallelismType.MPI,
-                            "Amber Molecular Dynamics Package"));
+                            amberDescription));
             System.out.println("Amber on trestles deployment Id " + amberAppDeployId);
 
             //Register GROMACS
             String gromacsAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(gromacsModuleId, trestlesResourceId,
                             "/home/ogce/production/app_wrappers/gromacs_wrapper.sh", ApplicationParallelismType.MPI,
-                            "GROMACS Molecular Dynamics Package"));
+                            gromacsDescription));
             System.out.println("GROMACS on trestles deployment Id " + gromacsAppDeployId);
 
             //Register LAMMPS
             String lammpsAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(lammpsModuleId, trestlesResourceId,
                             "/home/ogce/production/app_wrappers/lammps_wrapper.sh", ApplicationParallelismType.MPI,
-                            "Large-scale Atomic/Molecular Massively Parallel Simulator"));
+                            lammpsDescription));
             System.out.println("LAMMPS on trestles deployment Id " + lammpsAppDeployId);
 
         } catch (TException e) {
@@ -304,35 +403,35 @@ public class RegisterSampleApplications {
             //Register Echo
             String echoAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(echoModuleId, bigredResourceId,
-                            "/bin/echo", ApplicationParallelismType.SERIAL, "Echo Testing Application"));
+                            "/bin/echo", ApplicationParallelismType.SERIAL, echoDescription));
             System.out.println("Echo on bigredII deployment Id " + echoAppDeployId);
 
             //Register Amber
             String amberAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(amberModuleId, bigredResourceId,
                             "/N/u/cgateway/BigRed2/production/app_wrappers/amber_wrapper_simple.sh", ApplicationParallelismType.MPI,
-                            "Amber Molecular Dynamics Package"));
+                            amberDescription));
             System.out.println("Amber on bigredII deployment Id " + amberAppDeployId);
 
             //Register AutoDock
             String autoDockDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(nwChemModuleId, bigredResourceId,
                             "/N/u/cgateway/BigRed2/production/app_wrappers/auto_dock_wrapper.sh", ApplicationParallelismType.MPI,
-                            "AutoDock suite of automated docking tools"));
+                            autoDockDescription));
             System.out.println("AutoDock on bigredII deployment Id " + autoDockDeployId);
 
             //Register GROMACS
             String gromacsAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(gromacsModuleId, bigredResourceId,
                             "/N/u/cgateway/BigRed2/production/app_wrappers/gromacs_wrapper.sh", ApplicationParallelismType.MPI,
-                            "GROMACS Molecular Dynamics Package"));
+                            gromacsDescription));
             System.out.println("GROMACS on bigredII deployment Id " + gromacsAppDeployId);
 
             //Register LAMMPS
             String lammpsAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(lammpsModuleId, bigredResourceId,
                             "/N/u/cgateway/BigRed2/production/app_wrappers/lammps_wrapper.sh", ApplicationParallelismType.MPI,
-                            "Large-scale Atomic/Molecular Massively Parallel Simulator"));
+                            lammpsDescription));
             System.out.println("LAMMPS on bigredII deployment Id " + lammpsAppDeployId);
 
         } catch (TException e) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/3e151ce3/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
index f47b0aa..b0f6759 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
@@ -25,11 +25,13 @@ import org.airavata.appcatalog.cpi.AppCatalogException;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
+import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
 import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
 import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
 import org.apache.airavata.model.appcatalog.computeresource.*;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -115,7 +117,9 @@ public class RegisterSampleApplicationsUtils {
         return resourceJobManager;
     }
 
-    public static InputDataObjectType createAppInput(String inputName, String argumentName, String description, String value, org.apache.airavata.model.appcatalog.appinterface.DataType type) {
+    public static InputDataObjectType createAppInput
+            (String inputName, String value, org.apache.airavata.model.appcatalog.appinterface.DataType type,
+             String applicationArgument, boolean stdIn, String description, String metadata) {
         InputDataObjectType input = new InputDataObjectType();
 //        input.setIsEmpty(false);
         if (inputName != null) {
@@ -127,8 +131,8 @@ public class RegisterSampleApplicationsUtils {
         if (type != null) {
             input.setType(type);
         }
-        if (argumentName != null) {
-            input.setApplicationArgument(argumentName);
+        if (applicationArgument != null) {
+            input.setApplicationArgument(applicationArgument);
         }
         if (description != null) {
             input.setUserFriendlyDescription(description);
@@ -151,4 +155,18 @@ public class RegisterSampleApplicationsUtils {
         return outputDataObjectType;
     }
 
-}
+    public static ApplicationInterfaceDescription createApplicationInterfaceDescription
+            (String applicationName, String applicationDesription, List<String> applicationModules,
+            List<InputDataObjectType> applicationInputs, List<OutputDataObjectType>applicationOutputs) {
+        ApplicationInterfaceDescription applicationInterfaceDescription = new ApplicationInterfaceDescription();
+
+        applicationInterfaceDescription.setApplicationName(applicationName);
+        if (applicationDesription != null) applicationInterfaceDescription.setApplicationDesription(applicationDesription);
+        if (applicationModules != null) applicationInterfaceDescription.setApplicationModules(applicationModules);
+        if (applicationInputs != null) applicationInterfaceDescription.setApplicationInputs(applicationInputs);
+        if (applicationOutputs != null) applicationInterfaceDescription.setApplicationOutputs(applicationOutputs);
+
+        return applicationInterfaceDescription;
+    }
+
+}
\ No newline at end of file