Skip to content

Commit fbaf873

Browse files
authored
runtime-v2: fix manual trigger exclusive schema (#993)
1 parent 8c910f9 commit fbaf873

File tree

5 files changed

+39
-4
lines changed

5 files changed

+39
-4
lines changed

runtime/v2/model/src/main/java/com/walmartlabs/concord/runtime/v2/parser/TriggersGrammar.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,8 @@ private static GithubTriggerExclusiveMode validateGithubExclusiveMode(GithubTrig
170170
optional("name", stringVal.map(v -> o.putConfiguration("name", v))),
171171
mandatory("entryPoint", stringVal.map(v -> o.putConfiguration("entryPoint", v))),
172172
optional("activeProfiles", stringArrayVal.map(o::activeProfiles)),
173-
optional("arguments", mapVal.map(o::arguments)))))
173+
optional("arguments", mapVal.map(o::arguments)),
174+
optional("exclusive", exclusiveVal.map(v -> o.putConfiguration("exclusive", v))))))
174175
.map(t -> t.name("manual"))
175176
.map(ImmutableTrigger.Builder::build);
176177

runtime/v2/model/src/main/java/com/walmartlabs/concord/runtime/v2/schema/TriggerMixIn.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,16 @@ public interface TriggerMixIn extends Trigger {
4545
@JsonTypeName("ManualTrigger")
4646
interface ManualTriggerMixIn extends TriggerMixIn {
4747

48-
@JsonProperty("exclusive")
49-
ExclusiveMode exclusive();
50-
5148
@JsonProperty("manual")
5249
ManualTriggerParams params();
5350

5451
interface ManualTriggerParams extends DefaultTriggerParams {
5552

5653
@JsonProperty("name")
5754
String name();
55+
56+
@JsonProperty("exclusive")
57+
ExclusiveMode exclusive();
5858
}
5959
}
6060

runtime/v2/model/src/test/java/com/walmartlabs/concord/project/runtime/v2/parser/YamlOkParserTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,22 @@ public void test019() throws Exception {
570570
assertTrue(p1.configuration().debug());
571571
}
572572

573+
@Test
574+
void test021() throws Exception {
575+
ProcessDefinition pd = load("021.yml");
576+
577+
List<Trigger> triggers = pd.triggers();
578+
assertNotNull(triggers);
579+
580+
assertEquals(1, triggers.size());
581+
582+
Trigger t = triggers.get(0);
583+
assertEquals("manual", t.name());
584+
var exclusive = assertInstanceOf(ExclusiveMode.class, t.configuration().get("exclusive"));
585+
assertEquals("manual-group", exclusive.group());
586+
assertEquals(ExclusiveMode.Mode.cancel, exclusive.mode());
587+
}
588+
573589
@Test
574590
public void testArgsOrder() throws Exception {
575591
ProcessDefinition pd = load("args-order.concord.yml");
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
flows:
2+
main:
3+
- log: "hello: ${v}"
4+
5+
triggers:
6+
- manual:
7+
name: "test"
8+
entryPoint: "main"
9+
arguments:
10+
k: "v"
11+
activeProfiles:
12+
- "profile-1"
13+
exclusive:
14+
mode: "cancel"
15+
group: "manual-group"

runtime/v2/model/src/test/resources/schema/concord.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,9 @@ triggers:
130130
k: "v"
131131
activeProfiles:
132132
- "profile-1"
133+
exclusive:
134+
mode: "cancel"
135+
group: "manual-group"
133136
- cron:
134137
spec: "* 12 * * *"
135138
entryPoint: eventOutput

0 commit comments

Comments
 (0)