airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From chath...@apache.org
Subject airavata git commit: handling error scenarios from test framework and save entire error to registry - AIRAVATA-1672, AIRAVATA-1656
Date Thu, 16 Apr 2015 19:51:47 GMT
Repository: airavata
Updated Branches:
  refs/heads/master 4e3fde8f7 -> 49deda555


handling error scenarios from test framework and save entire error to registry - AIRAVATA-1672, AIRAVATA-1656


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

Branch: refs/heads/master
Commit: 49deda55540739922f822b5a7afb5ea8dfc3c74b
Parents: 4e3fde8
Author: Chathuri Wimalasena <kamalasini@gmail.com>
Authored: Thu Apr 16 15:51:40 2015 -0400
Committer: Chathuri Wimalasena <kamalasini@gmail.com>
Committed: Thu Apr 16 15:51:40 2015 -0400

----------------------------------------------------------------------
 .../gfac/bes/handlers/AbstractSMSHandler.java   |   6 +-
 .../airavata/gfac/core/cpi/BetterGfacImpl.java  |   6 +-
 .../gfac/core/utils/OutHandlerWorker.java       |   7 +-
 .../handler/GSISSHDirectorySetupHandler.java    |   6 +-
 .../gsissh/provider/impl/GSISSHProvider.java    |   6 +-
 .../ssh/handler/AdvancedSCPInputHandler.java    |   6 +-
 .../ssh/handler/AdvancedSCPOutputHandler.java   |  10 +-
 .../gfac/ssh/handler/NewSSHOutputHandler.java   |   6 +-
 .../ssh/handler/SSHDirectorySetupHandler.java   |  10 +-
 .../gfac/ssh/handler/SSHInputHandler.java       |  11 +-
 .../gfac/ssh/handler/SSHOutputHandler.java      |  11 +-
 .../gfac/ssh/provider/impl/SSHProvider.java     |  13 +-
 .../airavata/gfac/ssh/util/GFACSSHUtils.java    |   6 +-
 .../ExperimentExecution.java                    | 200 ++++++++++++++++---
 .../FrameworkBootstrapping.java                 |   2 +-
 .../TestFrameworkProps.java                     |  18 ++
 .../utils/TestFrameworkConstants.java           |  10 +
 .../src/main/resources/test-framework.json      |  17 +-
 18 files changed, 291 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/AbstractSMSHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/AbstractSMSHandler.java b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/AbstractSMSHandler.java
index a21706e..77057ee 100644
--- a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/AbstractSMSHandler.java
+++ b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/AbstractSMSHandler.java
@@ -21,6 +21,8 @@
 
 package org.apache.airavata.gfac.bes.handlers;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.Properties;
 
 import org.airavata.appcatalog.cpi.AppCatalogException;
