File tree Expand file tree Collapse file tree 2 files changed +27
-0
lines changed
Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -33,6 +33,7 @@ import (
3333)
3434
3535type 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+
4554func (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+
7290func (f * iteratorRangeFor ) GetRange (varStack map [string ]string ) (ran []string , err error ) {
7391 ran = make ([]string , 0 )
7492
Original file line number Diff line number Diff 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+
199208func (i * iteratorRole ) GetParent () Updatable {
200209 if i == nil || i .template == nil {
201210 return nil
You can’t perform that action at this time.
0 commit comments