You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ra...@apache.org on 2014/03/07 18:26:22 UTC

[2/3] git commit: Merged clients for MPI samples. AIRAVATA-1059

Merged clients for MPI samples. AIRAVATA-1059


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

Branch: refs/heads/master
Commit: 2ea8b5c415a8735f6a1b822ca10766a7cbcfb793
Parents: 21040ae 3dd2bf0
Author: raminder <ra...@apache.org>
Authored: Fri Mar 7 12:21:27 2014 -0500
Committer: raminder <ra...@apache.org>
Committed: Fri Mar 7 12:21:27 2014 -0500

----------------------------------------------------------------------
 .../airavata/api/server/AiravataAPIServer.java  |  19 +-
 .../client/samples/CreateLaunchExperiment.java  |  35 +-
 .../main/resources/airavata-client.properties   |   8 +-
 .../airavata/client/tools/DocumentCreator.java  | 158 ++++-
 modules/airavata-job-monitor/pom.xml            |   5 +
 .../job/monitor/AiravataJobStatusUpdator.java   |   5 +-
 .../monitor/impl/pull/qstat/QstatMonitor.java   |  79 ++-
 .../impl/pull/qstat/ResourceConnection.java     | 238 +------
 .../airavata/job/monitor/util/CommonUtils.java  |  20 +
 .../airavata/job/monitor/AMQPMonitorTest.java   |   4 +-
 .../airavata/job/monitor/QstatMonitorTest.java  |   3 +-
 .../main/resources/schemas/HostDescription.xsd  |   2 +
 modules/distribution/airavata-server/pom.xml    |   5 +
 .../src/main/assembly/bin-assembly.xml          |   2 +
 .../src/main/resources/conf/SLURMTemplate.xslt  |  69 +++
 .../org/apache/airavata/gfac/cpi/GFacImpl.java  |  28 +-
 .../gfac/provider/impl/GSISSHProvider.java      |   3 +-
 .../core/gfac/services/impl/BigRed2Test.java    |   7 +-
 .../gfac/services/impl/GSISSHProviderTest.java  |   3 +-
 modules/integration-tests/pom.xml               | 144 +++--
 .../apache/airavata/integration/BaseCaseIT.java | 405 ++++++------
 .../airavata/integration/ForEachCaseIT.java     |  32 +-
 .../WorkflowIntegrationTestBase.java            | 182 +++---
 .../integration/WorkflowSamplesCaseIT.java      |  23 +-
 .../src/test/resources/PBSTemplate.xslt         |  77 +++
 .../test/resources/airavata-client.properties   |  66 --
 .../src/test/resources/gfac-config.xml          |  90 +++
 .../src/test/resources/gsissh.properties        |  26 +
 .../client/OrchestratorClientFactoryTest.java   |  11 +-
 .../client/sample/OrchestratorClientSample.java |   6 +-
 .../orchestrator/core/BaseOrchestratorTest.java |   6 +-
 .../orchestrator/core/NewOrchestratorTest.java  |  18 +-
 .../registry/jpa/impl/ExperimentRegistry.java   |   6 +-
 .../jpa/resources/TaskDetailResource.java       |   2 +-
 .../xbaya/invoker/EmbeddedGFacInvoker.java      |   9 +-
 .../apache/airavata/gsi/ssh/api/Cluster.java    |  15 +-
 .../airavata/gsi/ssh/api/job/JobDescriptor.java |  25 +-
 .../ssh/api/job/JobManagerConfiguration.java    |  38 ++
 .../airavata/gsi/ssh/api/job/OutputParser.java  |  58 ++
 .../gsi/ssh/api/job/PBSJobConfiguration.java    |  93 +++
 .../gsi/ssh/api/job/PBSOutputParser.java        | 141 +++++
 .../gsi/ssh/api/job/SlurmJobConfiguration.java  |  93 +++
 .../gsi/ssh/api/job/SlurmOutputParser.java      | 106 ++++
 .../gsi/ssh/impl/GSISSHAbstractCluster.java     | 417 +++++++++++++
 .../airavata/gsi/ssh/impl/PBSCluster.java       | 617 +------------------
 .../airavata/gsi/ssh/util/CommonUtils.java      |  12 +-
 .../src/main/resources/SLURMTemplate.xslt       |  69 +++
 .../main/resources/schemas/PBSJobDescriptor.xsd |   5 +
 .../gsi/ssh/impl/DefaultSSHApiTest.java         |  88 ++-
 .../airavata/gsi/ssh/impl/VanilaSSHTest.java    |   5 +-
 .../gsissh/src/test/resources/gsissh.properties |  26 +
 51 files changed, 2169 insertions(+), 1435 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/2ea8b5c4/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
