From a6c5733b5dcc546b3e8c182fbb16b49a019c3a5d Mon Sep 17 00:00:00 2001 From: MDeLuise <66636702+MDeLuise@users.noreply.github.com> Date: Tue, 3 Oct 2023 11:01:44 +0200 Subject: [PATCH] fix(JobEngine): Improved error message for device target processors --- .../AbstractDeviceTargetProcessor.java | 4 +++- .../operation/AbstractTargetProcessor.java | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/job-engine/commons/src/main/java/org/eclipse/kapua/job/engine/commons/operation/AbstractDeviceTargetProcessor.java b/job-engine/commons/src/main/java/org/eclipse/kapua/job/engine/commons/operation/AbstractDeviceTargetProcessor.java index 5169e187888..465cbc60539 100644 --- a/job-engine/commons/src/main/java/org/eclipse/kapua/job/engine/commons/operation/AbstractDeviceTargetProcessor.java +++ b/job-engine/commons/src/main/java/org/eclipse/kapua/job/engine/commons/operation/AbstractDeviceTargetProcessor.java @@ -22,9 +22,11 @@ public abstract class AbstractDeviceTargetProcessor extends AbstractTargetProcessor { protected static final KapuaLocator LOCATOR = KapuaLocator.getInstance(); protected static final DeviceRegistryService DEVICE_REGISTRY_SERVICE = LOCATOR.getService(DeviceRegistryService.class); + + @Override protected String getTargetDisplayName(JobTarget jobTarget) throws KapuaException { - Device device = KapuaSecurityUtils.doPrivileged(() -> DEVICE_REGISTRY_SERVICE.find(jobTarget.getScopeId(), jobTarget.getJobTargetId()));; + Device device = KapuaSecurityUtils.doPrivileged(() -> DEVICE_REGISTRY_SERVICE.find(jobTarget.getScopeId(), jobTarget.getJobTargetId())); if (device == null) { return "N/A"; } diff --git a/job-engine/commons/src/main/java/org/eclipse/kapua/job/engine/commons/operation/AbstractTargetProcessor.java b/job-engine/commons/src/main/java/org/eclipse/kapua/job/engine/commons/operation/AbstractTargetProcessor.java index 826c7bca83c..533ca2f6c51 100644 --- a/job-engine/commons/src/main/java/org/eclipse/kapua/job/engine/commons/operation/AbstractTargetProcessor.java +++ b/job-engine/commons/src/main/java/org/eclipse/kapua/job/engine/commons/operation/AbstractTargetProcessor.java @@ -59,8 +59,7 @@ public final Object processItem(Object item) throws Exception { jobLogger.info("Processing target:{} (id:{}) - DONE!", getTargetDisplayName(jobTarget), jobTarget.getId().toCompactId()); } catch (Exception e) { - jobLogger.error(e, "Processing target:{} (id:{}) - Error!", getTargetDisplayName(jobTarget), jobTarget.getId().toCompactId()); - + logErrorToJobLogger(stepContextWrapper.getKapuaStepName(), jobLogger, jobTarget, e); jobTarget.setStatus(getFailedStatus(jobTarget)); wrappedJobTarget.setProcessingException(e); } @@ -68,6 +67,21 @@ public final Object processItem(Object item) throws Exception { return wrappedJobTarget; } + + /** + * Prints an error message into the given job logger + * + * @param stepName The name of the step that fails + * @param jobLogger The {@link JobLogger} where to print the error message + * @param jobTarget The {@link JobTarget} that was being processed + * @param e The exception that occurred + * @throws KapuaException + */ + protected void logErrorToJobLogger(String stepName, JobLogger jobLogger, JobTarget jobTarget, Exception e) throws KapuaException { + jobLogger.error(e, "Executing {} on device: {} (id: {}) - ", stepName, getTargetDisplayName(jobTarget), jobTarget.getId().toCompactId()); + } + + protected abstract String getTargetDisplayName(JobTarget jobTarget) throws KapuaException; /**