@@ -116,7 +118,9 @@ public abstract class AbstractSMSHandler implements BESConstants, GFacHandler{
 	    }catch (Exception e) {
         	log.error(e.getMessage());
             try {
-				GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                StringWriter errors = new StringWriter();
+                e.printStackTrace(new PrintWriter(errors));
+				GFacUtils.saveErrorDetails(jobExecutionContext, errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
             } catch (GFacException e1) {
 				 log.error(e1.getLocalizedMessage());
             }  

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
index 30b76ff..839e25f 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
@@ -71,6 +71,8 @@ import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.xpath.XPathExpressionException;
 import java.io.File;
 import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.net.URL;
 import java.util.*;
 
@@ -209,7 +211,9 @@ public class BetterGfacImpl implements GFac,Watcher {
             return submitJob(jobExecutionContext);
         } catch (Exception e) {
             log.error("Error inovoking the job with experiment ID: " + experimentID);
-            GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR );
+            StringWriter errors = new StringWriter();
+            e.printStackTrace(new PrintWriter(errors));
+            GFacUtils.saveErrorDetails(jobExecutionContext, errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR );
             throw new GFacException(e);
         }
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/OutHandlerWorker.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/OutHandlerWorker.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/OutHandlerWorker.java
index 143bb8c..25905e4 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/OutHandlerWorker.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/OutHandlerWorker.java
@@ -33,6 +33,9 @@ import org.apache.airavata.model.workspace.experiment.TaskState;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
 public class OutHandlerWorker implements Runnable {
     private final static Logger logger = LoggerFactory.getLogger(OutHandlerWorker.class);
 
@@ -66,7 +69,9 @@ public class OutHandlerWorker implements Runnable {
             //FIXME this is a case where the output retrieving fails even if the job execution was a success. Thus updating the task status
             monitorPublisher.publish(new TaskStatusChangeRequestEvent(TaskState.FAILED, taskIdentifier));
             try {
-                GFacUtils.saveErrorDetails(monitorID.getJobExecutionContext(),  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                StringWriter errors = new StringWriter();
+                e.printStackTrace(new PrintWriter(errors));
+                GFacUtils.saveErrorDetails(monitorID.getJobExecutionContext(),  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
             } catch (GFacException e1) {
                 logger.error("Error while persisting error details", e);
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java
index 3d60d6d..26547b5 100644
--- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java
+++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java
@@ -33,6 +33,8 @@ import org.apache.airavata.registry.cpi.ChildDataType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.Properties;
 
 public class GSISSHDirectorySetupHandler extends AbstractRecoverableHandler {
@@ -46,7 +48,9 @@ public class GSISSHDirectorySetupHandler extends AbstractRecoverableHandler {
             }
         } catch (Exception e) {
         	 try {
-  				GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                 StringWriter errors = new StringWriter();
+                 e.printStackTrace(new PrintWriter(errors));
+  				GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
   			} catch (GFacException e1) {
   				 log.error(e1.getLocalizedMessage());
   			}

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
index 99a9e77..c7ad986 100644
--- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
+++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
@@ -55,6 +55,8 @@ import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.List;
 import java.util.Map;
 
@@ -132,7 +134,9 @@ public class GSISSHProvider extends AbstractRecoverableProvider {
             log.error(error);
             jobDetails.setJobID("none");
             GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.FAILED);
-            GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+            StringWriter errors = new StringWriter();
+            e.printStackTrace(new PrintWriter(errors));
+            GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
             throw new GFacProviderException(error, e);
         } finally {
             log.info("Saving data for future recovery: ");

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPInputHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPInputHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPInputHandler.java
index a300063..2fae3d5 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPInputHandler.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPInputHandler.java
@@ -41,6 +41,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.*;
@@ -200,7 +202,9 @@ public class AdvancedSCPInputHandler extends AbstractRecoverableHandler {
         } catch (Exception e) {
             log.error(e.getMessage());
             try {
-                GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                StringWriter errors = new StringWriter();
+                e.printStackTrace(new PrintWriter(errors));
+                GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
             } catch (GFacException e1) {
                 log.error(e1.getLocalizedMessage());
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java
index d1739c5..fac03e8 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java
@@ -42,6 +42,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.*;
@@ -108,7 +110,9 @@ public class AdvancedSCPOutputHandler extends AbstractHandler {
                 } catch (ApplicationSettingsException e) {
                     log.error(e.getMessage());
                     try {
-         				GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                        StringWriter errors = new StringWriter();
+                        e.printStackTrace(new PrintWriter(errors));
+         				GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
          			} catch (GFacException e1) {
          				 log.error(e1.getLocalizedMessage());
          			}
@@ -189,7 +193,9 @@ public class AdvancedSCPOutputHandler extends AbstractHandler {
            registry.add(ChildDataType.EXPERIMENT_OUTPUT, outputArray, jobExecutionContext.getExperimentID());
         } catch (SSHApiException e) {
             try {
-				GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                StringWriter errors = new StringWriter();
+                e.printStackTrace(new PrintWriter(errors));
+				GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
 			} catch (GFacException e1) {
 				 log.error(e1.getLocalizedMessage());
 			}

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/NewSSHOutputHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/NewSSHOutputHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/NewSSHOutputHandler.java
index 5a64521..f7efb34 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/NewSSHOutputHandler.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/NewSSHOutputHandler.java
@@ -1,5 +1,7 @@
 package org.apache.airavata.gfac.ssh.handler;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.List;
 import java.util.Properties;
 
@@ -42,7 +44,9 @@ public class NewSSHOutputHandler extends AbstractHandler{
 	        } catch (Exception e) {
 	            log.error(e.getMessage());
 	            try {
-	                GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                    StringWriter errors = new StringWriter();
+                    e.printStackTrace(new PrintWriter(errors));
+	                GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
 	            } catch (GFacException e1) {
 	                log.error(e1.getLocalizedMessage());
 	            }

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHDirectorySetupHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHDirectorySetupHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHDirectorySetupHandler.java
index 6ba4f75..5c0d1f8 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHDirectorySetupHandler.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHDirectorySetupHandler.java
@@ -33,6 +33,8 @@ import org.apache.airavata.registry.cpi.ChildDataType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.Properties;
 
 public class SSHDirectorySetupHandler extends AbstractHandler {
@@ -47,7 +49,9 @@ public class SSHDirectorySetupHandler extends AbstractHandler {
         } catch (Exception e) {
             log.error(e.getMessage());
             try {
- 				GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                StringWriter errors = new StringWriter();
+                e.printStackTrace(new PrintWriter(errors));
+ 				GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
  			} catch (GFacException e1) {
  				 log.error(e1.getLocalizedMessage());
  			}
@@ -92,7 +96,9 @@ public class SSHDirectorySetupHandler extends AbstractHandler {
             detail.setTransferDescription("Working directory = " + jobExecutionContext.getWorkingDir());
             try {
                 registry.add(ChildDataType.DATA_TRANSFER_DETAIL, detail, jobExecutionContext.getTaskData().getTaskID());
-                GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE);
+                StringWriter errors = new StringWriter();
+                e.printStackTrace(new PrintWriter(errors));
+                GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE);
             } catch (Exception e1) {
                 throw new GFacHandlerException("Error persisting status", e1, e1.getLocalizedMessage());
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHInputHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHInputHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHInputHandler.java
index 13090eb..27471d4 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHInputHandler.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHInputHandler.java
@@ -39,6 +39,8 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
@@ -51,6 +53,7 @@ public class SSHInputHandler extends AbstractHandler {
 
     public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException {
         DataTransferDetails detail = new DataTransferDetails();
+        detail.setTransferDescription("Input Data Staging");
         TransferStatus status = new TransferStatus();
         int index = 0;
         int oldIndex = 0;
@@ -67,7 +70,9 @@ public class SSHInputHandler extends AbstractHandler {
                 } catch (ApplicationSettingsException e) {
                     log.error(e.getMessage());
                     try {
-         				GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                        StringWriter errors = new StringWriter();
+                        e.printStackTrace(new PrintWriter(errors));
+         				GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
          			} catch (GFacException e1) {
          				 log.error(e1.getLocalizedMessage());
          			}
@@ -136,7 +141,9 @@ public class SSHInputHandler extends AbstractHandler {
             status.setTransferState(TransferState.FAILED);
             detail.setTransferStatus(status);
             try {
-                GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE);
+                StringWriter errors = new StringWriter();
+                e.printStackTrace(new PrintWriter(errors));
+                GFacUtils.saveErrorDetails(jobExecutionContext, errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE);
                 registry.add(ChildDataType.DATA_TRANSFER_DETAIL, detail, jobExecutionContext.getTaskData().getTaskID());
             } catch (Exception e1) {
                 throw new GFacHandlerException("Error persisting status", e1, e1.getLocalizedMessage());

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
index 1210c83..9b7cd2e 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
@@ -43,6 +43,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -61,7 +63,9 @@ public class SSHOutputHandler extends AbstractHandler {
         } catch (Exception e) {
             log.error(e.getMessage());
             try {
-                GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                StringWriter errors = new StringWriter();
+                e.printStackTrace(new PrintWriter(errors));
+                GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
             } catch (GFacException e1) {
                 log.error(e1.getLocalizedMessage());
             }
@@ -70,6 +74,7 @@ public class SSHOutputHandler extends AbstractHandler {
 
         super.invoke(jobExecutionContext);
         DataTransferDetails detail = new DataTransferDetails();
+        detail.setTransferDescription("Output data staging");
         TransferStatus status = new TransferStatus();
 
         Cluster cluster = null;
@@ -227,7 +232,9 @@ public class SSHOutputHandler extends AbstractHandler {
                 status.setTransferState(TransferState.FAILED);
                 detail.setTransferStatus(status);
                 registry.add(ChildDataType.DATA_TRANSFER_DETAIL, detail, jobExecutionContext.getTaskData().getTaskID());
-                GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE);
+                StringWriter errors = new StringWriter();
+                e.printStackTrace(new PrintWriter(errors));
+                GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE);
             } catch (Exception e1) {
                 throw new GFacHandlerException("Error persisting status", e1, e1.getLocalizedMessage());
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
index 70fec1f..54d9c10 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
@@ -63,10 +63,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import sun.reflect.generics.reflectiveObjects.NotImplementedException;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
+import java.io.*;
 import java.util.*;
 
 /**
@@ -234,14 +231,18 @@ public class SSHProvider extends AbstractProvider {
                 log.error(error);
                 jobDetails.setJobID("none");
                 GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.FAILED);
-                GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                StringWriter errors = new StringWriter();
+                e.printStackTrace(new PrintWriter(errors));
+                GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
                 throw new GFacProviderException(error, e);
             } catch (Exception e) {
                 String error = "Error submitting the job to host " + jobExecutionContext.getHostName() + " message: " + e.getMessage();
                 log.error(error);
                 jobDetails.setJobID("none");
                 GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.FAILED);
-                GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                StringWriter errors = new StringWriter();
+                e.printStackTrace(new PrintWriter(errors));
+                GFacUtils.saveErrorDetails(jobExecutionContext,  errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
                 throw new GFacProviderException(error, e);
             }
             // we know this host is type GsiSSHHostType

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/GFACSSHUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/GFACSSHUtils.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/GFACSSHUtils.java
index f4b3387..e810302 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/GFACSSHUtils.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/GFACSSHUtils.java
@@ -58,6 +58,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.*;
 
 public class GFACSSHUtils {
@@ -504,7 +506,9 @@ public class GFACSSHUtils {
             } catch (ApplicationSettingsException e) {
                 logger.error(e.getMessage());
                 try {
-                    GFacUtils.saveErrorDetails(jobExecutionContext,  e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
+                    StringWriter errors = new StringWriter();
+                    e.printStackTrace(new PrintWriter(errors));
+                    GFacUtils.saveErrorDetails(jobExecutionContext, errors.toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
                 } catch (GFacException e1) {
                     logger.error(e1.getLocalizedMessage());
                 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ExperimentExecution.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ExperimentExecution.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ExperimentExecution.java
index 17afc0b..770b2f3 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ExperimentExecution.java
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ExperimentExecution.java
@@ -29,6 +29,7 @@ import org.apache.airavata.messaging.core.MessagingConstants;
 import org.apache.airavata.messaging.core.impl.RabbitMQStatusConsumer;
 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.error.AiravataClientException;
 import org.apache.airavata.model.error.AiravataSystemException;
 import org.apache.airavata.model.error.InvalidRequestException;
@@ -261,9 +262,9 @@ public class ExperimentExecution {
                         TBase messageEvent = message.getEvent();
                         byte[] bytes = ThriftUtils.serializeThriftObject(messageEvent);
                         ThriftUtils.createThriftFromBytes(bytes, event);
-                        System.out.println(" Job ID : '" + event.getJobIdentity().getJobId()
-                                + "' with state : '" + event.getState().toString() +
-                                " for Gateway " + event.getJobIdentity().getGatewayId());
+//                        System.out.println(" Job ID : '" + event.getJobIdentity().getJobId()
+//                                + "' with state : '" + event.getState().toString() +
+//                                " for Gateway " + event.getJobIdentity().getGatewayId());
 //                        resultWriter.println("Job Status : " + event.getState().toString());
 
                     } catch (TException e) {
@@ -281,6 +282,144 @@ public class ExperimentExecution {
         return dateFormat.format(cal.getTime());
     }
 
+    public void createAmberWithErrorInputs (String gatewayId,
+                                            String token,
+                                            String projectId,
+                                            String hostId,
+                                            String appId) throws Exception {
+        try {
+            List<InputDataObjectType> applicationInputs = airavata.getApplicationInputs(appId);
+            List<OutputDataObjectType> appOutputs = airavata.getApplicationOutputs(appId);
+            TestFrameworkProps.Error[] errors = properties.getErrors();
+            for (TestFrameworkProps.Error error : errors) {
+                String name = error.getName();
+                String hostName = error.getResoureName();
+                if (name.equals(TestFrameworkConstants.ErrorTypeConstants.BADINPUTS)) {
+                    if (error.getApplication().equals(TestFrameworkConstants.AppcatalogConstants.AMBER_APP_NAME)) {
+                        Map<String, String> userGivenErrorInputs = error.getErrorFeeds();
+                        for (String inputName : userGivenErrorInputs.keySet()) {
+                            for (InputDataObjectType inputDataObjectType : applicationInputs) {
+                                if (inputDataObjectType.getName().equalsIgnoreCase(inputName)) {
+                                    inputDataObjectType.setValue(userGivenErrorInputs.get(inputName));
+                                }
+                            }
+                        }
+                        Experiment simpleExperiment =
+                                ExperimentModelUtil.createSimpleExperiment(projectId, testUser, "AmberErrorInputs", "Amber Experiment run", appId, applicationInputs);
+                        simpleExperiment.setExperimentOutputs(appOutputs);
+                        String experimentId;
+                        if (hostName.equals(TestFrameworkConstants.AppcatalogConstants.TRESTLES_RESOURCE_NAME)) {
+                            ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(hostId, 4, 1, 1, "normal", 20, 0, 1, null);
+                            UserConfigurationData userConfigurationData = new UserConfigurationData();
+                            userConfigurationData.setAiravataAutoSchedule(false);
+                            userConfigurationData.setOverrideManualScheduledParams(false);
+                            userConfigurationData.setComputationalResourceScheduling(scheduling);
+                            simpleExperiment.setUserConfigurationData(userConfigurationData);
+                            experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
+                            experimentsWithTokens.put(experimentId, token);
+                            experimentsWithGateway.put(experimentId, gatewayId);
+                        } else if (hostName.equals(TestFrameworkConstants.AppcatalogConstants.STAMPEDE_RESOURCE_NAME)) {
+                            ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(hostId, 4, 1, 1, "normal", 20, 0, 1, null);
+                            UserConfigurationData userConfigurationData = new UserConfigurationData();
+                            userConfigurationData.setAiravataAutoSchedule(false);
+                            userConfigurationData.setOverrideManualScheduledParams(false);
+                            userConfigurationData.setComputationalResourceScheduling(scheduling);
+                            simpleExperiment.setUserConfigurationData(userConfigurationData);
+                            experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
+                            experimentsWithTokens.put(experimentId, token);
+                            experimentsWithGateway.put(experimentId, gatewayId);
+                        } else if (hostName.equals(TestFrameworkConstants.AppcatalogConstants.BR2_RESOURCE_NAME)) {
+                            ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(hostId, 4, 1, 1, "normal", 20, 0, 1, null);
+                            UserConfigurationData userConfigurationData = new UserConfigurationData();
+                            userConfigurationData.setAiravataAutoSchedule(false);
+                            userConfigurationData.setOverrideManualScheduledParams(false);
+                            userConfigurationData.setComputationalResourceScheduling(scheduling);
+                            simpleExperiment.setUserConfigurationData(userConfigurationData);
+                            experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
+                            experimentsWithTokens.put(experimentId, token);
+                            experimentsWithGateway.put(experimentId, gatewayId);
+                        }
+
+                    }
+                }
+            }
+
+        } catch (Exception e) {
+            logger.error("Error occured while creating amber experiment with bad inputs", e);
+            throw new Exception("Error occured while creating amber experiment with bad inputs", e);
+        }
+    }
+
+    public void createAmberWithErrorUserConfig (String gatewayId,
+                                            String token,
+                                            String projectId,
+                                            String appId,
+                                            String hostId) throws Exception {
+        try {
+
+            TestFrameworkProps.Error[] errors = properties.getErrors();
+            for (TestFrameworkProps.Error error : errors) {
+                String name = error.getName();
+                String hostName = error.getResoureName();
+                if (name.equals(TestFrameworkConstants.ErrorTypeConstants.ERROR_CONFIG)) {
+                    if (error.getApplication().equals(TestFrameworkConstants.AppcatalogConstants.AMBER_APP_NAME)) {
+                        List<InputDataObjectType> applicationInputs = airavata.getApplicationInputs(appId);
+                        List<OutputDataObjectType> appOutputs = airavata.getApplicationOutputs(appId);
+                        TestFrameworkProps.Application[] applications = properties.getApplications();
+                        Map<String, String> userGivenAmberInputs = new HashMap<>();
+                        for (TestFrameworkProps.Application application : applications) {
+                            if (application.getName().equals(TestFrameworkConstants.AppcatalogConstants.AMBER_APP_NAME)) {
+                                userGivenAmberInputs = application.getInputs();
+                            }
+                        }
+                        for (String inputName : userGivenAmberInputs.keySet()) {
+                            for (InputDataObjectType inputDataObjectType : applicationInputs) {
+                                if (inputDataObjectType.getName().equalsIgnoreCase(inputName)) {
+                                    inputDataObjectType.setValue(userGivenAmberInputs.get(inputName));
+                                }
+                            }
+                        }
+                        Map<String, String> errorConfigs = error.getErrorFeeds();
+                        String allocationProject = null;
+                        String queueName = null;
+                        Integer walltime = 0;
+                        String host = null;
+                        for (String configName : errorConfigs.keySet()) {
+                            if (configName.equals(TestFrameworkConstants.ErrorTypeConstants.ALLOCATION_PROJECT)) {
+                                allocationProject = errorConfigs.get(configName);
+                            } else if (configName.equals(TestFrameworkConstants.ErrorTypeConstants.QUEUE_NAME)) {
+                                queueName = errorConfigs.get(configName);
+                            } else if (configName.equals(TestFrameworkConstants.ErrorTypeConstants.WALLTIME)) {
+                                walltime = Integer.valueOf(errorConfigs.get(configName));
+                            } else if (configName.equals(TestFrameworkConstants.ErrorTypeConstants.HOST_NAME)) {
+                                host = errorConfigs.get(configName);
+                            }
+                        }
+
+                        Experiment simpleExperiment =
+                                ExperimentModelUtil.createSimpleExperiment(projectId, testUser, "AmberErrorInputs", "Amber Experiment run", appId, applicationInputs);
+                        simpleExperiment.setExperimentOutputs(appOutputs);
+                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(hostId, 4, 1, 1, queueName, walltime, 0, 1, allocationProject);
+                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        userConfigurationData.setAiravataAutoSchedule(false);
+                        userConfigurationData.setOverrideManualScheduledParams(false);
+                        userConfigurationData.setComputationalResourceScheduling(scheduling);
+
+                        simpleExperiment.setUserConfigurationData(userConfigurationData);
+                        String experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
+                        experimentsWithTokens.put(experimentId, token);
+                        experimentsWithGateway.put(experimentId, gatewayId);
+
+                    }
+                }
+            }
+
+        } catch (Exception e) {
+            logger.error("Error occured while creating amber experiment with bad inputs", e);
+            throw new Exception("Error occured while creating amber experiment with bad inputs", e);
+        }
+    }
+
     public void createAmberExperiment () throws Exception{
         try {
             TestFrameworkProps.Application[] applications = properties.getApplications();
@@ -320,35 +459,36 @@ public class ExperimentExecution {
                             for (String id : computeResources.keySet()) {
                                 String resourceName = computeResources.get(id);
                                 if (resourceName.equals(TestFrameworkConstants.AppcatalogConstants.TRESTLES_RESOURCE_NAME)) {
-                                    ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
-                                    UserConfigurationData userConfigurationData = new UserConfigurationData();
-                                    userConfigurationData.setAiravataAutoSchedule(false);
-                                    userConfigurationData.setOverrideManualScheduledParams(false);
-                                    userConfigurationData.setComputationalResourceScheduling(scheduling);
-                                    simpleExperiment.setUserConfigurationData(userConfigurationData);
-                                    experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
-                                    experimentsWithTokens.put(experimentId, token);
-                                    experimentsWithGateway.put(experimentId, gatewayId);
+//                                    ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
+//                                    UserConfigurationData userConfigurationData = new UserConfigurationData();
+//                                    userConfigurationData.setAiravataAutoSchedule(false);
+//                                    userConfigurationData.setOverrideManualScheduledParams(false);
+//                                    userConfigurationData.setComputationalResourceScheduling(scheduling);
+//                                    simpleExperiment.setUserConfigurationData(userConfigurationData);
+//                                    experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
+//                                    experimentsWithTokens.put(experimentId, token);
+//                                    experimentsWithGateway.put(experimentId, gatewayId);
                                 }else if (resourceName.equals(TestFrameworkConstants.AppcatalogConstants.STAMPEDE_RESOURCE_NAME)) {
-                                    ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
-                                    UserConfigurationData userConfigurationData = new UserConfigurationData();
-                                    userConfigurationData.setAiravataAutoSchedule(false);
-                                    userConfigurationData.setOverrideManualScheduledParams(false);
-                                    userConfigurationData.setComputationalResourceScheduling(scheduling);
-                                    simpleExperiment.setUserConfigurationData(userConfigurationData);
-                                    experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
-                                    experimentsWithTokens.put(experimentId, token);
-                                    experimentsWithGateway.put(experimentId, gatewayId);
+//                                    ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
+//                                    UserConfigurationData userConfigurationData = new UserConfigurationData();
+//                                    userConfigurationData.setAiravataAutoSchedule(false);
+//                                    userConfigurationData.setOverrideManualScheduledParams(false);
+//                                    userConfigurationData.setComputationalResourceScheduling(scheduling);
+//                                    simpleExperiment.setUserConfigurationData(userConfigurationData);
+//                                    experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
+//                                    experimentsWithTokens.put(experimentId, token);
+//                                    experimentsWithGateway.put(experimentId, gatewayId);
+                                    createAmberWithErrorInputs(gatewayId, token, projectID, id, appId);
                                 } else if (resourceName.equals(TestFrameworkConstants.AppcatalogConstants.BR2_RESOURCE_NAME)) {
-                                    ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
-                                    UserConfigurationData userConfigurationData = new UserConfigurationData();
-                                    userConfigurationData.setAiravataAutoSchedule(false);
-                                    userConfigurationData.setOverrideManualScheduledParams(false);
-                                    userConfigurationData.setComputationalResourceScheduling(scheduling);
-                                    simpleExperiment.setUserConfigurationData(userConfigurationData);
-                                    experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
-                                    experimentsWithTokens.put(experimentId, token);
-                                    experimentsWithGateway.put(experimentId, gatewayId);
+//                                    ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
+//                                    UserConfigurationData userConfigurationData = new UserConfigurationData();
+//                                    userConfigurationData.setAiravataAutoSchedule(false);
+//                                    userConfigurationData.setOverrideManualScheduledParams(false);
+//                                    userConfigurationData.setComputationalResourceScheduling(scheduling);
+//                                    simpleExperiment.setUserConfigurationData(userConfigurationData);
+//                                    experimentId = airavata.createExperiment(gatewayId, simpleExperiment);
+//                                    experimentsWithTokens.put(experimentId, token);
+//                                    experimentsWithGateway.put(experimentId, gatewayId);
                                 }
                             }
                         }

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkBootstrapping.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkBootstrapping.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkBootstrapping.java
index 002f316..6691e48 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkBootstrapping.java
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkBootstrapping.java
@@ -75,7 +75,7 @@ public class FrameworkBootstrapping {
             }else if (expExec){
                 tokens = readTokens();
                 experimentExecution = new ExperimentExecution(setup.getAiravata(), tokens, setup.getTestFrameworkProps());
-                experimentExecution.createEchoExperiment();
+//                experimentExecution.createEchoExperiment();
                 experimentExecution.createAmberExperiment();
                 experimentExecution.launchExperiments();
                 experimentExecution.monitorExperiments();

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/TestFrameworkProps.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/TestFrameworkProps.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/TestFrameworkProps.java
index c9b06bc..158a2ec 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/TestFrameworkProps.java
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/TestFrameworkProps.java
@@ -36,6 +36,7 @@ public class TestFrameworkProps {
     private String tokenFileLoc;
     private String resultFileLoc;
     private String skippedGateways;
+    private boolean injectErrors;
     private Resource[] resources;
     private Application[] applications;
     private Error[] errors;
@@ -163,6 +164,14 @@ public class TestFrameworkProps {
         this.errors = errors;
     }
 
+    public boolean isInjectErrors() {
+        return injectErrors;
+    }
+
+    public void setInjectErrors(boolean injectErrors) {
+        this.injectErrors = injectErrors;
+    }
+
     public class Resource {
         private String name;
         private String loginUser;
@@ -214,11 +223,20 @@ public class TestFrameworkProps {
     public class Error {
         private String name;
         private String application;
+        private String resoureName;
         private Map<String, String> errorFeeds;
 
         public Error() {
         }
 
+        public String getResoureName() {
+            return resoureName;
+        }
+
+        public void setResoureName(String resoureName) {
+            this.resoureName = resoureName;
+        }
+
         public String getName() {
             return name;
         }

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/TestFrameworkConstants.java
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/TestFrameworkConstants.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/TestFrameworkConstants.java
index 7376f7a..8fc2b28 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/TestFrameworkConstants.java
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/TestFrameworkConstants.java
@@ -54,6 +54,16 @@ public class TestFrameworkConstants {
         public static final String TEST_PROJECT = "test.project";
     }
 
+    public static final class ErrorTypeConstants {
+        public static final String BADINPUTS = "badinputs";
+        public static final String ERROR_CONFIG = "error.configuration";
+        public static final String ALLOCATION_PROJECT = "projectId";
+        public static final String QUEUE_NAME = "queueName";
+        public static final String WALLTIME = "walltime";
+        public static final String HOST_NAME = "hostName";
+
+    }
+
     public static final class GatewayConstants {
         public static final String GENERIC_GATEWAY_NAME = "generic.gateway.name";
         public static final String GENERIC_GATEWAY_DOMAIN = "generic.gateway.domain";

http://git-wip-us.apache.org/repos/asf/airavata/blob/49deda55/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.json
----------------------------------------------------------------------
diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.json b/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.json
index 50288a7..b160666 100644
--- a/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.json
+++ b/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.json
@@ -4,13 +4,14 @@
     "gdomain": ".airavata.org",
     "testUserName": "testUser",
     "testProjectName": "test.project",
-    "sshPubKeyLoc": "/Users/chathuri/.ssh/id_dsa.pub",
-    "sshPrivateKeyLoc": "/Users/chathuri/.ssh/id_dsa",
-    "sshPassword": "",
+    "sshPubKeyLoc": "/Users/chathuri/Desktop/ssh_gw111/id_rsa.pub",
+    "sshPrivateKeyLoc": "/Users/chathuri/Desktop/ssh_gw111/id_rsa",
+    "sshPassword": "ultrascan",
     "sshUsername": "ogce",
     "tokenFileLoc": "/tmp/",
     "resultFileLoc": "/tmp/test_framework_results/",
     "skippedGateways": "default,php_reference_gateway,ultrascan,umass",
+    "injectErrors" : true,
     "resources": [
         {
             "name": "trestles.sdsc.xsede.org",
@@ -24,7 +25,7 @@
         },
         {
             "name": "bigred2.uits.iu.edu",
-            "loginUser": "cpelikan"
+            "loginUser": "cgateway"
 
         }
     ],
@@ -42,15 +43,17 @@
         {
             "name": "badinputs",
             "application": "amber_sander",
+            "resoureName": "stampede.tacc.xsede.org",
             "errorFeeds": {
-                "heatRst": "/Users/chathuri/dev/airavata/source/php/inputs/AMBER_FILES/02_Heat.rst",
-                "prodIn": "/Users/chathuri/dev/airavata/source/php/inputs/AMBER_FILES/03_Prod.in",
-                "prmtop": "/Users/chathuri/dev/airavata/source/php/inputs/AMBER_FILES/prmtop"
+                "heatRst": "/Users/chathuri/dev/airavata/source/php/inputs/AMBER_FILES1/02_Heat.rst",
+                "prodIn": "/Users/chathuri/dev/airavata/source/php/inputs/AMBER_FILES1/03_Prod.in",
+                "prmtop": "/Users/chathuri/dev/airavata/source/php/inputs/AMBER_FILES1/prmtop"
             }
         },
         {
             "name": "error.configuration",
             "application": "amber_sander",
+            "resoureName": "stampede.tacc.xsede.org",
             "errorFeeds": {
                 "projectId": "sds128",
                 "queueName": "normal",


Mime
View raw message