On Wednesday, 28 March 2018 07.26.14 CEST 'Uvindra Dias Jayasinha' via Ansible 
Project wrote:
> Im using Ansible 2.5 on Ubuntu 17.10
> 
> Given the following xml file
> 
> <business>
>   <beers>
>   </beers>
> </business>
> 
> 
> Trying to add nested elements so that the file is changed to the following 
> output fails.
> 
> <business>
>   <beers>
>     <beer>
>         <name>Old Rasputin</name>
>         <year>2000</year>
>     </beer>
>   </beers>
> </business>
> 
> 
> Here is the playbook I used
> 
> - name: Add several more beers with the year of manufacture nested
>   xml:
>     path: /foo/bar.xml
>     xpath: /business/beers
>     add_children:
>     - beer: 
>       - name: Old Rasputin
>       - year: 2000
> 
> I see the following exception,
> 
> An exception occurred during task execution. To see the full traceback, use   
>    -vvv. The error was: TypeError: Argument must be bytes or unicode, got 
> 'list'
> fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "Traceback 
> (most recent call last):\n  File 
> \"/tmp/ansible_sv9JSC/ansible_module_xml.py\", 
> line 860, in <module>\n    main()\n  File 
> \"/tmp/ansible_sv9JSC/ansible_module_xml.py\", line 840, in main\n    
> add_target_children(module, doc, xpath, namespaces, add_children, 
> input_type)\n  File \"/tmp/ansible_sv9JSC/ansible_module_xml.py\", line 409, 
> in add_target_children\n    
> new_kids = children_to_nodes(module, children, in_type)\n  File 
> \"/tmp/ansible_sv9JSC/ansible_module_xml.py\", line 651, in 
> children_to_nodes\n    
> return [child_to_element(module, child, type) for child in children]\n  File 
> \"/tmp/ansible_sv9JSC/ansible_module_xml.py\", line 639, in 
> child_to_element\n    
> node.text = value\n  File \"src/lxml/etree.pyx\", line 1030, in 
> lxml.etree._Element.text.__set__\n  File \"src/lxml/apihelpers.pxi\", line 
> 716, in lxml.etree._setNodeText\n  
> File \"src/lxml/apihelpers.pxi\", line 704, in lxml.etree._createTextNode\n  
> File \"src/lxml/apihelpers.pxi\", line 1442, in lxml.etree._utf8\nTypeError: 
> Argument must be bytes or unicode, got 'list'\n", 
> "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1}
> 
> Is this supported or am I missing something here?

To my knowledge you can't create children's children in one task.
You need to create beer first in one task and then name and year in a separate 
task. 

-- 
Kai Stian Olstad

-- 
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/6957465.PspIIlo9u4%40x1.
For more options, visit https://groups.google.com/d/optout.

Reply via email to