Skip to content

Commit 7d1cd2b

Browse files
committed
Node renamed to Task; drops Width attribute in Workflow
1 parent 8576169 commit 7d1cd2b

20 files changed

Lines changed: 617 additions & 666 deletions

internal/asl/choice.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import (
44
"fmt"
55

66
"github.com/buger/jsonparser"
7-
"github.com/serverledge-faas/serverledge/internal/types"
87
"github.com/labstack/gommon/log"
8+
"github.com/serverledge-faas/serverledge/internal/types"
99
)
1010

1111
type ChoiceState struct {

internal/function/signature.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,6 @@ func (o OutputDef) TryParse(result string) (interface{}, error) {
9696
return strconv.ParseBool(result)
9797
case Float:
9898
return strconv.ParseFloat(result, 64)
99-
//case Array[DataTypeEnum]:
100-
// arr := make([]interface{}, 0)
101-
// dType := o.Type.(Array[DataTypeEnum]).DataType.TryParse()
102-
10399
default:
104100
return result, nil
105101
}

internal/test/progress_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,8 @@ func TestProgressCache(t *testing.T) {
127127
u.AssertTrueMsg(t, found, "progress not found")
128128
u.AssertTrueMsg(t, progress.Equals(retrievedProgress), "progresses don't match")
129129

130-
progress.CompleteNode(wflow.Start.Id)
131-
progress.CompleteNode(wflow.Start.Next)
130+
progress.Complete(wflow.Start.Id)
131+
progress.Complete(wflow.Start.Next)
132132

133133
err = workflow.SaveProgress(progress, cache.Persist)
134134
u.AssertNilMsg(t, err, "failed to save after update")

internal/test/util.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ func IsWindows() bool {
277277
return os.PathSeparator == '\\' && os.PathListSeparator == ';'
278278
}
279279

280-
// CreateSequenceWorkflow if successful, returns a workflow pointer with a sequence of Simple Nodes
280+
// CreateSequenceWorkflow if successful, returns a workflow pointer with a sequence of Simple Tasks
281281
func CreateSequenceWorkflow(funcs ...*function.Function) (*workflow.Workflow, error) {
282282
builder := workflow.NewBuilder()
283283
for _, f := range funcs {

internal/test/workflow_test.go

Lines changed: 70 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,11 @@ func TestEmptyWorkflow(t *testing.T) {
4747

4848
u.AssertNonNil(t, wflow.Start)
4949
u.AssertNonNil(t, wflow.End)
50-
u.AssertEquals(t, wflow.Width, 1)
51-
u.AssertNonNil(t, wflow.Nodes)
50+
u.AssertNonNil(t, wflow.Tasks)
5251
u.AssertEquals(t, wflow.Start.Next, wflow.End.GetId())
5352
}
5453

55-
// TestSimpleWorkflow creates a simple Workflow with one StartNode, two SimpleNode and one EndNode, executes it and gets the result.
54+
// TestSimpleWorkflow creates a simple Workflow with one StartTask, two SimpleTask and one EndTask, executes it and gets the result.
5655
func TestSimpleWorkflow(t *testing.T) {
5756
//workflow.BranchNumber = 0
5857

@@ -69,33 +68,32 @@ func TestSimpleWorkflow(t *testing.T) {
6968

7069
u.AssertNonNil(t, wflow.Start)
7170
u.AssertNonNil(t, wflow.End)
72-
u.AssertEquals(t, wflow.Width, 1)
73-
u.AssertNonNil(t, wflow.Nodes)
74-
u.AssertEquals(t, len(wflow.Nodes)-2, length)
71+
u.AssertNonNil(t, wflow.Tasks)
72+
u.AssertEquals(t, len(wflow.Tasks)-2, length)
7573

76-
// tasks := workflow.NewNodeSetFrom(workflow.Nodes)
74+
// tasks := workflow.NewNodeSetFrom(workflow.Tasks)
7775
_, found := wflow.Find(wflow.Start.Next)
7876
u.AssertTrue(t, found)
7977
end := false
8078
var prevNode workflow.Task = wflow.Start
8179
var currentNode workflow.Task
8280
for !end {
8381
switch prevNode.(type) {
84-
case *workflow.StartNode:
82+
case *workflow.StartTask:
8583
nextNodeId := prevNode.GetNext()[0]
8684
currentNode, _ = wflow.Find(nextNodeId)
87-
u.AssertEquals(t, prevNode.(*workflow.StartNode).Next, currentNode.GetId())
88-
case *workflow.EndNode:
85+
u.AssertEquals(t, prevNode.(*workflow.StartTask).Next, currentNode.GetId())
86+
case *workflow.EndTask:
8987
end = true
9088
default: // currentNode = simple node
9189
nextNodeId := prevNode.GetNext()[0]
9290
currentNode, _ = wflow.Find(nextNodeId)
93-
u.AssertEquals(t, prevNode.(*workflow.SimpleNode).OutputTo, currentNode.GetId())
94-
u.AssertTrue(t, prevNode.(*workflow.SimpleNode).Func == f.Name)
91+
u.AssertEquals(t, prevNode.(*workflow.SimpleTask).OutputTo, currentNode.GetId())
92+
u.AssertTrue(t, prevNode.(*workflow.SimpleTask).Func == f.Name)
9593
}
9694
prevNode = currentNode
9795
}
98-
u.AssertEquals(t, prevNode.(*workflow.EndNode), wflow.End)
96+
u.AssertEquals(t, prevNode.(*workflow.EndTask), wflow.End)
9997
}
10098

10199
func TestChoiceWorkflow(t *testing.T) {
@@ -108,7 +106,6 @@ func TestChoiceWorkflow(t *testing.T) {
108106
arr[0] = workflow.NewConstCondition(false)
109107
arr[1] = workflow.NewConstCondition(rand.Int()%2 == 0)
110108
arr[2] = workflow.NewConstCondition(true)
111-
width := len(arr)
112109
f, fArr, err := initializeSameFunctionSlice(1, "js")
113110
u.AssertNil(t, err)
114111

@@ -117,25 +114,24 @@ func TestChoiceWorkflow(t *testing.T) {
117114

118115
u.AssertNonNil(t, wflow.Start)
119116
u.AssertNonNil(t, wflow.End)
120-
u.AssertEquals(t, wflow.Width, width)
121-
u.AssertNonNil(t, wflow.Nodes)
122-
// u.AssertEquals(t, width+1, len(workflow.Nodes))
117+
u.AssertNonNil(t, wflow.Tasks)
118+
// u.AssertEquals(t, width+1, len(workflow.Tasks))
123119

124-
//tasks := workflow.NewNodeSetFrom(workflow.Nodes)
120+
//tasks := workflow.NewNodeSetFrom(workflow.Tasks)
125121
choiceWorkflow, found := wflow.Find(wflow.Start.Next)
126-
choice := choiceWorkflow.(*workflow.ChoiceNode)
122+
choice := choiceWorkflow.(*workflow.ChoiceTask)
127123
u.AssertTrue(t, found)
128-
for _, n := range wflow.Nodes {
124+
for _, n := range wflow.Tasks {
129125
switch n.(type) {
130-
case *workflow.ChoiceNode:
126+
case *workflow.ChoiceTask:
131127
u.AssertEquals(t, len(choice.Conditions), len(choice.Alternatives))
132128
for _, s := range choice.Alternatives {
133129
simple, foundS := wflow.Find(s)
134130
u.AssertTrue(t, foundS)
135-
u.AssertEquals(t, simple.(*workflow.SimpleNode).OutputTo, wflow.End.GetId())
131+
u.AssertEquals(t, simple.(*workflow.SimpleTask).OutputTo, wflow.End.GetId())
136132
}
137-
case *workflow.SimpleNode:
138-
u.AssertTrue(t, n.(*workflow.SimpleNode).Func == f.Name)
133+
case *workflow.SimpleTask:
134+
u.AssertTrue(t, n.(*workflow.SimpleTask).Func == f.Name)
139135
}
140136
}
141137
}
@@ -161,31 +157,29 @@ func TestChoiceWorkflow_BuiltWithNextBranch(t *testing.T) {
161157
EndChoiceAndBuild()
162158

163159
choiceWorkflow, foundStartNext := wflow.Find(wflow.Start.Next)
164-
choice := choiceWorkflow.(*workflow.ChoiceNode)
165-
width := len(choice.Alternatives)
160+
choice := choiceWorkflow.(*workflow.ChoiceTask)
166161

167162
u.AssertNil(t, err)
168163

169164
u.AssertNonNil(t, wflow.Start)
170165
u.AssertNonNil(t, wflow.End)
171-
u.AssertEquals(t, wflow.Width, width)
172-
u.AssertNonNil(t, wflow.Nodes)
173-
// u.AssertEquals(t, width+1, len(workflow.Nodes))
166+
u.AssertNonNil(t, wflow.Tasks)
167+
// u.AssertEquals(t, width+1, len(workflow.Tasks))
174168

175-
// tasks := workflow.NewNodeSetFrom(workflow.Nodes)
169+
// tasks := workflow.NewNodeSetFrom(workflow.Tasks)
176170
u.AssertTrue(t, foundStartNext)
177-
for _, n := range wflow.Nodes {
171+
for _, n := range wflow.Tasks {
178172
switch node := n.(type) {
179-
case *workflow.ChoiceNode:
173+
case *workflow.ChoiceTask:
180174
u.AssertEquals(t, len(choice.Conditions), len(choice.Alternatives))
181175
for _, s := range choice.Alternatives {
182176
simple, foundS := wflow.Find(s)
183177
u.AssertTrue(t, foundS)
184178
if length == 1 {
185-
u.AssertEquals(t, simple.(*workflow.SimpleNode).OutputTo, wflow.End.GetId())
179+
u.AssertEquals(t, simple.(*workflow.SimpleTask).OutputTo, wflow.End.GetId())
186180
}
187181
}
188-
case *workflow.SimpleNode:
182+
case *workflow.SimpleTask:
189183
u.AssertTrue(t, node.Func == f.Name)
190184
}
191185
}
@@ -208,30 +202,29 @@ func TestBroadcastWorkflow(t *testing.T) {
208202

209203
u.AssertNonNil(t, wflow.Start)
210204
u.AssertNonNil(t, wflow.End)
211-
u.AssertEquals(t, width, wflow.Width)
212-
u.AssertNonNil(t, wflow.Nodes)
213-
u.AssertEquals(t, length*width+4, len(wflow.Nodes)) // 1 (fanOut) + 1 (fanIn) + width * length (simpleNodes) + 1 start + 1 end
205+
u.AssertNonNil(t, wflow.Tasks)
206+
u.AssertEquals(t, length*width+4, len(wflow.Tasks)) // 1 (fanOut) + 1 (fanIn) + width * length (simpleNodes) + 1 start + 1 end
214207

215-
// tasks := workflow.NewNodeSetFrom(workflow.Nodes)
208+
// tasks := workflow.NewNodeSetFrom(workflow.Tasks)
216209
_, foundStartNext := wflow.Find(wflow.Start.Next)
217210
u.AssertTrue(t, foundStartNext)
218211

219-
for _, n := range wflow.Nodes {
212+
for _, n := range wflow.Tasks {
220213
switch n.(type) {
221-
case *workflow.FanOutNode:
222-
fanOut := n.(*workflow.FanOutNode)
214+
case *workflow.FanOutTask:
215+
fanOut := n.(*workflow.FanOutTask)
223216
u.AssertEquals(t, len(fanOut.OutputTo), fanOut.FanOutDegree)
224217
u.AssertEquals(t, width, fanOut.FanOutDegree)
225218
for _, s := range fanOut.OutputTo {
226219
_, found := wflow.Find(s)
227220
u.AssertTrue(t, found)
228221
}
229-
case *workflow.FanInNode:
230-
fanIn := n.(*workflow.FanInNode)
222+
case *workflow.FanInTask:
223+
fanIn := n.(*workflow.FanInTask)
231224
u.AssertEquals(t, width, fanIn.FanInDegree)
232225
u.AssertEquals(t, wflow.End.GetId(), fanIn.OutputTo)
233-
case *workflow.SimpleNode:
234-
u.AssertTrue(t, n.(*workflow.SimpleNode).Func == f.Name)
226+
case *workflow.SimpleTask:
227+
u.AssertTrue(t, n.(*workflow.SimpleTask).Func == f.Name)
235228
default:
236229
continue
237230
}
@@ -249,34 +242,33 @@ func TestScatterWorkflow(t *testing.T) {
249242

250243
u.AssertNonNil(t, wflow.Start)
251244
u.AssertNonNil(t, wflow.End)
252-
u.AssertEquals(t, wflow.Width, width) // width is fixed at workflow definition-time
253-
u.AssertNonNil(t, wflow.Nodes)
254-
u.AssertEquals(t, width+4, len(wflow.Nodes)) // 1 (fanOut) + 1 (fanIn) + width (simpleNodes) + 1 start + 1 end
245+
u.AssertNonNil(t, wflow.Tasks)
246+
u.AssertEquals(t, width+4, len(wflow.Tasks)) // 1 (fanOut) + 1 (fanIn) + width (simpleNodes) + 1 start + 1 end
255247

256-
// tasks := workflow.NewNodeSetFrom(workflow.Nodes)
248+
// tasks := workflow.NewNodeSetFrom(workflow.Tasks)
257249
startNext, startNextFound := wflow.Find(wflow.Start.Next)
258250
u.AssertTrue(t, startNextFound)
259-
_, ok := startNext.(*workflow.FanOutNode)
251+
_, ok := startNext.(*workflow.FanOutTask)
260252
u.AssertTrue(t, ok)
261253
simpleNodeChainedToFanIn := 0
262-
for _, n := range wflow.Nodes {
254+
for _, n := range wflow.Tasks {
263255
switch node := n.(type) {
264-
case *workflow.FanOutNode:
256+
case *workflow.FanOutTask:
265257
fanOut := node
266258
u.AssertEquals(t, len(fanOut.OutputTo), fanOut.FanOutDegree)
267259
u.AssertEquals(t, width, fanOut.FanOutDegree)
268260
for _, s := range fanOut.OutputTo {
269261
_, foundSimple := wflow.Find(s)
270262
u.AssertTrue(t, foundSimple)
271263
}
272-
case *workflow.FanInNode:
264+
case *workflow.FanInTask:
273265
fanIn := node
274266
u.AssertEquals(t, width, fanIn.FanInDegree)
275267
u.AssertEquals(t, wflow.End.GetId(), fanIn.OutputTo)
276-
case *workflow.SimpleNode:
277-
u.AssertTrue(t, n.(*workflow.SimpleNode).Func == f.Name)
268+
case *workflow.SimpleTask:
269+
u.AssertTrue(t, n.(*workflow.SimpleTask).Func == f.Name)
278270
outputTo, _ := wflow.Find(node.OutputTo)
279-
_, chainedToFanIn := outputTo.(*workflow.FanInNode)
271+
_, chainedToFanIn := outputTo.(*workflow.FanInTask)
280272
u.AssertTrue(t, chainedToFanIn)
281273
simpleNodeChainedToFanIn++
282274
default:
@@ -304,36 +296,34 @@ func TestCreateBroadcastMultiFunctionWorkflow(t *testing.T) {
304296

305297
u.AssertNonNil(t, wflow.Start)
306298
u.AssertNonNil(t, wflow.End)
307-
u.AssertEquals(t, 2, wflow.Width)
308-
u.AssertNonNil(t, wflow.Nodes)
309-
u.AssertEquals(t, length1+length2+4, len(wflow.Nodes)) // 1 (fanOut) + 1 (fanIn) + width (simpleNodes) + 1 start + 1 end
299+
u.AssertNonNil(t, wflow.Tasks)
300+
u.AssertEquals(t, length1+length2+4, len(wflow.Tasks)) // 1 (fanOut) + 1 (fanIn) + width (simpleNodes) + 1 start + 1 end
310301

311-
// tasks := workflow.NewNodeSetFrom(workflow.Nodes)
302+
// tasks := workflow.NewNodeSetFrom(workflow.Tasks)
312303
u.AssertTrue(t, startNextFound)
313-
_, ok := startNext.(*workflow.FanOutNode)
304+
_, ok := startNext.(*workflow.FanOutTask)
314305
u.AssertTrue(t, ok)
315306

316307
simpleNodeChainedToFanIn := 0
317-
for _, n := range wflow.Nodes {
308+
for _, n := range wflow.Tasks {
318309
switch node := n.(type) {
319-
case *workflow.FanOutNode:
310+
case *workflow.FanOutTask:
320311
fanOut := node
321312
u.AssertEquals(t, len(fanOut.OutputTo), fanOut.FanOutDegree)
322313
// test that there are simple nodes chained to fan out
323314
for _, s := range fanOut.OutputTo {
324315
_, foundSimple := wflow.Find(s)
325316
u.AssertTrue(t, foundSimple)
326317
}
327-
case *workflow.FanInNode:
318+
case *workflow.FanInTask:
328319
fanIn := node
329-
u.AssertEquals(t, wflow.Width, fanIn.FanInDegree)
330320
u.AssertEquals(t, wflow.End.GetId(), fanIn.OutputTo)
331321
default:
332322
continue
333-
case *workflow.SimpleNode:
323+
case *workflow.SimpleTask:
334324
u.AssertTrue(t, node.Func == f.Name)
335325
outputTo, _ := wflow.Find(node.OutputTo)
336-
if _, ok := outputTo.(*workflow.FanInNode); ok {
326+
if _, ok := outputTo.(*workflow.FanInTask); ok {
337327
simpleNodeChainedToFanIn++
338328
}
339329
}
@@ -375,48 +365,48 @@ func TestWorkflowBuilder(t *testing.T) {
375365
EndChoiceAndBuild()
376366

377367
u.AssertNil(t, err)
378-
// tasks := workflow.NewNodeSetFrom(workflow.Nodes)
368+
// tasks := workflow.NewNodeSetFrom(workflow.Tasks)
379369
simpleNodeChainedToFanIn := 0
380-
for _, n := range wflow.Nodes {
370+
for _, n := range wflow.Tasks {
381371
switch node := n.(type) {
382-
case *workflow.FanOutNode:
372+
case *workflow.FanOutTask:
383373
fanOut := node
384374
u.AssertEquals(t, len(fanOut.OutputTo), fanOut.FanOutDegree)
385375
u.AssertEquals(t, width, fanOut.FanOutDegree)
386376
for _, s := range fanOut.OutputTo {
387377
_, found := wflow.Find(s)
388378
u.AssertTrue(t, found)
389379
}
390-
case *workflow.FanInNode:
380+
case *workflow.FanInTask:
391381
fanIn := node
392382
u.AssertEquals(t, width, fanIn.FanInDegree)
393383
u.AssertEquals(t, wflow.End.GetId(), fanIn.OutputTo)
394-
case *workflow.SimpleNode:
384+
case *workflow.SimpleTask:
395385
u.AssertTrue(t, node.Func == f.Name)
396386
nextNode, _ := wflow.Find(node.GetNext()[0])
397-
if _, ok := nextNode.(*workflow.FanInNode); ok {
387+
if _, ok := nextNode.(*workflow.FanInTask); ok {
398388
simpleNodeChainedToFanIn++
399389
}
400-
case *workflow.ChoiceNode:
390+
case *workflow.ChoiceTask:
401391
choice := node
402392
u.AssertEquals(t, len(choice.Conditions), len(choice.Alternatives))
403393

404394
// specific for this test
405395
alt0, foundAlt0 := wflow.Find(choice.Alternatives[0])
406396
alt1, foundAlt1 := wflow.Find(choice.Alternatives[1])
407-
firstAlternative := alt0.(*workflow.SimpleNode)
408-
secondAlternative := alt1.(*workflow.FanOutNode)
397+
firstAlternative := alt0.(*workflow.SimpleTask)
398+
secondAlternative := alt1.(*workflow.FanOutTask)
409399

410400
u.AssertTrue(t, foundAlt0)
411401
u.AssertTrue(t, foundAlt1)
412402
u.AssertEquals(t, firstAlternative.OutputTo, wflow.End.GetId())
413403
// checking fan out - simples - fan in
414404
for i := range secondAlternative.OutputTo {
415405
secondAltOutput, _ := wflow.Find(secondAlternative.OutputTo[i])
416-
simple, ok := secondAltOutput.(*workflow.SimpleNode)
406+
simple, ok := secondAltOutput.(*workflow.SimpleTask)
417407
u.AssertTrue(t, ok)
418408
simpleNext, _ := wflow.Find(simple.OutputTo)
419-
_, okFanIn := simpleNext.(*workflow.FanInNode)
409+
_, okFanIn := simpleNext.(*workflow.FanInTask)
420410
u.AssertTrue(t, okFanIn)
421411
}
422412

@@ -448,10 +438,10 @@ func TestVisit(t *testing.T) {
448438

449439
nodeList := make([]workflow.Task, 0)
450440
visitedNodes := workflow.Visit(complexWorkflow, complexWorkflow.Start.Id, nodeList, false)
451-
u.AssertEquals(t, len(complexWorkflow.Nodes), len(visitedNodes))
441+
u.AssertEquals(t, len(complexWorkflow.Tasks), len(visitedNodes))
452442

453443
visitedNodes = workflow.Visit(complexWorkflow, complexWorkflow.Start.Id, nodeList, true)
454-
u.AssertEquals(t, len(complexWorkflow.Nodes)-1, len(visitedNodes))
444+
u.AssertEquals(t, len(complexWorkflow.Tasks)-1, len(visitedNodes))
455445

456446
visitedNodes = workflow.Visit(complexWorkflow, choice, nodeList, false)
457447
u.AssertEquals(t, 8, len(visitedNodes))

0 commit comments

Comments
 (0)