Repository: airavata Updated Branches: refs/heads/master 2710f99ab -> 4e3fde8f7
save detailed error when saving error details, convert testframework.properties to json - 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/4e3fde8f Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/4e3fde8f Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/4e3fde8f Branch: refs/heads/master Commit: 4e3fde8f7f30f10a93c19a7fcdd7ae394bdd2888 Parents: 2710f99 Author: Chathuri Wimalasena <[email protected]> Authored: Wed Apr 15 15:11:40 2015 -0400 Committer: Chathuri Wimalasena <[email protected]> Committed: Wed Apr 15 15:11:40 2015 -0400 ---------------------------------------------------------------------- .../gfac/bes/handlers/AbstractSMSHandler.java | 2 +- .../airavata/gfac/core/cpi/BetterGfacImpl.java | 14 +- .../gfac/core/utils/OutHandlerWorker.java | 2 +- .../handler/GSISSHDirectorySetupHandler.java | 6 +- .../gfac/gsissh/handler/GSISSHInputHandler.java | 4 +- .../gsissh/handler/GSISSHOutputHandler.java | 4 +- .../gsissh/handler/NewGSISSHOutputHandler.java | 4 +- .../gsissh/provider/impl/GSISSHProvider.java | 6 +- .../ssh/handler/AdvancedSCPInputHandler.java | 2 +- .../ssh/handler/AdvancedSCPOutputHandler.java | 6 +- .../gfac/ssh/handler/NewSSHOutputHandler.java | 2 +- .../ssh/handler/SSHDirectorySetupHandler.java | 5 +- .../gfac/ssh/handler/SSHInputHandler.java | 4 +- .../gfac/ssh/handler/SSHOutputHandler.java | 4 +- .../gfac/ssh/provider/impl/SSHProvider.java | 8 +- .../airavata/gfac/ssh/util/GFACSSHUtils.java | 2 +- .../gfac.cpi.service.thrift | 3 +- .../registry/jpa/impl/ExperimentRegistry.java | 4 + .../jpa/resources/ErrorDetailResource.java | 5 +- .../registry/jpa/resources/Utils.java | 4 +- .../test-suite/multi-tenanted-airavata/pom.xml | 5 + .../ApplicationRegister.java | 10 +- .../ComputeResourceRegister.java | 31 +-- .../ExperimentExecution.java | 58 +++-- .../FrameworkBootstrapping.java | 10 +- .../multitenantedairavata/FrameworkSetup.java | 39 +++- .../multitenantedairavata/GatewayRegister.java | 24 +- .../TestFrameworkProps.java | 222 +++++++++++++++++++ .../utils/FrameworkUtils.java | 16 +- .../utils/PropertyFileType.java | 4 +- .../utils/PropertyReader.java | 8 - .../utils/TestFrameworkConstants.java | 1 + .../src/main/resources/test-framework.json | 63 ++++++ .../src/main/resources/test-framework.yaml | 49 ++++ 34 files changed, 496 insertions(+), 135 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/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 c1c13be..a21706e 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 @@ -116,7 +116,7 @@ public abstract class AbstractSMSHandler implements BESConstants, GFacHandler{ }catch (Exception e) { log.error(e.getMessage()); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/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 19c77ac..30b76ff 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 @@ -209,7 +209,7 @@ 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.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); throw new GFacException(e); } } @@ -504,13 +504,13 @@ public class BetterGfacImpl implements GFac,Watcher { } return true; } catch (ApplicationSettingsException e) { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); throw new GFacException("Error launching the Job",e); } catch (KeeperException e) { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); throw new GFacException("Error launching the Job",e); } catch (InterruptedException e) { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); throw new GFacException("Error launching the Job",e); } } @@ -521,7 +521,7 @@ public class BetterGfacImpl implements GFac,Watcher { jobExecutionContext = createJEC(experimentID, taskID, gatewayID); return cancel(jobExecutionContext); } catch (Exception e) { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); log.error("Error inovoking the job with experiment ID: " + experimentID); throw new GFacException(e); } @@ -678,7 +678,7 @@ public class BetterGfacImpl implements GFac,Watcher { jobExecutionContext.getExperimentID(), jobExecutionContext.getGatewayID()); monitorPublisher.publish(new JobStatusChangeEvent(JobState.FAILED, jobIdentity)); - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); } catch (NullPointerException e1) { log.error("Error occured during updating the statuses of Experiments,tasks or Job statuses to failed, " + "NullPointerException occurred because at this point there might not have Job Created", e1, e); @@ -690,7 +690,7 @@ public class BetterGfacImpl implements GFac,Watcher { jobExecutionContext.getExperimentID(), jobExecutionContext.getGatewayID()); monitorPublisher.publish(new TaskStatusChangeEvent(TaskState.FAILED, taskIdentity)); - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR ); } jobExecutionContext.setProperty(ERROR_SENT, "true"); http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/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 62d8689..143bb8c 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 @@ -66,7 +66,7 @@ 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.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(monitorID.getJobExecutionContext(), e.getCause().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/4e3fde8f/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 968f159..3d60d6d 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 @@ -46,7 +46,7 @@ public class GSISSHDirectorySetupHandler extends AbstractRecoverableHandler { } } catch (Exception e) { try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); } catch (GFacException e1) { log.error(e1.getLocalizedMessage()); } @@ -91,12 +91,12 @@ public class GSISSHDirectorySetupHandler extends AbstractRecoverableHandler { } catch (Exception e) { DataTransferDetails detail = new DataTransferDetails(); TransferStatus status = new TransferStatus(); - detail.setTransferDescription(e.getLocalizedMessage()); + detail.setTransferDescription("Working directory = " + jobExecutionContext.getWorkingDir()); status.setTransferState(TransferState.FAILED); detail.setTransferStatus(status); try { registry.add(ChildDataType.DATA_TRANSFER_DETAIL, detail, jobExecutionContext.getTaskData().getTaskID()); - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java index 5ba3bf4..70706ae 100644 --- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java +++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java @@ -102,7 +102,7 @@ public class GSISSHInputHandler extends AbstractRecoverableHandler { } catch (ApplicationSettingsException e) { log.error(e.getMessage()); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); } catch (GFacException e1) { log.error(e1.getLocalizedMessage()); } @@ -164,7 +164,7 @@ public class GSISSHInputHandler extends AbstractRecoverableHandler { detail.setTransferDescription(e.getLocalizedMessage()); detail.setTransferStatus(status); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java index e28d0af..1064e1c 100644 --- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java +++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java @@ -68,7 +68,7 @@ public class GSISSHOutputHandler extends AbstractRecoverableHandler { } } catch (Exception e) { try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); } catch (GFacException e1) { log.error(e1.getLocalizedMessage()); } @@ -305,7 +305,7 @@ public class GSISSHOutputHandler extends AbstractRecoverableHandler { detail.setTransferStatus(status); detail.setTransferDescription(e.getLocalizedMessage()); registry.add(ChildDataType.DATA_TRANSFER_DETAIL, detail, jobExecutionContext.getTaskData().getTaskID()); - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/NewGSISSHOutputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/NewGSISSHOutputHandler.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/NewGSISSHOutputHandler.java index 77c6a8e..f4aaf72 100644 --- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/NewGSISSHOutputHandler.java +++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/NewGSISSHOutputHandler.java @@ -32,7 +32,7 @@ public class NewGSISSHOutputHandler extends AbstractHandler{ } } catch (Exception e) { try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); } catch (GFacException e1) { log.error(e1.getLocalizedMessage()); } @@ -53,7 +53,7 @@ public class NewGSISSHOutputHandler extends AbstractHandler{ } catch (Exception e) { log.error(e.getMessage()); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/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 8cbafc1..99a9e77 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 @@ -132,7 +132,7 @@ public class GSISSHProvider extends AbstractRecoverableProvider { log.error(error); jobDetails.setJobID("none"); GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.FAILED); - GFacUtils.saveErrorDetails(jobExecutionContext, error, CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); throw new GFacProviderException(error, e); } finally { log.info("Saving data for future recovery: "); @@ -266,14 +266,14 @@ public class GSISSHProvider extends AbstractRecoverableProvider { log.error(error); jobDetails.setJobID("none"); GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.FAILED); - GFacUtils.saveErrorDetails(jobExecutionContext, error, CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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, error, CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); throw new GFacProviderException(error, e); } } http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/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 f3dd193..a300063 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 @@ -200,7 +200,7 @@ public class AdvancedSCPInputHandler extends AbstractRecoverableHandler { } catch (Exception e) { log.error(e.getMessage()); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/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 e81979d..d1739c5 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 @@ -108,7 +108,7 @@ public class AdvancedSCPOutputHandler extends AbstractHandler { } catch (ApplicationSettingsException e) { log.error(e.getMessage()); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); } catch (GFacException e1) { log.error(e1.getLocalizedMessage()); } @@ -189,7 +189,7 @@ public class AdvancedSCPOutputHandler extends AbstractHandler { registry.add(ChildDataType.EXPERIMENT_OUTPUT, outputArray, jobExecutionContext.getExperimentID()); } catch (SSHApiException e) { try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); } catch (GFacException e1) { log.error(e1.getLocalizedMessage()); } @@ -198,7 +198,7 @@ public class AdvancedSCPOutputHandler extends AbstractHandler { throw new GFacHandlerException(e); } catch (Exception e) { try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/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 5b754f9..5a64521 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 @@ -42,7 +42,7 @@ public class NewSSHOutputHandler extends AbstractHandler{ } catch (Exception e) { log.error(e.getMessage()); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/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 90dc70b..6ba4f75 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 @@ -47,7 +47,7 @@ public class SSHDirectorySetupHandler extends AbstractHandler { } catch (Exception e) { log.error(e.getMessage()); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); } catch (GFacException e1) { log.error(e1.getLocalizedMessage()); } @@ -89,9 +89,10 @@ public class SSHDirectorySetupHandler extends AbstractHandler { TransferStatus status = new TransferStatus(); status.setTransferState(TransferState.FAILED); detail.setTransferStatus(status); + detail.setTransferDescription("Working directory = " + jobExecutionContext.getWorkingDir()); try { registry.add(ChildDataType.DATA_TRANSFER_DETAIL, detail, jobExecutionContext.getTaskData().getTaskID()); - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/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 4d47128..13090eb 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 @@ -67,7 +67,7 @@ public class SSHInputHandler extends AbstractHandler { } catch (ApplicationSettingsException e) { log.error(e.getMessage()); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); } catch (GFacException e1) { log.error(e1.getLocalizedMessage()); } @@ -136,7 +136,7 @@ public class SSHInputHandler extends AbstractHandler { status.setTransferState(TransferState.FAILED); detail.setTransferStatus(status); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/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 b574540..1210c83 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 @@ -61,7 +61,7 @@ public class SSHOutputHandler extends AbstractHandler { } catch (Exception e) { log.error(e.getMessage()); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); } catch (GFacException e1) { log.error(e1.getLocalizedMessage()); } @@ -227,7 +227,7 @@ 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.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.FILE_SYSTEM_FAILURE); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/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 b2fbcd2..70fec1f 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 @@ -182,14 +182,14 @@ public class SSHProvider extends AbstractProvider { log.error(error); jobDetails.setJobID("none"); GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.FAILED); - GFacUtils.saveErrorDetails(jobExecutionContext, error, CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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, error, CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); throw new GFacProviderException(error, e); } } catch (GFacException e) { @@ -234,14 +234,14 @@ public class SSHProvider extends AbstractProvider { log.error(error); jobDetails.setJobID("none"); GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.FAILED); - GFacUtils.saveErrorDetails(jobExecutionContext, error, CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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, error, CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/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 9628585..f4b3387 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 @@ -504,7 +504,7 @@ public class GFACSSHUtils { } catch (ApplicationSettingsException e) { logger.error(e.getMessage()); try { - GFacUtils.saveErrorDetails(jobExecutionContext, e.getLocalizedMessage(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR); + GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().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/4e3fde8f/modules/gfac/gfac-thrift-descriptions/gfac.cpi.service.thrift ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-thrift-descriptions/gfac.cpi.service.thrift b/modules/gfac/gfac-thrift-descriptions/gfac.cpi.service.thrift index 3c3fa51..30f19a6 100644 --- a/modules/gfac/gfac-thrift-descriptions/gfac.cpi.service.thrift +++ b/modules/gfac/gfac-thrift-descriptions/gfac.cpi.service.thrift @@ -61,5 +61,6 @@ service GfacService { * **/ bool cancelJob (1: required string experimentId, - 2: required string taskId) + 2: required string taskId, + 3: required string gatewayId) } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java ---------------------------------------------------------------------- diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java index 113a966..ec2c081 100644 --- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java +++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java @@ -1268,12 +1268,16 @@ public class ExperimentRegistry { public String addDataTransferDetails(DataTransferDetails transferDetails, String taskId) throws RegistryException { try { + if (transferDetails.getTransferDescription() == null){ + throw new RegistryException("Data transfer description cannot be empty"); + } ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT); WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL); TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId); DataTransferDetailResource resource = (DataTransferDetailResource) taskDetail.create(ResourceType.DATA_TRANSFER_DETAIL); resource.setTaskDetailResource(taskDetail); resource.setTransferId(getDataTransferID(taskId)); + resource.setTransferDescription(transferDetails.getTransferDescription()); resource.setCreationTime(AiravataUtils.getTime(transferDetails.getCreationTime())); resource.save(); http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ErrorDetailResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ErrorDetailResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ErrorDetailResource.java index 95804bd..9299bad 100644 --- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ErrorDetailResource.java +++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ErrorDetailResource.java @@ -200,7 +200,10 @@ public class ErrorDetailResource extends AbstractResource { errorDetail.setNodeId(workflowNodeDetail.getNodeId()); } errorDetail.setCreationTime(creationTime); - errorDetail.setActualErrorMsg(actualErrorMsg.toCharArray()); + if (actualErrorMsg != null){ + errorDetail.setActualErrorMsg(actualErrorMsg.toCharArray()); + } + errorDetail.setUserFriendlyErrorMsg(userFriendlyErrorMsg); errorDetail.setTransientPersistent(transientPersistent); errorDetail.setErrorCategory(errorCategory); http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java ---------------------------------------------------------------------- diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java index 7bf6cfd..a9e4a62 100644 --- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java +++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java @@ -564,7 +564,9 @@ public class Utils { errorDetailResource.setErrorId(o.getErrorID()); errorDetailResource.setJobId(o.getJobId()); errorDetailResource.setCreationTime(o.getCreationTime()); - errorDetailResource.setActualErrorMsg(new String(o.getActualErrorMsg())); + if (o.getActualErrorMsg() != null){ + errorDetailResource.setActualErrorMsg(new String(o.getActualErrorMsg())); + } errorDetailResource.setUserFriendlyErrorMsg(o.getUserFriendlyErrorMsg()); errorDetailResource.setTransientPersistent(o.isTransientPersistent()); errorDetailResource.setErrorCategory(o.getErrorCategory()); http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/test-suite/multi-tenanted-airavata/pom.xml ---------------------------------------------------------------------- diff --git a/modules/test-suite/multi-tenanted-airavata/pom.xml b/modules/test-suite/multi-tenanted-airavata/pom.xml index a853d35..7af2864 100644 --- a/modules/test-suite/multi-tenanted-airavata/pom.xml +++ b/modules/test-suite/multi-tenanted-airavata/pom.xml @@ -74,6 +74,11 @@ <artifactId>airavata-credential-store</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>2.3.1</version> + </dependency> <!--<dependency>--> <!--<groupId>mysql</groupId>--> <!--<artifactId>mysql-connector-java</artifactId>--> http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ApplicationRegister.java ---------------------------------------------------------------------- diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ApplicationRegister.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ApplicationRegister.java index 0a92f2e..7f0a3d3 100644 --- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ApplicationRegister.java +++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ApplicationRegister.java @@ -52,13 +52,13 @@ public class ApplicationRegister { private List<String> gatewaysToAvoid; - public ApplicationRegister(Airavata.Client airavata) throws Exception { + public ApplicationRegister(Airavata.Client airavata, TestFrameworkProps props) throws Exception { this.airavata = airavata; allGateways = getAllGateways(airavata); applicationInterfaceListPerGateway = new HashMap<String, String>(); applicationDeployementListPerGateway = new HashMap<String, String>(); FrameworkUtils frameworkUtils = FrameworkUtils.getInstance(); - gatewaysToAvoid = frameworkUtils.getGatewayListToAvoid(); + gatewaysToAvoid = frameworkUtils.getGatewayListToAvoid(props.getSkippedGateways()); } public List<Gateway> getAllGateways(Airavata.Client client) throws Exception{ @@ -140,13 +140,13 @@ public class ApplicationRegister { List<String> appModules = new ArrayList<String>(); appModules.add(amberModuleId); - InputDataObjectType input1 = createAppInput("Heat_Restart_File", null, + InputDataObjectType input1 = createAppInput("heatRst", null, DataType.URI, "-c", 1, true, true,false, "Heating up the system equilibration stage - 02_Heat.rst", null); - InputDataObjectType input2 = createAppInput("Production_Control_File", null, + InputDataObjectType input2 = createAppInput("prodIn", null, DataType.URI, "-i ", 2, true, true, false, "Constant pressure and temperature for production stage - 03_Prod.in", null); - InputDataObjectType input3 = createAppInput("Parameter_Topology_File", null, + InputDataObjectType input3 = createAppInput("prmtop", null, DataType.URI, "-p", 3, true, true, false, "Parameter and Topology coordinates - prmtop", null); List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>(); http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ComputeResourceRegister.java ---------------------------------------------------------------------- diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ComputeResourceRegister.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ComputeResourceRegister.java index c6e2513..1127212 100644 --- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ComputeResourceRegister.java +++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/ComputeResourceRegister.java @@ -38,43 +38,26 @@ import java.util.*; public class ComputeResourceRegister { private Airavata.Client airavata; private List<String> computeResourceIds; - private PropertyReader propertyReader; private Map<String, String> loginNamesWithResourceMap; private Map<String, String> loginNamesWithResourceIds; private final static Logger logger = LoggerFactory.getLogger(ComputeResourceRegister.class); + private TestFrameworkProps properties; - public ComputeResourceRegister(Airavata.Client airavata) throws Exception { + public ComputeResourceRegister(Airavata.Client airavata, TestFrameworkProps props) throws Exception { this.airavata = airavata; + this.properties = props; computeResourceIds = new ArrayList<String>(); - propertyReader = new PropertyReader(); loginNamesWithResourceMap = getLoginNamesMap(); } public Map<String, String> getLoginNamesMap() throws Exception { loginNamesWithResourceMap = new HashMap<String, String>(); - List<String> loginNameList = new ArrayList<String>(); - List<String> computerResources = new ArrayList<String>(); - String loginNames = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.LOGIN_USERNAME_LIST, PropertyFileType.TEST_FRAMEWORK); - if (loginNames != null && !loginNames.isEmpty()){ - String[] names = loginNames.split(","); - loginNameList = Arrays.asList(names); - } - String clist = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.COMPUTE_RESOURCE_LIST, PropertyFileType.TEST_FRAMEWORK); - if (clist != null && !clist.isEmpty()) { - String[] resources = clist.split(","); - computerResources = Arrays.asList(resources); - } - - if (computerResources.size() == loginNameList.size()){ - for (int i=0; i < computerResources.size(); i++){ - loginNamesWithResourceMap.put(computerResources.get(i), loginNameList.get(i)); + TestFrameworkProps.Resource[] resourcesWithloginName = properties.getResources(); + if (resourcesWithloginName != null){ + for (TestFrameworkProps.Resource resource : resourcesWithloginName){ + loginNamesWithResourceMap.put(resource.getName(), resource.getLoginUser()); } - }else { - logger.error("Each compute resource should have a login user name. Please check whether you specified them correctly " + - "in test-framework.properties files.."); - throw new Exception("Each compute resource should have a login user name. Please check whether you specified them correctly " + - "in test-framework.properties files.."); } return loginNamesWithResourceMap; } http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/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 cc6bca6..17afc0b 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 @@ -65,22 +65,30 @@ public class ExperimentExecution { private PrintWriter resultWriter; private String testUser; private List<String> gatewaysToAvoid; + private TestFrameworkProps properties; public ExperimentExecution(Airavata.Client airavata, - Map<String, String> tokenMap ) throws Exception { + Map<String, String> tokenMap, + TestFrameworkProps props) throws Exception { this.airavata = airavata; this.csTokens = tokenMap; this.appInterfaceMap = getApplicationMap(tokenMap); this.propertyReader = new PropertyReader(); + this.properties = props; FrameworkUtils frameworkUtils = FrameworkUtils.getInstance(); - testUser = frameworkUtils.getTestUserName(); - gatewaysToAvoid = frameworkUtils.getGatewayListToAvoid(); + testUser = props.getTestUserName(); + gatewaysToAvoid = frameworkUtils.getGatewayListToAvoid(properties.getSkippedGateways()); this.projectsMap = getProjects(tokenMap); this.experimentsWithTokens = new HashMap<String, String>(); this.experimentsWithGateway = new HashMap<String, String>(); - String resultFileLocation = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.RESULT_WRITE_LOCATION, PropertyFileType.TEST_FRAMEWORK); - String resultFileName = getResultFileName(); - File resultFile = new File(resultFileLocation + resultFileName); + String resultFileLocation = properties.getResultFileLoc(); + String resultFileName = resultFileLocation + getResultFileName(); + + File resultFolder = new File(resultFileLocation); + if (!resultFolder.exists()){ + resultFolder.mkdir(); + } + File resultFile = new File(resultFileName); resultWriter = new PrintWriter(resultFile, "UTF-8"); resultWriter.println("Test Framework Results"); resultWriter.println("========================================"); @@ -228,12 +236,15 @@ public class ExperimentExecution { System.out.println("################ Experiment : " + expId + " FAILED ###################"); Experiment experiment = airavata.getExperiment(expId); List<ErrorDetails> errors = experiment.getErrors(); - for (ErrorDetails errorDetails : errors) { - System.out.println(errorDetails.getActualErrorMessage()); - resultWriter.println("Actual Error : " + j + " : " + errorDetails.getActualErrorMessage()); - resultWriter.println("User Friendly Message : " + j + " : " + errorDetails.getUserFriendlyMessage()); - resultWriter.println("Corrective Action : " + j + " : " + errorDetails.getCorrectiveAction()); + if (errors != null && !errors.isEmpty()){ + for (ErrorDetails errorDetails : errors) { + System.out.println(errorDetails.getActualErrorMessage()); + resultWriter.println("Actual Error : " + j + " : " + errorDetails.getActualErrorMessage()); + resultWriter.println("User Friendly Message : " + j + " : " + errorDetails.getUserFriendlyMessage()); + resultWriter.println("Corrective Action : " + j + " : " + errorDetails.getCorrectiveAction()); + } } + resultWriter.println("End of Results for Experiment : " + expId ); resultWriter.println("====================================================================="); resultWriter.println(); @@ -272,6 +283,14 @@ public class ExperimentExecution { public void createAmberExperiment () throws Exception{ try { + 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 gatewayId : csTokens.keySet()){ String token = csTokens.get(gatewayId); Map<String, String> appsWithNames = appInterfaceMap.get(gatewayId); @@ -280,20 +299,13 @@ public class ExperimentExecution { List<OutputDataObjectType> appOutputs = airavata.getApplicationOutputs(appId); String appName = appsWithNames.get(appId); if (appName.equals(TestFrameworkConstants.AppcatalogConstants.AMBER_APP_NAME)){ - String heatRSTFile = propertyReader.readProperty(TestFrameworkConstants.AppcatalogConstants.AMBER_HEAT_RST_LOCATION, PropertyFileType.TEST_FRAMEWORK); - String prodInFile = propertyReader.readProperty(TestFrameworkConstants.AppcatalogConstants.AMBER_PROD_IN_LOCATION, PropertyFileType.TEST_FRAMEWORK); - String prmTopFile = propertyReader.readProperty(TestFrameworkConstants.AppcatalogConstants.AMBER_PRMTOP_LOCATION, PropertyFileType.TEST_FRAMEWORK); - - for (InputDataObjectType inputDataObjectType : applicationInputs) { - if (inputDataObjectType.getName().equalsIgnoreCase("Heat_Restart_File")) { - inputDataObjectType.setValue(heatRSTFile); - } else if (inputDataObjectType.getName().equalsIgnoreCase("Production_Control_File")) { - inputDataObjectType.setValue(prodInFile); - } else if (inputDataObjectType.getName().equalsIgnoreCase("Parameter_Topology_File")) { - inputDataObjectType.setValue(prmTopFile); + for (String inputName : userGivenAmberInputs.keySet()){ + for (InputDataObjectType inputDataObjectType : applicationInputs) { + if (inputDataObjectType.getName().equalsIgnoreCase(inputName)) { + inputDataObjectType.setValue(userGivenAmberInputs.get(inputName)); + } } } - List<Project> projectsPerGateway = projectsMap.get(gatewayId); String projectID = null; if (projectsPerGateway != null && !projectsPerGateway.isEmpty()){ http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/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 a3b3825..002f316 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 @@ -37,7 +37,7 @@ public class FrameworkBootstrapping { private static boolean runAll = false; private static boolean regApps = false; private static boolean expExec = false; - private static PropertyReader propertyReader; + private static TestFrameworkProps properties; private static Map<String, String> tokens; private static ExperimentExecution experimentExecution; @@ -45,7 +45,7 @@ public class FrameworkBootstrapping { parseArguments(args); try { FrameworkSetup setup = FrameworkSetup.getInstance(); - propertyReader = new PropertyReader(); + properties = setup.getTestFrameworkProps(); if (runAll){ setup.getGatewayRegister().createGateways(); @@ -57,7 +57,7 @@ public class FrameworkBootstrapping { setup.getComputeResourceRegister().registerGatewayResourceProfile(); setup.getApplicationRegister().addApplications(); logger.info("Applications registered for each each gateway..."); - experimentExecution = new ExperimentExecution(setup.getAiravata(), tokens); + experimentExecution = new ExperimentExecution(setup.getAiravata(), tokens, properties); experimentExecution.createEchoExperiment(); experimentExecution.createAmberExperiment(); experimentExecution.launchExperiments(); @@ -74,7 +74,7 @@ public class FrameworkBootstrapping { logger.info("Applications registered for each each gateway..."); }else if (expExec){ tokens = readTokens(); - experimentExecution = new ExperimentExecution(setup.getAiravata(), tokens); + experimentExecution = new ExperimentExecution(setup.getAiravata(), tokens, setup.getTestFrameworkProps()); experimentExecution.createEchoExperiment(); experimentExecution.createAmberExperiment(); experimentExecution.launchExperiments(); @@ -87,7 +87,7 @@ public class FrameworkBootstrapping { public static Map<String, String> readTokens () throws Exception{ Map<String, String> tokens = new HashMap<String, String>(); - String fileLocation = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.TOKEN_WRITE_LOCATION, PropertyFileType.TEST_FRAMEWORK); + String fileLocation = properties.getTokenFileLoc(); String fileName = TestFrameworkConstants.CredentialStoreConstants.TOKEN_FILE_NAME; String path = fileLocation + File.separator + fileName; File tokenFile = new File(path); http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkSetup.java ---------------------------------------------------------------------- diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkSetup.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkSetup.java index 306a601..edad95e 100644 --- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkSetup.java +++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/FrameworkSetup.java @@ -21,16 +21,26 @@ package org.apache.airavata.testsuite.multitenantedairavata; +import com.google.gson.Gson; +import com.google.gson.JsonElement; import org.apache.airavata.api.Airavata; +import org.apache.airavata.testsuite.multitenantedairavata.utils.TestFrameworkConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; + public class FrameworkSetup { private static FrameworkSetup instance = new FrameworkSetup(); private GatewayRegister gatewayRegister; private ComputeResourceRegister computeResourceRegister; private ApplicationRegister applicationRegister; private Airavata.Client airavata; + private TestFrameworkProps testFrameworkProps; private final static Logger logger = LoggerFactory.getLogger(FrameworkSetup.class); public static FrameworkSetup getInstance() { @@ -41,14 +51,29 @@ public class FrameworkSetup { try { AiravataClient airavataClient = AiravataClient.getInstance(); this.airavata = airavataClient.getAiravataClient(); - gatewayRegister = new GatewayRegister(airavata); - applicationRegister = new ApplicationRegister(airavata); - computeResourceRegister = new ComputeResourceRegister(airavata); + Gson gson = new Gson(); + testFrameworkProps = gson.fromJson(getTestFrameworkJSON(), TestFrameworkProps.class); + + gatewayRegister = new GatewayRegister(airavata, testFrameworkProps); + applicationRegister = new ApplicationRegister(airavata, testFrameworkProps); + computeResourceRegister = new ComputeResourceRegister(airavata, testFrameworkProps); } catch (Exception e) { logger.error("Error while creating airavata client instance", e); } } + private String getTestFrameworkJSON () throws IOException { + InputStream inputStream = FrameworkSetup.class.getClassLoader().getResourceAsStream(TestFrameworkConstants.TEST_FREAMEWORK_JSON); + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); + String line; + String content = ""; + while ((line = reader.readLine()) != null) { + content += line; + } + System.out.println(content); + return content; + } + public GatewayRegister getGatewayRegister() { return gatewayRegister; } @@ -80,4 +105,12 @@ public class FrameworkSetup { public void setComputeResourceRegister(ComputeResourceRegister computeResourceRegister) { this.computeResourceRegister = computeResourceRegister; } + + public TestFrameworkProps getTestFrameworkProps() { + return testFrameworkProps; + } + + public void setTestFrameworkProps(TestFrameworkProps testFrameworkProps) { + this.testFrameworkProps = testFrameworkProps; + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/GatewayRegister.java ---------------------------------------------------------------------- diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/GatewayRegister.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/GatewayRegister.java index 7f40976..ebf1c80 100644 --- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/GatewayRegister.java +++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/GatewayRegister.java @@ -59,17 +59,19 @@ public class GatewayRegister { private String testUser; private String testProject; private List<String> gatewaysToAvoid; + private TestFrameworkProps properties; - public GatewayRegister(Airavata.Client client) throws Exception{ + public GatewayRegister(Airavata.Client client, TestFrameworkProps props) throws Exception{ try { this.airavata = client; this.tokenMap = new HashMap<String, String>(); this.projectMap = new HashMap<String, String>(); propertyReader = new PropertyReader(); - testUser = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.TEST_USER, PropertyFileType.TEST_FRAMEWORK); - testProject = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.TEST_PROJECT, PropertyFileType.TEST_FRAMEWORK); + properties = props; + testUser = properties.getTestUserName(); + testProject = properties.getTestProjectName(); FrameworkUtils frameworkUtils = FrameworkUtils.getInstance(); - gatewaysToAvoid = frameworkUtils.getGatewayListToAvoid(); + gatewaysToAvoid = frameworkUtils.getGatewayListToAvoid(properties.getSkippedGateways()); }catch (Exception e){ logger.error("Error while initializing setup step", e); throw new Exception("Error while initializing setup step", e); @@ -79,9 +81,9 @@ public class GatewayRegister { public void createGateways() throws Exception{ try { // read gateway count from properties file - gatewayCount = Integer.valueOf(propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.NUMBER_OF_GATEWAYS, PropertyFileType.TEST_FRAMEWORK)); - String genericGatewayName = propertyReader.readProperty(TestFrameworkConstants.GatewayConstants.GENERIC_GATEWAY_NAME, PropertyFileType.TEST_FRAMEWORK); - String genericGatewayDomain = propertyReader.readProperty(TestFrameworkConstants.GatewayConstants.GENERIC_GATEWAY_DOMAIN, PropertyFileType.TEST_FRAMEWORK); + gatewayCount = properties.getGcount(); + String genericGatewayName = properties.getGname(); + String genericGatewayDomain = properties.getGdomain(); for (int i = 0; i < gatewayCount; i++){ Gateway gateway = new Gateway(); String gatewayId = genericGatewayName + (i + 1); @@ -121,7 +123,7 @@ public class GatewayRegister { public void registerSSHKeys () throws Exception{ try { // write tokens to file - String tokenWriteLocation = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.TOKEN_WRITE_LOCATION, PropertyFileType.TEST_FRAMEWORK); + String tokenWriteLocation = properties.getTokenFileLoc(); String fileName = tokenWriteLocation + File.separator + TestFrameworkConstants.CredentialStoreConstants.TOKEN_FILE_NAME; PrintWriter tokenWriter = new PrintWriter(fileName, "UTF-8"); @@ -131,9 +133,9 @@ public class GatewayRegister { String jdbcDriver = propertyReader.readProperty(TestFrameworkConstants.AiravataClientConstants.CS_JBDC_DRIVER, PropertyFileType.AIRAVATA_CLIENT); String userName = propertyReader.readProperty(TestFrameworkConstants.AiravataClientConstants.CS_DB_USERNAME, PropertyFileType.AIRAVATA_CLIENT); String password = propertyReader.readProperty(TestFrameworkConstants.AiravataClientConstants.CS_DB_PWD, PropertyFileType.AIRAVATA_CLIENT); - String privateKeyPath = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.SSH_PRIKEY_LOCATION, PropertyFileType.TEST_FRAMEWORK); - String pubKeyPath = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.SSH_PUBKEY_LOCATION, PropertyFileType.TEST_FRAMEWORK); - String keyPassword = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.SSH_PWD, PropertyFileType.TEST_FRAMEWORK); + String privateKeyPath = properties.getSshPrivateKeyLoc(); + String pubKeyPath = properties.getSshPubKeyLoc(); + String keyPassword = properties.getSshPassword(); DBUtil dbUtil = new DBUtil(jdbcURL, userName, password, jdbcDriver); SSHCredentialWriter writer = new SSHCredentialWriter(dbUtil); List<Gateway> allGateways = airavata.getAllGateways(); http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/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 cc7f7ea..c9b06bc 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 @@ -21,6 +21,228 @@ package org.apache.airavata.testsuite.multitenantedairavata; +import java.util.Map; + public class TestFrameworkProps { + private int gcount; + private String gname; + private String gdomain; + private String testUserName; + private String testProjectName; + private String sshPubKeyLoc; + private String sshPrivateKeyLoc; + private String sshPassword; + private String sshUsername; + private String tokenFileLoc; + private String resultFileLoc; + private String skippedGateways; + private Resource[] resources; + private Application[] applications; + private Error[] errors; + + public TestFrameworkProps() { + } + + public int getGcount() { + return gcount; + } + + public void setGcount(int gcount) { + this.gcount = gcount; + } + + public String getGname() { + return gname; + } + + public void setGname(String gname) { + this.gname = gname; + } + + public String getGdomain() { + return gdomain; + } + + public void setGdomain(String gdomain) { + this.gdomain = gdomain; + } + + public String getTestUserName() { + return testUserName; + } + + public void setTestUserName(String testUserName) { + this.testUserName = testUserName; + } + + public String getTestProjectName() { + return testProjectName; + } + + public void setTestProjectName(String testProjectName) { + this.testProjectName = testProjectName; + } + + public String getSshPubKeyLoc() { + return sshPubKeyLoc; + } + + public void setSshPubKeyLoc(String sshPubKeyLoc) { + this.sshPubKeyLoc = sshPubKeyLoc; + } + + public String getSshPrivateKeyLoc() { + return sshPrivateKeyLoc; + } + + public void setSshPrivateKeyLoc(String sshPrivateKeyLoc) { + this.sshPrivateKeyLoc = sshPrivateKeyLoc; + } + + public String getSshPassword() { + return sshPassword; + } + + public void setSshPassword(String sshPassword) { + this.sshPassword = sshPassword; + } + + public String getSshUsername() { + return sshUsername; + } + + public void setSshUsername(String sshUsername) { + this.sshUsername = sshUsername; + } + + public String getTokenFileLoc() { + return tokenFileLoc; + } + + public void setTokenFileLoc(String tokenFileLoc) { + this.tokenFileLoc = tokenFileLoc; + } + + public String getResultFileLoc() { + return resultFileLoc; + } + + public void setResultFileLoc(String resultFileLoc) { + this.resultFileLoc = resultFileLoc; + } + + public String getSkippedGateways() { + return skippedGateways; + } + + public void setSkippedGateways(String skippedGateways) { + this.skippedGateways = skippedGateways; + } + + public Resource[] getResources() { + return resources; + } + public void setResources(Resource[] resources) { + this.resources = resources; + } + + public Application[] getApplications() { + return applications; + } + + public void setApplications(Application[] applications) { + this.applications = applications; + } + + public Error[] getErrors() { + return errors; + } + + public void setErrors(Error[] errors) { + this.errors = errors; + } + + public class Resource { + private String name; + private String loginUser; + + public Resource() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLoginUser() { + return loginUser; + } + + public void setLoginUser(String loginUser) { + this.loginUser = loginUser; + } + } + + public class Application { + private String name; + private Map<String, String> inputs; + + public Application() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Map<String, String> getInputs() { + return inputs; + } + + public void setInputs(Map<String, String> inputs) { + this.inputs = inputs; + } + } + + public class Error { + private String name; + private String application; + private Map<String, String> errorFeeds; + + public Error() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getApplication() { + return application; + } + + public void setApplication(String application) { + this.application = application; + } + + public Map<String, String> getErrorFeeds() { + return errorFeeds; + } + + public void setErrorFeeds(Map<String, String> errorFeeds) { + this.errorFeeds = errorFeeds; + } + } } + + http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/FrameworkUtils.java ---------------------------------------------------------------------- diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/FrameworkUtils.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/FrameworkUtils.java index cdc1304..a02fe97 100644 --- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/FrameworkUtils.java +++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/FrameworkUtils.java @@ -21,12 +21,10 @@ package org.apache.airavata.testsuite.multitenantedairavata.utils; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class FrameworkUtils { - private static PropertyReader propertyReader; private static FrameworkUtils ourInstance = new FrameworkUtils(); @@ -35,20 +33,10 @@ public class FrameworkUtils { } public FrameworkUtils() { - propertyReader = new PropertyReader(); } - public List<String> getGatewayListToAvoid (){ - String listOfGateways = propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.GATEWAYS_TOSKIP, PropertyFileType.TEST_FRAMEWORK); - String[] gateways = listOfGateways.split(","); + public List<String> getGatewayListToAvoid (String gatewayList){ + String[] gateways = gatewayList.split(","); return Arrays.asList(gateways); } - - public String getTestUserName (){ - return propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.TEST_USER, PropertyFileType.TEST_FRAMEWORK); - } - - public String getTesProjectName (){ - return propertyReader.readProperty(TestFrameworkConstants.FrameworkPropertiesConstants.TEST_PROJECT, PropertyFileType.TEST_FRAMEWORK); - } } http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyFileType.java ---------------------------------------------------------------------- diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyFileType.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyFileType.java index 0437c4e..1db022f 100644 --- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyFileType.java +++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyFileType.java @@ -23,6 +23,6 @@ package org.apache.airavata.testsuite.multitenantedairavata.utils; public enum PropertyFileType { - AIRAVATA_CLIENT, - TEST_FRAMEWORK + AIRAVATA_CLIENT +// TEST_FRAMEWORK } http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyReader.java ---------------------------------------------------------------------- diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyReader.java b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyReader.java index 1ef2851..f7b8e1f 100644 --- a/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyReader.java +++ b/modules/test-suite/multi-tenanted-airavata/src/main/java/org/apache/airavata/testsuite/multitenantedairavata/utils/PropertyReader.java @@ -31,7 +31,6 @@ import java.util.Properties; public class PropertyReader { private final static Logger logger = LoggerFactory.getLogger(PropertyReader.class); private static Properties airavataClientProperties = new Properties(); - private static Properties testFrameworkroperties = new Properties(); public PropertyReader() { try { @@ -43,22 +42,15 @@ public class PropertyReader { protected void loadProperties() throws IOException { URL airavataURL = PropertyFileType.class.getClassLoader().getResource(TestFrameworkConstants.AIRAVATA_CLIENT_PROPERTIES); - URL frameworkPropUrl = PropertyFileType.class.getClassLoader().getResource(TestFrameworkConstants.TEST_FREAMEWORK_PROPERTIES); if (airavataURL != null){ airavataClientProperties.load(airavataURL.openStream()); } - if (frameworkPropUrl != null){ - testFrameworkroperties.load(frameworkPropUrl.openStream()); - } - } public String readProperty (String propertyName, PropertyFileType type){ switch (type){ case AIRAVATA_CLIENT: return airavataClientProperties.getProperty(propertyName); - case TEST_FRAMEWORK: - return testFrameworkroperties.getProperty(propertyName); } return null; } http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/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 c0ea2c4..7376f7a 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 @@ -24,6 +24,7 @@ package org.apache.airavata.testsuite.multitenantedairavata.utils; public class TestFrameworkConstants { public static final String AIRAVATA_CLIENT_PROPERTIES = "airavata-client.properties"; public static final String TEST_FREAMEWORK_PROPERTIES = "test-framework.properties"; + public static final String TEST_FREAMEWORK_JSON = "test-framework.json"; public static final class AiravataClientConstants { public static final String THRIFT_SERVER_HOST = "thrift.server.host"; http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/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 e69de29..50288a7 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 @@ -0,0 +1,63 @@ +{ + "gcount": 1, + "gname": "testGateway", + "gdomain": ".airavata.org", + "testUserName": "testUser", + "testProjectName": "test.project", + "sshPubKeyLoc": "/Users/chathuri/.ssh/id_dsa.pub", + "sshPrivateKeyLoc": "/Users/chathuri/.ssh/id_dsa", + "sshPassword": "", + "sshUsername": "ogce", + "tokenFileLoc": "/tmp/", + "resultFileLoc": "/tmp/test_framework_results/", + "skippedGateways": "default,php_reference_gateway,ultrascan,umass", + "resources": [ + { + "name": "trestles.sdsc.xsede.org", + "loginUser": "ogce" + + }, + { + "name": "stampede.tacc.xsede.org", + "loginUser": "ogce" + + }, + { + "name": "bigred2.uits.iu.edu", + "loginUser": "cpelikan" + + } + ], + "applications": [ + { + "name": "amber_sander", + "inputs": { + "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" + } + } + ], + "errors": [ + { + "name": "badinputs", + "application": "amber_sander", + "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" + } + }, + { + "name": "error.configuration", + "application": "amber_sander", + "errorFeeds": { + "projectId": "sds128", + "queueName": "normal", + "walltime": 10, + "hostName": "trestles.sdsc.xsede.org" + } + + } + ] +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/4e3fde8f/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.yaml ---------------------------------------------------------------------- diff --git a/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.yaml b/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.yaml new file mode 100644 index 0000000..6c1a6e6 --- /dev/null +++ b/modules/test-suite/multi-tenanted-airavata/src/main/resources/test-framework.yaml @@ -0,0 +1,49 @@ +gcount: 10 +gname: testGateway +gdomain: .airavata.org +testUserName: testUser +testProjectName : test.project +sshPubKeyLoc : /Users/chathuri/.ssh/id_dsa.pub +sshPrivateKeyLoc: /Users/chathuri/.ssh/id_dsa +sshPassword: password +sshUsername: ogce +tokenFileLoc : /tmp/ +resultFileLoc : /tmp/test_framework_results/ +skippedGateways : defaultphp_reference_gatewayultrascanumass +resources : + -name : trestles.sdsc.xsede.org + loginUser : ogce + -name : stampede.tacc.xsede.org + loginUser : ogce + -name : bigred2.uits.iu.edu + loginUser : cgateway + +applications : + -name :amber + inputs : + 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 + + + +errors : + name :badinputs + application : amber + 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 + + + name :error.configuration + application : amber + errorFeeds : + projectId : sds128 + queueName : normal + walltime : 10 + hostName : trestles.sdsc.xsede.org + + + +
