Im using Ansible 2.5 on Ubuntu 17.10
Given the following xml file
Trying to add nested elements so that the file is changed to the following output fails.
Old Rasputin 2000Here 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?