From 62d39c8908bb3362765643441f8cacaaae497584 Mon Sep 17 00:00:00 2001 From: brig Date: Mon, 13 May 2024 21:00:48 -0400 Subject: [PATCH] server: fix metadata values after resume --- .../concord/it/runtime/v2/ProcessIT.java | 13 +++++++++++++ .../it/runtime/v2/metaAfterSuspend/concord.yml | 18 ++++++++++++++++++ .../v2/metaAfterSuspend/payload/concord.yml | 6 ++++++ .../ResumeConfigurationProcessor.java | 3 +++ 4 files changed, 40 insertions(+) create mode 100644 it/runtime-v2/src/test/resources/com/walmartlabs/concord/it/runtime/v2/metaAfterSuspend/concord.yml create mode 100644 it/runtime-v2/src/test/resources/com/walmartlabs/concord/it/runtime/v2/metaAfterSuspend/payload/concord.yml diff --git a/it/runtime-v2/src/test/java/com/walmartlabs/concord/it/runtime/v2/ProcessIT.java b/it/runtime-v2/src/test/java/com/walmartlabs/concord/it/runtime/v2/ProcessIT.java index b567e9265b..ad6ad466d0 100644 --- a/it/runtime-v2/src/test/java/com/walmartlabs/concord/it/runtime/v2/ProcessIT.java +++ b/it/runtime-v2/src/test/java/com/walmartlabs/concord/it/runtime/v2/ProcessIT.java @@ -546,4 +546,17 @@ public void testRestart() throws Exception { assertFalse(waitConditions.getIsWaiting()); assertNull(waitConditions.getWaits()); } + + @Test + public void metaAfterSuspend() throws Exception { + Payload payload = new Payload() + .archive(resource("metaAfterSuspend")); + + ConcordProcess proc = concord.processes().start(payload); + ProcessEntry pe = expectStatus(proc, ProcessEntry.StatusEnum.FAILED); + + // --- + Object myMetaValue = pe.getMeta().get("myMetaVar"); + assertEquals("myMetaVarValue", myMetaValue); + } } diff --git a/it/runtime-v2/src/test/resources/com/walmartlabs/concord/it/runtime/v2/metaAfterSuspend/concord.yml b/it/runtime-v2/src/test/resources/com/walmartlabs/concord/it/runtime/v2/metaAfterSuspend/concord.yml new file mode 100644 index 0000000000..bd2ff82861 --- /dev/null +++ b/it/runtime-v2/src/test/resources/com/walmartlabs/concord/it/runtime/v2/metaAfterSuspend/concord.yml @@ -0,0 +1,18 @@ +configuration: + runtime: "concord-v2" + meta: + myMetaVar: "n/a" + +flows: + default: + - set: + myMetaVar: "myMetaVarValue" + + - task: concord + in: + action: start + payload: payload + sync: true + suspend: true + arguments: + name: "Concord" diff --git a/it/runtime-v2/src/test/resources/com/walmartlabs/concord/it/runtime/v2/metaAfterSuspend/payload/concord.yml b/it/runtime-v2/src/test/resources/com/walmartlabs/concord/it/runtime/v2/metaAfterSuspend/payload/concord.yml new file mode 100644 index 0000000000..04d399ebbe --- /dev/null +++ b/it/runtime-v2/src/test/resources/com/walmartlabs/concord/it/runtime/v2/metaAfterSuspend/payload/concord.yml @@ -0,0 +1,6 @@ +configuration: + runtime: "concord-v2" + +flows: + default: + - throw: "BOOM" diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/pipelines/processors/ResumeConfigurationProcessor.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/pipelines/processors/ResumeConfigurationProcessor.java index c1506343a9..af29d0905b 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/pipelines/processors/ResumeConfigurationProcessor.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/pipelines/processors/ResumeConfigurationProcessor.java @@ -49,6 +49,9 @@ public Payload process(Chain chain, Payload payload) { // we'll use the arguments only from the request workspaceCfg.remove(Constants.Request.ARGUMENTS_KEY); + // we do not needed meta from request + workspaceCfg.remove(Constants.Request.META); + // TODO automatically provided variables // TODO overrides from policies