On 01/13/2012 05:15 AM, Nicolas Charles wrote:
> On 13/01/2012 07:05, Nick Anderson wrote:
>> I cant seem to get the syntax right for accessing a list stored in an array.
>>
>> I define users and groups using arrays, I would like to be able to use
>> the same style when defining group members.
>>
>> then pass groups to a parameterized bundle to make sure the list of
>> members for that group get added to /etc/group.
>>
>> bundle agent main {
>> vars:
>> "groups[specialadmins][gid]" string =>  "1000";
>> "groups[specialadmins][members]" slist =>  { "bill", "ted" };
>>
>> methods:
>> "specialadmins" usebundle =>  add_group_members_locally("main.groups");
>> }
>>
>> bundle agent add_group_members_locally(groups) {
>> vars:
>> "groupfile" string =>  "/tmp/group";
>> "groupindex" slist =>  getindices("$(groups)");
>>
>> files:
>>     linux::
>>          "$(groupfile)"
>>              edit_line   =>
>> append_user_field("$(groupindex)","4","@(groups[$(groupindex)][members])";
>>
>> }
>>
>> I can get it to expand out to groups[specialadmins][members] but not the
>> slist stored there, I am sure I am mis understanding some concept here,
>> can someone enlighten me?
>>
> Hi Nick,
> 
> I never managed to use a list within an array; and on the IRC channel 
> people are often reporting they are trying, but not succeeding
> I would be really interrested if someone came up with a simple solution.
> 
> When I need to use something like this, I add another level in the array
> 
> "groups[specialadmins][gid]" string =>  "1000";
> "groups[specialadmins][members][1]" string =>  "bill"
> "groups[specialadmins][members][2]" string =>  "ted"

Thanks for the idea,  I have yet to try the single dimensional array
with a list as mark suggested.

Should it be considered a bug that you can assign an slist to a
multi-dimensional array but cannot get it back out?

-- 
Nick Anderson <n...@cmdln.org>
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to