From a4e8cb2f1eaef5dd537bf15cee68a869dee83a9c Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Mon, 17 Jan 2022 14:19:59 +0100 Subject: [PATCH] Lifecycleinformation in result --- .../cms/plugins/reports/ExecutionReport.java | 3 ++- .../plugins/ConcessioniLifeCycleManager.java | 13 +++++++------ .../model/document/LifecycleInformation.java | 14 +++++++++++++- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/ExecutionReport.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/ExecutionReport.java index ea0d69e..dadbcd1 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/ExecutionReport.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/ExecutionReport.java @@ -2,10 +2,11 @@ package org.gcube.application.cms.plugins.reports; import lombok.Data; import org.gcube.application.cms.plugins.requests.StepExecutionRequest; +import org.gcube.application.geoportal.common.model.document.LifecycleInformation; import org.gcube.application.geoportal.common.model.document.ProfiledDocument; @Data -public class ExecutionReport extends Report{ +public class ExecutionReport { StepExecutionRequest request; diff --git a/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java b/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java index c5a7c15..328f7e0 100644 --- a/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java +++ b/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java @@ -1,7 +1,6 @@ package org.gcube.application.cms.concessioni.plugins; import lombok.extern.slf4j.Slf4j; -import org.bson.Document; import org.gcube.application.cms.Serialization; import org.gcube.application.cms.custom.gna.concessioni.model.ProfiledConcessione; import org.gcube.application.cms.plugins.LifecycleManager; @@ -11,11 +10,10 @@ import org.gcube.application.cms.plugins.faults.StepException; import org.gcube.application.cms.plugins.model.PluginDescriptor; import org.gcube.application.cms.plugins.reports.ExecutionReport; import org.gcube.application.cms.plugins.reports.InitializationReport; -import org.gcube.application.cms.plugins.reports.Report; import org.gcube.application.cms.plugins.requests.StepExecutionRequest; import org.gcube.application.geoportal.common.model.document.ComparableVersion; +import org.gcube.application.geoportal.common.model.document.LifecycleInformation; import org.gcube.application.geoportal.common.model.document.ProfiledDocument; -import org.gcube.application.geoportal.common.utils.JSONPathWrapper; @Slf4j public class ConcessioniLifeCycleManager implements LifecycleManager { @@ -46,9 +44,12 @@ public class ConcessioniLifeCycleManager implements LifecycleManager { public ExecutionReport performStep(StepExecutionRequest request) throws StepException { log.info("Serving Request {}",request); ExecutionReport report=new ExecutionReport(); + LifecycleInformation info=new LifecycleInformation(); + info.setPhase(request.getStep()); + info.setLastOperationStatus(LifecycleInformation.Status.OK); report.setRequest(request); - report.setStatus(Report.Status.OK); report.setResult(request.getDocument()); + try { switch (request.getStep()) { case StepExecutionRequest.Steps.ON_INIT_DOCUMENT: @@ -80,8 +81,8 @@ public class ConcessioniLifeCycleManager implements LifecycleManager { throw e; }catch (Throwable t){ log.error("Unable to perform step "+request.getStep(),t); - report.setStatus(Report.Status.ERROR); - report.putMessage("Unable to execute Step "+request.getStep()+". Error was "+t.getMessage()); + report.getResult().getLifecycleInformation().setLastOperationStatus(LifecycleInformation.Status.ERROR); + report.getResult().getLifecycleInformation().addErrorMessage("Unable to execute Step "+request.getStep()+". Error was "+t.getMessage()); } return report; } diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/document/LifecycleInformation.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/document/LifecycleInformation.java index d6fc700..8ad8550 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/document/LifecycleInformation.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/document/LifecycleInformation.java @@ -2,6 +2,7 @@ package org.gcube.application.geoportal.common.model.document; import lombok.*; +import java.util.ArrayList; import java.util.List; @NoArgsConstructor @@ -18,7 +19,7 @@ public class LifecycleInformation { public static final String CHILDREN="children"; public static enum Status{ - PASSED,ERROR,WARNING + OK,ERROR,WARNING } @@ -28,4 +29,15 @@ public class LifecycleInformation { private List warningMessages; private List children; + + public void addErrorMessage(String msg){ + if(errorMessages==null) + errorMessages=new ArrayList<>(); + errorMessages.add(msg); + } + public void addWarningMessage(String msg){ + if(warningMessages==null) + warningMessages=new ArrayList<>(); + warningMessages.add(msg); + } }