@@ -88,7 +88,7 @@ func mergeInputs[T any]() (*T, error) {
8888 fmt .Println (string (data ))
8989 }
9090
91- data , err = transformAllOverrideModeForNodeSet (data )
91+ data , err = transformAllOverrideModeForNodeSets (data )
9292 if err != nil {
9393 return nil , fmt .Errorf ("error transforming node specs: %w" , err )
9494 }
@@ -146,38 +146,44 @@ func validate(s interface{}) error {
146146 return nil
147147}
148148
149- // transformAllOverrideModeForNodeSet we need this function so the test logic can be the same in both "each" and "all" override modes
149+ // transformAllOverrideModeForNodeSets we need this function so the test logic can be the same in both "each" and "all" override modes
150150// we can't do UnmarshalTOML or UnmarshalText because our TOML library do not support it
151- func transformAllOverrideModeForNodeSet (data []byte ) ([]byte , error ) {
151+ func transformAllOverrideModeForNodeSets (data []byte ) ([]byte , error ) {
152152 var config map [string ]interface {}
153153 if err := toml .Unmarshal (data , & config ); err != nil {
154154 return nil , err
155155 }
156- nodeset , ok := config ["nodeset " ].(map [ string ]interface {})
156+ nodesets , ok := config ["nodesets " ].([ ]interface {})
157157 if ! ok {
158158 return data , nil
159159 }
160- if nodeset ["override_mode" ] != "all" {
161- return data , nil
162- }
163- nodes , ok := nodeset ["nodes" ].(int64 )
164- if ! ok || nodes <= 0 {
165- return nil , fmt .Errorf ("invalid nodes count" )
166- }
167- specs , ok := nodeset ["node_specs" ].([]interface {})
168- if ! ok || len (specs ) == 0 {
169- return nil , fmt .Errorf ("node_specs must be provided" )
170- }
171- firstSpec := specs [0 ].(map [string ]interface {})
172- expanded := make ([]interface {}, nodes )
173- for i := range expanded {
174- newSpec := make (map [string ]interface {})
175- for k , v := range firstSpec {
176- newSpec [k ] = v
160+ for _ , nodesetInterface := range nodesets {
161+ nodeset , ok := nodesetInterface .(map [string ]interface {})
162+ if ! ok {
163+ continue
164+ }
165+ if nodeset ["override_mode" ] != "all" {
166+ continue
167+ }
168+ nodes , ok := nodeset ["nodes" ].(int64 )
169+ if ! ok || nodes <= 0 {
170+ return nil , fmt .Errorf ("invalid nodes count" )
171+ }
172+ specs , ok := nodeset ["node_specs" ].([]interface {})
173+ if ! ok || len (specs ) == 0 {
174+ return nil , fmt .Errorf ("node_specs must be provided" )
175+ }
176+ firstSpec := specs [0 ].(map [string ]interface {})
177+ expanded := make ([]interface {}, nodes )
178+ for i := range expanded {
179+ newSpec := make (map [string ]interface {})
180+ for k , v := range firstSpec {
181+ newSpec [k ] = v
182+ }
183+ expanded [i ] = newSpec
177184 }
178- expanded [ i ] = newSpec
185+ nodeset [ "node_specs" ] = expanded
179186 }
180- nodeset ["node_specs" ] = expanded
181187 return toml .Marshal (config )
182188}
183189
0 commit comments