Skip to content

Commit 07a7060

Browse files
committed
[core] Make iteratorRange/iteratorRole copyable
1 parent 1211cd6 commit 07a7060

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

core/workflow/iteratorrange.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
)
3434

3535
type iteratorRange interface {
36+
copyable
3637
GetRange(varStack map[string]string) (ran []string, err error)
3738
GetVar() string
3839
}
@@ -42,6 +43,14 @@ type iteratorRangeExpr struct {
4243
Var string `yaml:"var"`
4344
}
4445

46+
func (f *iteratorRangeExpr) copy() copyable {
47+
itrCopy := iteratorRangeExpr{
48+
Range: f.Range,
49+
Var: f.Var,
50+
}
51+
return &itrCopy
52+
}
53+
4554
func (f *iteratorRangeExpr) GetRange(varStack map[string]string) (ran []string, err error) {
4655
rangeObj := make([]string, 0)
4756

@@ -69,6 +78,15 @@ type iteratorRangeFor struct {
6978
Var string `yaml:"var"`
7079
}
7180

81+
func (f *iteratorRangeFor) copy() copyable {
82+
itrCopy := iteratorRangeFor{
83+
Begin: f.Begin,
84+
End: f.End,
85+
Var: f.Var,
86+
}
87+
return &itrCopy
88+
}
89+
7290
func (f *iteratorRangeFor) GetRange(varStack map[string]string) (ran []string, err error) {
7391
ran = make([]string, 0)
7492

core/workflow/iteratorrole.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,15 @@ func (i *iteratorRole) expandTemplate() (err error) {
196196
return
197197
}
198198

199+
func (i *iteratorRole) copy() copyable {
200+
iCopy := iteratorRole{
201+
aggregator: *i.aggregator.copy().(*aggregator),
202+
For: i.For.copy().(iteratorRange),
203+
template: i.template, // no copy because the template stays the same
204+
}
205+
return &iCopy
206+
}
207+
199208
func (i *iteratorRole) GetParent() Updatable {
200209
if i == nil || i.template == nil {
201210
return nil

0 commit comments

Comments
 (0)