Hi, Some modules (I think the yum module is one example) have a code optimization which allows them to handle a list passed to them in one go, rather than in multiple invocations of the code.
I suggest you have a look at the code for the yum module http://docs.ansible.com/ansible/yum_module.html I haven't looked myself but there may also be an action plugin for yum to support this optimization. Hope this helps, Jon On Tuesday, February 28, 2017 at 1:09:56 PM UTC, [email protected] wrote: > > Hello, > > I'm currently trying to create a module to manage poudriere (which is a > tool to manage package repository for FreeBSD). > > When I use the pkgng module this way, the command pkgng is actually called > once, and the "name" argument is a list of all values contained in the list > provided : > - name: sample pkgng > pkgng: name="{{item}}" state=present > with_items: [ a, b, c] > > But, when I call my poudriere module : > - name: sample poudriere > poudriere: name="{{item}}" jail=jailname > with_items: [ a, b, c] > the module is called three times, once per item value. > > I assumed that to get the module called only once, all I had to do is to > declare the "name" argument as of type 'list', but this is not working : > module = AnsibleModule( > argument_spec = dict( > name = dict(required=True, type='list'), > jail = dict(required=True), > ), > supports_check_mode = True, > ) > > In my module, module.params['name'] is actually a list, but it contains a > single value each time. > > What am I missing ? > > Thanks, > SD > > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/74d59f99-2105-4028-b9ef-c3587db303da%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