index 78ebeb9,62f0cfd..92a1c80
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
@@@ -60,8 -60,8 +60,10 @@@ public class CreateLaunchExperiment 
              AiravataUtils.setExecutionAsClient();
              final Airavata.Client airavata = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT);
              System.out.println("API version is " + airavata.GetAPIVersion());
 -            addDescriptors();
 -            final String expId = createExperimentForStampede(airavata);
 +           addDescriptors();
-             final String expId = createExperiment(airavata);
++            final String expId = createExperimentForTrestles(airavata);
++//           final String expId = createUS3ExperimentForTrestles(airavata);
++//            final String expId = createExperimentForStampede(airavata);
              System.out.println("Experiment ID : " + expId);
              launchExperiment(airavata, expId);
              System.out.println("Launched successfully");
@@@ -121,10 -121,10 +123,11 @@@
      public static void addDescriptors() throws AiravataAPIInvocationException,ApplicationSettingsException  {
          try {
              DocumentCreator documentCreator = new DocumentCreator(getAiravataAPI());
- //            documentCreator.createEchoAppLocalHostDocs();
- //            documentCreator.createEchoAppGramDocs();
-             documentCreator.createEchoAppGSISSHDocs();
- //            documentCreator.createUltrascanGSISSHDocs();
+             documentCreator.createLocalHostDocs();
+             documentCreator.createGramDocs();
+             documentCreator.createPBSDocs();
++            documentCreator.createMPIPBSDocs();
+             documentCreator.createSlurmDocs();
          } catch (AiravataAPIInvocationException e) {
              logger.error("Unable to create airavata API", e.getMessage());
              throw new AiravataAPIInvocationException(e);
@@@ -166,63 -166,12 +169,66 @@@
              output.setValue("");
              exOut.add(output);
  
-             Experiment simpleExperiment = ExperimentModelUtil.createSimpleExperiment("project1", "admin", "echoExperiment", "SimpleEcho2", "SimpleEcho2", exInputs);
+             Experiment simpleExperiment =
+                     ExperimentModelUtil.createSimpleExperiment("project1", "admin", "echoExperiment", "SimpleEcho2", "SimpleEcho2", exInputs);
              simpleExperiment.setExperimentOutputs(exOut);
  
 -            ComputationalResourceScheduling scheduling =
 -                    ExperimentModelUtil.createComputationResourceScheduling("trestles.sdsc.edu", 1, 1, 1, "normal", 0, 0, 1, "sds128");
 +            ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling("trestles.sdsc.edu", 1, 1, 1, "normal", 0, 0, 1, "uot111");
 +            scheduling.setResourceHostId("gsissh-trestles");
 +            UserConfigurationData userConfigurationData = new UserConfigurationData();
 +            userConfigurationData.setAiravataAutoSchedule(false);
 +            userConfigurationData.setOverrideManualScheduledParams(false);
 +            userConfigurationData.setComputationalResourceScheduling(scheduling);
 +            simpleExperiment.setUserConfigurationData(userConfigurationData);
 +            return client.createExperiment(simpleExperiment);
 +        } catch (AiravataSystemException e) {
 +            logger.error("Error occured while creating the experiment...", e.getMessage());
 +            throw new AiravataSystemException(e);
 +        } catch (InvalidRequestException e) {
 +            logger.error("Error occured while creating the experiment...", e.getMessage());
 +            throw new InvalidRequestException(e);
 +        } catch (AiravataClientException e) {
 +            logger.error("Error occured while creating the experiment...", e.getMessage());
 +            throw new AiravataClientException(e);
 +        }catch (TException e) {
 +            logger.error("Error occured while creating the experiment...", e.getMessage());
 +            throw new TException(e);
 +        }
 +    }
 +    
