From 6e5e26c19dad8ad609d8accd5755b38c2652dbe9 Mon Sep 17 00:00:00 2001 From: "Jian.Li" Date: Wed, 22 Dec 2021 12:47:27 +0800 Subject: [PATCH] fix message invalid (#2968) Signed-off-by: Jian.Li --- pkg/stdlib/op.cue | 5 +++-- pkg/workflow/providers/workspace/workspace.go | 10 +++++++--- .../providers/workspace/workspace_test.go | 15 +++++++++++++++ 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/pkg/stdlib/op.cue b/pkg/stdlib/op.cue index 80a292df0..44f34faf2 100644 --- a/pkg/stdlib/op.cue +++ b/pkg/stdlib/op.cue @@ -7,11 +7,12 @@ import ( #ConditionalWait: { #do: "wait" continue: bool + message?: string } #Break: { - #do: "break" - message: string + #do: "break" + message?: string } #Apply: kube.#Apply diff --git a/pkg/workflow/providers/workspace/workspace.go b/pkg/workflow/providers/workspace/workspace.go index 805c0e5ba..c758c1478 100644 --- a/pkg/workflow/providers/workspace/workspace.go +++ b/pkg/workflow/providers/workspace/workspace.go @@ -146,14 +146,18 @@ func (h *provider) Wait(ctx wfContext.Context, v *value.Value, act types.Action) } } } - - act.Wait("") + msg, _ := v.GetString("message") + act.Wait(msg) return nil } // Break let workflow terminate. func (h *provider) Break(ctx wfContext.Context, v *value.Value, act types.Action) error { - act.Terminate("") + var msg string + if v != nil { + msg, _ = v.GetString("message") + } + act.Terminate(msg) return nil } diff --git a/pkg/workflow/providers/workspace/workspace_test.go b/pkg/workflow/providers/workspace/workspace_test.go index 82d7d488b..e7a096cee 100644 --- a/pkg/workflow/providers/workspace/workspace_test.go +++ b/pkg/workflow/providers/workspace/workspace_test.go @@ -187,24 +187,29 @@ func TestProvider_Wait(t *testing.T) { act := &mockAction{} v, err := value.NewValue(` continue: 100!=100 +message: "test log" `, nil, "") assert.NilError(t, err) err = p.Wait(wfCtx, v, act) assert.NilError(t, err) assert.Equal(t, act.wait, true) + assert.Equal(t, act.msg, "test log") act = &mockAction{} v, err = value.NewValue(` continue: 100==100 +message: "not invalid" `, nil, "") assert.NilError(t, err) err = p.Wait(wfCtx, v, act) assert.NilError(t, err) assert.Equal(t, act.wait, false) + assert.Equal(t, act.msg, "") act = &mockAction{} v, err = value.NewValue(` continue: bool +message: string `, nil, "") assert.NilError(t, err) err = p.Wait(wfCtx, v, act) @@ -226,6 +231,16 @@ func TestProvider_Break(t *testing.T) { err := p.Break(wfCtx, nil, act) assert.NilError(t, err) assert.Equal(t, act.terminate, true) + + act = &mockAction{} + v, err := value.NewValue(` +message: "terminate" +`, nil, "") + assert.NilError(t, err) + err = p.Break(wfCtx, v, act) + assert.NilError(t, err) + assert.Equal(t, act.terminate, true) + assert.Equal(t, act.msg, "terminate") } type mockAction struct {