Nick,
You are indeed hitting a bug, this one:
https://cfengine.com/bugtracker/view.php?id=904
The workaround is to condition the getindices() so that it happens only on the
second pass, with something like this:
secondpass::
"array_keys" slist => getindices("local_array");
classes:
"secondpass" expression => "any";
Then it works fine.
--Diego
On Sep 9, 2012, at 10:09 AM, Nick Anderson <[email protected]> wrote:
> Is it expected behavior that you cannot create new index values with a list?
>
> If I do a simple array creation with a list it seems to work
> https://gist.github.com/3684884 (set_array_values_with_list.cf)
>
> cf-agent -KIf ./set_array_values_with_list.cf
> R: Array: local_array[id1]=value
> R: Array: local_array[id2]=value
> R: Array: local_array[id3]=value
>
>
> But if I am overriding array variables, It does not appear that I can create
> new ones. See how local_array[blue] is not set or reported, but
> local_array[red] value is successfully overridden to dog.
>
> https://gist.github.com/3684847 (override_array_defaults.cf)
>
> cf-agent -KIf ./override_array_defaults.cf
> R: Why does local_array[blue] not get set from the param?
> R:
> R: Param: main.array[red]=dog
> R: Param: main.array[blue]=fish
> R:
> R: Array: local_array[one]=fish
> R: Array: local_array[two]=fish
> R: Array: local_array[red]=dog
>
> To me it looks like a bug.
> <override_array_defaults.cf><set_array_values_with_list.cf>_______________________________________________
> Help-cfengine mailing list
> [email protected]
> https://cfengine.org/mailman/listinfo/help-cfengine
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine