update error model, AIRAVATA-2096
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/5dbf84cc Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/5dbf84cc Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/5dbf84cc Branch: refs/heads/lahiru/AIRAVATA-2065 Commit: 5dbf84cc1a710b17b401f182ac2c4b904544d2c5 Parents: 2289aed Author: Shameera Rathnayaka <shameerai...@gmail.com> Authored: Mon Sep 12 16:14:19 2016 -0400 Committer: Shameera Rathnayaka <shameerai...@gmail.com> Committed: Mon Sep 12 16:14:19 2016 -0400 ---------------------------------------------------------------------- .../airavata/gfac/impl/GFacEngineImpl.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/5dbf84cc/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java index 1d1391c..a57252e 100644 --- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java +++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java @@ -74,6 +74,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; +import java.io.PrintWriter; +import java.io.StringWriter; import java.net.URI; import java.net.URISyntaxException; import java.util.*; @@ -207,14 +209,17 @@ public class GFacEngineImpl implements GFacEngine { return processContext; } catch (AppCatalogException e) { String msg = "App catalog access exception "; + saveErrorModel(processContext, e, msg); updateProcessFailure(processContext, msg); throw new GFacException(msg, e); } catch (RegistryException e) { String msg = "Registry access exception"; + saveErrorModel(processContext, e, msg); updateProcessFailure(processContext, msg); throw new GFacException(msg, e); } catch (AiravataException e) { String msg = "Remote cluster initialization error"; + saveErrorModel(processContext, e, msg); updateProcessFailure(processContext, msg); throw new GFacException(msg, e); } @@ -877,6 +882,20 @@ public class GFacEngineImpl implements GFacEngine { } } + private void saveErrorModel(ProcessContext pc, Exception e, String userFriendlyMsg){ + StringWriter errors = new StringWriter(); + e.printStackTrace(new PrintWriter(errors)); + ErrorModel errorModel = new ErrorModel(); + errorModel.setUserFriendlyMessage(userFriendlyMsg); + errorModel.setActualErrorMessage(errors.toString()); + errorModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime()); + try { + GFacUtils.saveProcessError(pc, errorModel); + } catch (GFacException e1) { + log.error("Error while updating error model for process:" + pc.getProcessId()); + } + } + public static ResourceJobManager getResourceJobManager(ProcessContext processCtx) throws AppCatalogException, GFacException { List<JobSubmissionInterface> jobSubmissionInterfaces = Factory.getDefaultAppCatalog().getComputeResource() .getComputeResource(processCtx.getComputeResourceId()).getJobSubmissionInterfaces();