-     public static String createUS3Experiment (Airavata.Client client) throws AiravataSystemException, InvalidRequestException, AiravataClientException, TException  {
++    public static String createUS3ExperimentForTrestles (Airavata.Client client) throws AiravataSystemException, InvalidRequestException, AiravataClientException, TException  {
 +        try{
 +            List<DataObjectType> exInputs = new ArrayList<DataObjectType>();
 +            DataObjectType input = new DataObjectType();
 +            input.setKey("input");
 +            input.setType(DataType.URI.toString());
 +            input.setValue("file:///home/airavata/input/hpcinput.tar");
 +            exInputs.add(input);
 +
 +            List<DataObjectType> exOut = new ArrayList<DataObjectType>();
 +            DataObjectType output = new DataObjectType();
 +            output.setKey("output");
 +            output.setType(DataType.URI.toString());
 +            output.setValue("");
 +            DataObjectType output1 = new DataObjectType();
 +            output1.setKey("stdout");
 +            output1.setType(DataType.STD_OUT.toString());
 +            output1.setValue("");
 +            DataObjectType output2 = new DataObjectType();
 +            output2.setKey("stderr");
 +            output2.setType(DataType.STD_ERR.toString());
 +            output2.setValue("");
 +            exOut.add(output);
 +            exOut.add(output1);
 +            exOut.add(output2);
 +            
 +
 +            Experiment simpleExperiment = ExperimentModelUtil.createSimpleExperiment("project1", "admin", "US3Experiment", "UltrascanApp", "UltrascanApp", exInputs);
 +            simpleExperiment.setExperimentOutputs(exOut);
 +
 +            ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling("trestles.sdsc.edu", 2, 32, 0, "normal", 0, 0, 0, "uot111");
++
++
              scheduling.setResourceHostId("gsissh-trestles");
              UserConfigurationData userConfigurationData = new UserConfigurationData();
              userConfigurationData.setAiravataAutoSchedule(false);

http://git-wip-us.apache.org/repos/asf/airavata/blob/2ea8b5c4/airavata-api/airavata-client-sdks/java-client-samples/src/main/resources/airavata-client.properties
----------------------------------------------------------------------
diff --cc airavata-api/airavata-client-sdks/java-client-samples/src/main/resources/airavata-client.properties
index ff4de88,ff4de88..fd95cdb
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/resources/airavata-client.properties
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/resources/airavata-client.properties
@@@ -35,17 -35,17 +35,17 @@@ class.registry.accessor=org.apache.aira
  ########################Registry JPA Implementation Settings########################
  #for mysql [AiravataJPARegistry]
  #registry.jdbc.driver=com.mysql.jdbc.Driver
--#registry.jdbc.url=jdbc:mysql://localhost:3306/persistent_data
++#registry.jdbc.url=jdbc:mysql://gw111.iu.xsede.org:3306/airavata
  
  #for derby [AiravataJPARegistry]
  registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver
--registry.jdbc.url=jdbc:derby://localhost:1527/persistent_data;create=true;user=airavata;password=airavata
++registry.jdbc.url=jdbc:derby://gw111.iu.xsede.org:1530/persistent_data;create=true;user=airavata;password=airavata
  registry.jdbc.user=airavata
--registry.jdbc.password=airavata
++registry.jdbc.password=airavata12
  start.derby.server.mode=true
  
  
--validationQuery=SELECT 1 from Configuration
++validationQuery=SELECT 1 from CONFIGURATION
  jpa.connection.properties=MaxActive=10,MaxIdle=5,MinIdle=2,MaxWait=60000,testWhileIdle=true,testOnBorrow=true
  defauly.registry.user=admin
  default.registry.password=admin

http://git-wip-us.apache.org/repos/asf/airavata/blob/2ea8b5c4/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java
----------------------------------------------------------------------
diff --cc modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java
index 9fbaa5c,60c53d5..4bba2e6
--- a/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java
@@@ -304,122 -306,106 +306,218 @@@ public class DocumentCreator 
              e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
          }
      }
-     
-     public void createUltrascanGSISSHDocs() {
+ 
++    public void createMPIPBSDocs() {
 +        HostDescription host = new HostDescription(GsisshHostType.type);
 +        host.getType().setHostAddress(hpcHostAddress);
 +        host.getType().setHostName(gsiSshHostName);
++        ((GsisshHostType) host.getType()).setPort(22);
++        ((GsisshHostType) host.getType()).setInstalledPath("/opt/torque/bin/");
 +
 +        try {
 +            airavataAPI.getApplicationManager().saveHostDescription(host);
 +        } catch (AiravataAPIInvocationException e) {
 +            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
 +        }
 +        /*
 +        * Service Description creation and saving
 +        */
-         String serviceName = "UltrascanApp";
++        String serviceName = "UltrascanAPP";
 +        ServiceDescription serv = new ServiceDescription();
 +        serv.getType().setName(serviceName);
 +
 +        List<InputParameterType> inputList = new ArrayList<InputParameterType>();
 +        List<OutputParameterType> outputList = new ArrayList<OutputParameterType>();
 +
 +
 +        InputParameterType input = InputParameterType.Factory.newInstance();
 +        input.setParameterName("input");
 +        ParameterType parameterType = input.addNewParameterType();
 +        parameterType.setType(DataType.URI);
 +        parameterType.setName("URI");
 +
- //        InputParameterType input1 = InputParameterType.Factory.newInstance();
- //        input1.setParameterName("jobXML");
- //        ParameterType parameterType1 = input1.addNewParameterType();
- //        parameterType1.setType(DataType.URI);
- //        parameterType1.setName("URI");
-         
 +        OutputParameterType output = OutputParameterType.Factory.newInstance();
 +        output.setParameterName("output");
-         ParameterType parameterType2 = output.addNewParameterType();
-         parameterType2.setType(DataType.URI);
-         parameterType2.setName("URL");
++        ParameterType parameterType1 = output.addNewParameterType();
++        parameterType1.setType(DataType.URI);
++        parameterType1.setName("URI");
 +        
-         OutputParameterType stdout = OutputParameterType.Factory.newInstance();
-         stdout.setParameterName("stdout");
-         ParameterType parameterType3 = stdout.addNewParameterType();
-         parameterType3.setType(DataType.STD_OUT);
-         parameterType3.setName("String");
++        OutputParameterType output1 = OutputParameterType.Factory.newInstance();
++        output1.setParameterName("stdout");
++        ParameterType parameterType2 = output1.addNewParameterType();
++        parameterType2.setType(DataType.STD_OUT);
++        parameterType2.setName("StdOut");
 +        
-         OutputParameterType stderr = OutputParameterType.Factory.newInstance();
-         stderr.setParameterName("stderr");
-         ParameterType parameterType4 = stderr.addNewParameterType();
-         parameterType4.setType(DataType.STD_ERR);
-         parameterType4.setName("String");
++        OutputParameterType output2 = OutputParameterType.Factory.newInstance();
++        output2.setParameterName("stderr");
++        ParameterType parameterType3 = output2.addNewParameterType();
++        parameterType3.setType(DataType.STD_ERR);
++        parameterType3.setName("StdErr");
 +
 +        inputList.add(input);
 +        outputList.add(output);
- 
++        outputList.add(output1);
++        outputList.add(output2);
++        
 +        InputParameterType[] inputParamList = inputList.toArray(new InputParameterType[inputList.size()]);
 +        OutputParameterType[] outputParamList = outputList.toArray(new OutputParameterType[outputList.size()]);
 +
 +        serv.getType().setInputParametersArray(inputParamList);
 +        serv.getType().setOutputParametersArray(outputParamList);
 +        try {
 +            airavataAPI.getApplicationManager().saveServiceDescription(serv);
 +        } catch (AiravataAPIInvocationException e) {
 +            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
 +        }
 +
 +        /*
 +            Application descriptor creation and saving
 +         */
 +        ApplicationDescription appDesc = new ApplicationDescription(HpcApplicationDeploymentType.type);
 +        HpcApplicationDeploymentType app = (HpcApplicationDeploymentType) appDesc.getType();
 +        ApplicationDeploymentDescriptionType.ApplicationName name = ApplicationDeploymentDescriptionType.ApplicationName.Factory.newInstance();
-         name.setStringValue("Ultrascan");
++        name.setStringValue("UltrascanAPP");
 +        app.setApplicationName(name);
 +        ProjectAccountType projectAccountType = app.addNewProjectAccount();
 +        projectAccountType.setProjectAccountNumber("uot111");
 +
 +        QueueType queueType = app.addNewQueue();
 +        queueType.setQueueName("normal");
 +
 +        app.setCpuCount(1);
 +        app.setJobType(JobTypeType.MPI);
-         app.setNodeCount(2);
-         app.setProcessorsPerNode(64);
++        app.setNodeCount(32);
++        app.setProcessorsPerNode(2);
 +        app.setMaxWallTime(10);
 +        /*
 +           * Use bat file if it is compiled on Windows
 +           */
 +        app.setExecutableLocation("/home/us3/trestles/bin/us_mpi_analysis");
 +
 +        /*
 +           * Default tmp location
 +           */
 +        String tempDir = "/oasis/projects/nsf/uot111/us3/airavata-workdirs/";
 +        String date = (new Date()).toString();
 +        date = date.replaceAll(" ", "_");
 +        date = date.replaceAll(":", "_");
 +
 +        tempDir = tempDir + File.separator
 +                + "Ultrascan" + "_" + date + "_" + UUID.randomUUID();
 +
 +        app.setScratchWorkingDirectory(tempDir);
 +        app.setStaticWorkingDirectory(tempDir);
 +        app.setInputDataDirectory(tempDir + File.separator + "inputData");
 +        app.setOutputDataDirectory(tempDir + File.separator + "outputData");
 +        app.setStandardOutput(tempDir + File.separator + app.getApplicationName().getStringValue() + ".stdout");
 +        app.setStandardError(tempDir + File.separator + app.getApplicationName().getStringValue() + ".stderr");
 +        app.setInstalledParentPath("/opt/torque/bin/");
 +        app.setJobSubmitterCommand("/opt/mvapich2/pgi/ib/bin/mpiexec");
- 
 +        try {
 +            airavataAPI.getApplicationManager().saveApplicationDescription(serviceName, gsiSshHostName, appDesc);
 +        } catch (AiravataAPIInvocationException e) {
 +            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
 +        }
 +    }
+     public void createSlurmDocs() {
+         HostDescription host = new HostDescription(GsisshHostType.type);
+         host.getType().setHostAddress("stampede.tacc.xsede.org");
+         host.getType().setHostName("stampede-host");
+         ((GsisshHostType) host.getType()).setJobManager("slurm");
+         ((GsisshHostType) host.getType()).setPort(2222);
+ 
+ 
+         try {
+             airavataAPI.getApplicationManager().saveHostDescription(host);
+         } catch (AiravataAPIInvocationException e) {
+             e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+         }
+         /*
+         * Service Description creation and saving
+         */
+         String serviceName = "SimpleEcho3";
+         ServiceDescription serv = new ServiceDescription();
+         serv.getType().setName(serviceName);
+ 
+         List<InputParameterType> inputList = new ArrayList<InputParameterType>();
+         List<OutputParameterType> outputList = new ArrayList<OutputParameterType>();
+ 
+ 
+         InputParameterType input = InputParameterType.Factory.newInstance();
+         input.setParameterName("echo_input");
+         ParameterType parameterType = input.addNewParameterType();
+         parameterType.setType(DataType.STRING);
+         parameterType.setName("String");
+ 
+         OutputParameterType output = OutputParameterType.Factory.newInstance();
+         output.setParameterName("echo_output");
+         ParameterType parameterType1 = output.addNewParameterType();
+         parameterType1.setType(DataType.STRING);
+         parameterType1.setName("String");
+ 
+         inputList.add(input);
+         outputList.add(output);
+ 
+         InputParameterType[] inputParamList = inputList.toArray(new InputParameterType[inputList.size()]);
+         OutputParameterType[] outputParamList = outputList.toArray(new OutputParameterType[outputList.size()]);
+ 
+         serv.getType().setInputParametersArray(inputParamList);
+         serv.getType().setOutputParametersArray(outputParamList);
+         try {
+             airavataAPI.getApplicationManager().saveServiceDescription(serv);
+         } catch (AiravataAPIInvocationException e) {
+             e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+         }
+ 
+         /*
+            Application descriptor creation and saving
+         */
+         ApplicationDescription appDesc = new ApplicationDescription(HpcApplicationDeploymentType.type);
+         HpcApplicationDeploymentType app = (HpcApplicationDeploymentType) appDesc.getType();
+         ApplicationDeploymentDescriptionType.ApplicationName name = ApplicationDeploymentDescriptionType.ApplicationName.Factory.newInstance();
+         name.setStringValue("EchoLocal");
+         app.setApplicationName(name);
+         ProjectAccountType projectAccountType = app.addNewProjectAccount();
+         projectAccountType.setProjectAccountNumber("TG-STA110014S");
+ 
+         QueueType queueType = app.addNewQueue();
+         queueType.setQueueName("normal");
+ 
+         app.setCpuCount(1);
+         app.setJobType(JobTypeType.SERIAL);
+         app.setNodeCount(1);
+         app.setProcessorsPerNode(1);
+         app.setMaxWallTime(10);
+         /*
+         * Use bat file if it is compiled on Windows
+         */
+         app.setExecutableLocation("/bin/echo");
+ 
+         /*
+         * Default tmp location
+         */
+         String tempDir = "/home1/01437/ogce";
+         String date = (new Date()).toString();
+         date = date.replaceAll(" ", "_");
+         date = date.replaceAll(":", "_");
+ 
+         tempDir = tempDir + File.separator
+                 + "SimpleEcho" + "_" + date + "_" + UUID.randomUUID();
+ 
+         app.setScratchWorkingDirectory(tempDir);
+         app.setStaticWorkingDirectory(tempDir);
+         app.setInputDataDirectory(tempDir + File.separator + "inputData");
+         app.setOutputDataDirectory(tempDir + File.separator + "outputData");
+         app.setStandardOutput(tempDir + File.separator + app.getApplicationName().getStringValue() + ".stdout");
+         app.setStandardError(tempDir + File.separator + app.getApplicationName().getStringValue() + ".stderr");
+         app.setInstalledParentPath("/usr/bin/");
+ 
+         try {
+             airavataAPI.getApplicationManager().saveApplicationDescription(serviceName, "stampede-host", appDesc);
+         } catch (AiravataAPIInvocationException e) {
+             e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+         }
+     }
  
      public AiravataAPI getAiravataAPI() {
          return airavataAPI;