Skip to content
This repository has been archived by the owner on Jun 10, 2024. It is now read-only.

Module: xml

Sandra McCann edited this page Dec 7, 2023 · 57 revisions

GitHub xml issues GitHub xml PRs

THIS PAGE IS OLD and no longer maintained. For questions, please use the Ansible forum.

Welcome to the xml module community

This space is to collaborate on the Ansible xml module which is documented here. Feel free to add ideas or help out where you can.

News

  • This module ships with Ansible v2.4 !
  • More examples from the integration tests and support issues: #15, #27, #48, #95, #117
  • We are looking for more active maintainers. If you want to help, let us know !

Contact

  • Dag Wieers (@dagwieers)
  • Marko Stanković (@sm4rk0)
  • Christopher Prescott (@cmprescott)

Notes/Caveats

  • lxml >= 2.3.0 is required but CentOS 6.x has 2.2.3.
  • lxml >= 3.0.0 is required for predictable ordering of attributes, the module will warn if the lxml version is lower than 3.0.0.
  • White spaces between tags will break pretty_print.

TODO

  • Review open issues -- open issues
  • Make adding attribute values work with just xpath (no attribute parameter)
  • Add more examples or a dedicated xml-module section in official documentation -- integration tests

Ideas / Questions

  • Currently pretty_print forces remove_blank_text and maybe that's not always needed/wanted ?
  • What is considered a change ?
    • Does a modification to the XML file or the xmlstring count as a change ?
    • Or do we only look at XML object changes ?
  • Implement different XML output rules #28920
  • The xml module can be used for adding, removing or querying nodes
    • Currently the module implicitly adds nodes if they're not found
    • We only have a absent/present state, not a query state so this can be dangerous !
    • Should we split the querying functionality to an explicit state=query ?
  • There is a new XML filter plugin and a new win_xml module.

Completed actions

  • Upstream xml module to ship with Ansible v2.4 -- (@dagwieers) Done: PR#25323
  • Add examples using namespaces to module document -- (@sm4rk0) Done: PR#28113
  • Add stub issue/PR templates in https://github.com/cmprescott/ansible-xml (@sm4rk0) Done
  • Update README and repo title at https://github.com/cmprescott/ansible-xml
  • Add diff support -- (@dagwieers) #27952 #28592
  • Add backup support -- (@dagwieers) #27949 #28595
  • Make parameters combinations more restricted -- (@dagwieers) #28657
    • Implement required_by functionality in param_spec -- (@dagwieers) #28662
  • Fix issues with idempotency/change detection -- (@dagwieers) #28460
  • Document reading attribute value in Ansible -- (@dagwieers) #27951
  • Close all open issues on original repository -- open issues
  • Specific error message in case of XPath exceptions due to missing namespace argument, as this is the common stumbling stone for this module -- (@sm4rk0) #30271

The original repository for this module was located at: https://github.com/cmprescott/ansible-xml

(ARchived) Working groups

Working groups are now in the Ansible forum

Ansible project:
Community, Contributor Experience, Docs, News, Outreach, RelEng, Testing

Cloud:
AWS, Azure, CloudStack, Container, DigitalOcean, Docker, hcloud, Kubernetes, Linode, OpenStack, oVirt, Virt, VMware

Networking:
ACI, AVI, F5, Meraki, Network, NXOS

Ansible Developer Tools:
Ansible-developer-tools

Software:
Crypto, Foreman, GDrive, GitLab, Grafana, IPA, JBoss, MongoDB, MySQL, PostgreSQL, RabbitMQ, Zabbix

System:
AIX, BSD, HP-UX, macOS, Remote Management, Solaris, Windows

Security:
Security-Automation, Lockdown

Tooling:
AWX, Galaxy, Molecule

Communities

Modules:
unarchive, xml

Plugins:
httpapi

Wiki

Roles, Communication, Reviewing, Checklist, TODO

Clone this wiki locally