Commit graph

17830 commits

Author SHA1 Message Date
Jacob McGill
1c4fe510d0 IOS Ping: Add new module to support ping tests from IOS devices (#28557)
* IOS Ping: Add new module to support ping tests from IOS devices

* Add tests

* Add fixtures for ios_ping
2017-08-29 11:21:49 -04:00
Constantin
11b1ad0928 [cloud] Handle client-error exceptions in s3_bucket (#26044)
* Handle exception when capital letter used in S3 bucket name.

* Fix whitespace for PEP8
2017-08-29 11:11:27 -04:00
Giovanni Tirloni
5b21ef3e2c Add check_mode support to hostname module (#27700) 2017-08-29 10:32:01 -04:00
James Cammarata
551a020e78 Fix incorrect use of datetime in letsencrypt (#27672)
Also correctly sets the locale for run_command executions using the module
provided method for setting the locale instead of the locale module in python.
2017-08-29 09:14:48 -05:00
Reid Wahl
0c9c0c59f2 Skip confirmation prompts in gluster_volume (#22402) (#28712) 2017-08-29 10:08:24 -04:00
maorlipchuk
81caa837a4 Use data center UUID/name in storage domains module (#28659)
The ansible action ovirt_storage_domains obligates a data center
name of the attached storage domain as part of its action's arguments,
so it will get the attached_sd_service as part of the functionality
of changing the storage domain status (to maintenance for example).

On the other hand, ovirt_storage_domains_facts retrieves a storage
domain entity with information about the data center which the storage
domain is attached to as a UUID identifier (without name).
So for the user to use that storage domain, fetched from the facts
module, one will have to fetch the DC entity to get the name.

We could use the search which is used today using:
   service.list(search=...)
but that type of search does not support search by Guid.
Therefor this patch provides the ability to use ovirt_storage_domains
action with state change using also a DC UUID instead of a DC name.
2017-08-29 09:50:38 -04:00
Brian Coca
c06f8a3f9b allow pesky 'bridge' facts to bypass facts filter (#28401)
* allow pesky 'bridge' facts to bypass facts filter

fixes #27729, #23577

* I ate pepe
2017-08-29 09:47:40 -04:00
Nathaniel Case
40907d7db2 Fix detection of associate-vrf parameter (#28725) 2017-08-29 09:47:27 -04:00
Brian Coca
4f6b270620 minor fixes to playbook imports (#28422)
* minor fixes to playbook imports

* updated per feedback
2017-08-29 09:46:48 -04:00
Giovanni Sciortino
94707d03e8 pam_limits creates custom file if not exist (#26989) (#28616) 2017-08-29 09:43:34 -04:00
David Peterson
ef58d34e96 Update azure_rm_storageaccount.py (#28605)
Edited kind choice. Fixes #25932
2017-08-29 09:37:38 -04:00
Kai
3251aecd95 Fix leading slashes being stripped from mount src (#24013)
* Tidy mount module for testing

Fix spelling mistakes in comments. I *think* the example for omitting parents
root has the wrong parent ID.

Make mountinfo file a parameter for testing.

* Don't strip leading slash from mounts

The current code does not follow the example, it produces src=tmp/aaa instead
of src=/tmp/aaa. This causes problems with bind mounts under /rootfs.

* Use dictionary to store mounts by ID

Instead of looping over each one to check if the ID matches. This does not
preserve the order of the output on < Python3.6, but that is not necessary.

* Make linux_mounts a dict

Always accessed by 'dst', so avoid looping by just making it a key.

* Add test case for get_linux_mounts
2017-08-29 15:16:53 +02:00
Ganesh Nalawade
a914a39975 Convert value of port and timeout in provider to integer (#28732)
Fixes #28361
2017-08-29 18:40:10 +05:30
Daniel Moore
c342866016 HAProxy: add support for draining connections in maintenace mode (#25887)
* HAProxy: Support waiting for nodes to drain before maint mode

A common task when working with a HAProxy-managed node is to first "drain" it
and then place it into maintenance mode (to be repaired or redeployed).
(Draining such a node consists of preventing new connections from being
established while waiting for active sessions to expire/close.)  This commit
creates a new `drain' parameter for Ansible's HAProxy module, which, when set to
`yes` in conjunction with `state: disabled` and `wait: yes`, causes the module
to attempt to set a node to drain, wait for it to finish draining, and put the
node into maintenance mode.  The action is recorded as a success if these steps
are completed before a maximum wait timeout is reached.

Implements: https://github.com/ansible/ansible-modules-extras/issues/521

Acknowledgments: This is based on user krislindgren's pull request #21420

* Correct how drain option is handled

Previously the `drain` parameter would have no effect, since the `disabled`
state would still immediately place backend servers into maintenance mode.
2017-08-29 07:01:52 -04:00
Thomas Krahn
8e6c0ca599 ipa_group: Fix issue 25660 (#26282) 2017-08-29 08:37:16 +02:00
Ondra Machacek
d0bb2a41d4 cloud: ovirt: add developer README.rst (#22685)
* cloud: ovirt: add developer README.rst

* Copy edits
2017-08-28 20:58:30 -04:00
Dag Wieers
61d2201a2d win_get_url: Add use_proxy, headers and timeout (#26612)
* win_get_url: Add use_proxy, headers and timeout

This PR includes:
- Add use_proxy parameter
- Add timeout parameter
- Add headers parameter
- Simplify logic
- Create separate CheckModified-File
- Now use -LiteralPath instead of -Path
- Clean up documentation

* win_get_url: Add use_proxy, headers and timeout

This PR includes:
- Add use_proxy parameter
- Add timeout parameter
- Add headers parameter
- Simplify logic
- Create separate CheckModified-File
- Now use -LiteralPath instead of -Path
- Clean up documentation
2017-08-28 20:11:10 -04:00
Jordan Borean
b84a48caef win_msi: deprecated in favour of win_package (#28741) 2017-08-28 19:53:28 -04:00
Jordan Borean
a695f30411 Added powershell SID utils for shared common code (#27091)
* Added powershell SID utils for shared common code

* rebased from upstream and fixed up module util after change
2017-08-28 19:15:58 -04:00
Jordan Borean
adabefd016 win_package: rewrite, check mode, tests, more check options (#27470)
* rewrite of win_package to enable win_msi deprecation

* fix some minor doc issues

* Removed exe tests

* dag's changes seem to be missing, re-add them

* fixed yaml for return values
2017-08-28 19:03:10 -04:00
Dag Wieers
91e2319806 win_shortcut: Support environment variables/UNC paths (#27089)
This was a regression.
Integration tests needs to be adapted too.
2017-08-28 18:58:14 -04:00
Artem Zinenko
1c958af88b [28017] Integration tests for win_rabbitmq_plugin (#28118)
* Check registry to find RabbitMQ installation path

* Integration tests for win_rabbitmq_plugin

* Added himself to BOTMETA.yml

* Skipped running tests on Windows 2008 SP2
2017-08-28 18:48:10 -04:00
pari-
468e71bf71 npm: fix idempotence (#22238)
* npm: fix idempotence

* Better idempotency fix

More intelligently add --production rather than depending on hard coded order in args list
Cleanup boilderplate imports and license
PEP8 fixes
2017-08-28 17:26:01 -04:00
Brian Coca
f9b3f4f934 make groups magic var dependant on inventory (#28677)
* make groups magic var dependant on inventory

it was overtly restricted by 'host'
minor fixes to test_var_manager.py, need to test other values also

* pepe hates extra blank line
2017-08-28 17:21:11 -04:00
Brian Coca
de6ba4daff add toggle to controle inventory parse as error (#28729)
* add toggle to controle inventory parse as error

also rearranged new inventory options into it's own ini section

* updated with inventory features

also minor fixes/consolidation on deprecated/removed modules

* tweaked settings
2017-08-28 17:17:19 -04:00
Nathaniel Case
862cde5e82 [WIP] Fix nxos_banner (#28607)
* Fix `'state': 'absent'`

* Replace idempotence tests with references

* Fix issues with nxos_banner
2017-08-28 17:09:54 -04:00
Trishna Guha
0a8ec4ddef fix nxos_igmp_interface output (#28735)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2017-08-28 17:06:30 -04:00
Michael De La Rue
fbec5ab12d [cloud] new module lambda_policy (PR #24951)
- Fixes to lambda
- reformatting + tests for lambda_facts
- lambda module integration test
- switch lambda and lambda_facts to AnsibleAwsModule
- Get the account ID from STS, GetUser, and finally error message
2017-08-28 16:45:53 -04:00
Trishna Guha
c36c34ef7e fix nxos parse response KeyError (#28602)
* fix nxos parse response

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* use get() method instead
2017-08-28 16:15:20 -04:00
Brayneded
335e804c0c Add junos_vrf vrf-table-label support (#28727)
* Added VRF Table Label Support

* Added table_label docs and set as default=true
2017-08-29 00:44:51 +05:30
Mike Wiebe
3d46258cff Refactor/fix nxos_nxapi to use show run (#28675)
* Refactor/fix nxos_nxapi to use show run

* Fix unit tests

* Python 3 compatibility
2017-08-28 15:00:56 -04:00
Brian Coca
f5743396dc skip all hidden keys, allow exclude list 2017-08-28 12:56:14 -04:00
Will Thames
63df0adc17 [cloud] Update RDS parameter group for boto3 (#25345)
* Update RDS parameter group for boto3

* Update to boto3
* Update to latest ansible standards
* Remove choices list for valid engines (See #19221 for context)
* Allow tagging
* Return some useful information, and document that information

* Add tests for rds_param_group

* Improve testing of rds_param_group

* Add purge_tags option for rds_param_group

* Fix remaining broken rds_param_group tests

* Ensure the group name is lowercased. Fixes integration tests when run on OSX
2017-08-28 12:52:22 -04:00
Joerg Kastning
f08c29924e Added folder and datacenter to the examples (#25221)
* Added folder and datacenter to the examples

From #22644 it seems that the parameter 'folder' is mandatory. While both are required parameters they should be used in the examples.

* Removed 'required: True' from folder documentation

I reverted the documentation of the folder option to be a not required one. This way it stays consistent with the definition of the function.
2017-08-28 18:42:27 +02:00
Reid Wahl
3c65c2bfaf Fixes #20752: Prevent AIX get_vgs_facts from failing on offline lvols (#28701) 2017-08-28 12:38:32 -04:00
Abhijeet Kasurde
3e20acbd79 Refactor code for find_host_by_cluster_datacenter (#26859)
Fix adds refactor of code for find_host_by_cluster_datacenter
API in vmware_host and vmware_resource_pool.
Also, adds strict check for cluster and datacenter object find.
Testcase for vmware_resource_pool.

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-08-28 18:36:46 +02:00
Pat McClory
5065bf169d Fix bug where ansible_lvm facts silently fails if a PV isn't in an VG (#28684)
If a PV hasn't been added to a VG i.e.:

[pmcclory@box ~]$ sudo pvs --noheadings --nosuffix --units g
  /dev/xvdb       lvm2 ---- 10.00 10.00
  /dev/xvdv1 vg0  lvm2 a--u 24.99     0

Than ansible_facts.ansible_lvm will be unset after running setup module.

The issue is that the module splits on whitespace, which causes an
indexing error when the VG column is empty.

Fix is to add the separator field and safely split on that.
2017-08-28 12:25:53 -04:00
René Moser
c1be5b2389 openssl_certificate: consistent param namings (#28521) 2017-08-28 17:29:16 +02:00
Katerina Koukiou
1c9c16a101 cloud: ovirt: Add option to import SD with sd_type != block storage type (#28593) 2017-08-28 11:15:41 -04:00
Ondra Machacek
b9600281d6 ovirt_hosts: Add upgrade_check action (#28437)
* ovirt_hosts: Add upgrade_check action

* Fix pep8 issue
2017-08-28 11:15:05 -04:00
Reid Wahl
f787be3597 Fixes #22335: Adds filename extension to tempfile for Vault 2017-08-28 11:01:04 -04:00
Adrian Likins
1f962bd937 Fix config value type for VAULT_IDENTITY_LIST (#28678)
Was using the 'value_type' key, but didn't get updated
to the new 'type' key in merge.

Fix playbooks cli so it uses VAULT_IDENTITY_LIST as well.
2017-08-28 10:13:14 -04:00
Radu Epure
54c295699e [cloud] Add DBName to RDS Facts if it exists (#27121)
* + Add DBName in RDS Facts if it's not null

* - remove 2 offending lines for automatic tests

* Syntax change for shorter code and improved readability
2017-08-28 08:33:34 -04:00
Ondra Machacek
5be37018a2 cloud: ovirt: present state shouldn't change state if not needed (#28214)
This PR fixes: https://github.com/ansible/ansible/issues/27382
2017-08-28 08:20:55 -04:00
Felipe Garcia Bulsoni
791a029203 Added support to HPE Network Set resources (#28614)
- Added unit tests
2017-08-27 00:49:12 +02:00
Felipe Garcia Bulsoni
978c64afc5 Support retrieving Facts about Fibre Channel resource of HPE OneView (#28608)
* Added FcNetworkFactsModule to query FC Network Resources in HPE OneView

- Added unit tests

* Removing unnecessary quotes from example and documentation
2017-08-27 00:46:35 +02:00
Dag Wieers
a1876bac9c pkg5_publisher: Fix on failed, PEP8 compliancy (#26019) 2017-08-27 00:30:05 +02:00
Dag Wieers
9b31ca8d16 Small cleanup in return values (#28693) 2017-08-27 00:25:20 +02:00
Anil Kumar Muraleedharan
eee6da857f Update CNOS.py to fix error in image download on devices (#28589)
* Update CNOS.py to fix error in image download on devices

* Fixing Bug on Swaping of character indexes of error strings
2017-08-26 13:38:00 -04:00
Mike Rostermund
550c00a745 snmp_facts: Fix typo in example docs (#28689) 2017-08-26 11:09:02 +02:00
Brian Coca
95eaa246aa added keyed_group construction (#28578)
* added keyed_group construction

also added strict config to allow skipping bad templating
more precise error msgs
to_native better than to_text
fixed truthyness
added safe names

* allow keyed expressions to return lists

* PEPE should eat less, he is getting fat
2017-08-25 22:00:07 -04:00
Dag Wieers
1afbe29642 Remove transport_test for some connection types (#28450)
So we are removing the transport_test for the listed connection types,
because they fail to take into account bastion or proxy servers for
testing the transport.

The result of removing this, is that modules using this facility will do
a complete round-trip attempt, running a module, which is a bit heavier but correct.

This fixes #23774
2017-08-26 01:16:40 +02:00
Dag Wieers
357119f3b7 xml module: Improve documentation (#28667)
Missing bits and pieces, clarifications and examples.

This fixes #27951
This fixes #28119
This fixes cmprescott/ansible-xml#59
2017-08-25 23:53:38 +02:00
Peter Sprygada
ebf529f8b8 correctly map to connection_user from remote_user in play_context (#28676)
This change will map the remote_user prop to connection_user if it is
not aleady set.  It also adds a var mapping to ansible_connection_user
in the inventory to override the local user if needed.  This is
primarily used by the network_cli connection plugin today.

fixes #26120
2017-08-25 15:53:25 -04:00
George Nikolopoulos
869eee0762 Deprecate citrix/netscaler module (#28280)
* Deprecate citrix/netscaler module

* 	renamed:    netscaler.py -> _netscaler.py

* Fix legacy files list
2017-08-25 13:51:15 -04:00
George Nikolopoulos
8d14f9d578 Lowercase enabled, disabled option values (#27764) 2017-08-25 13:11:48 -04:00
George Nikolopoulos
c01dd6470c Add disable operation for netscaler_servicegroup (#28327) 2017-08-25 17:03:21 +01:00
George Nikolopoulos
2281a6676b Add enable, disable operation in netscaler_service (#28321) 2017-08-25 16:58:51 +01:00
Nathaniel Case
fbeb3b9ac5 Nxos ping (#28665)
* Update documentation & results, clean up code

* Change numeric results to int/float
2017-08-25 11:45:46 -04:00
Ivan Bojer
9b8abc8a7f panos_sag: static address group (#28041)
* - Create a static address group object in the firewall used for policy rules.

* PEP8 changes

* add function to check for devicegrp name

* fix exception handling

* PEP8 fixes

* update metadata_version
2017-08-25 16:35:35 +01:00
Evgeny Fedoruk
71313ce04d Module for uploading templates into vDirect server (#27570)
* Module for uploading templates into vDirect server

Module for uploading configuration and workflow templates
into Radware vDirect server

* Module for uploading templates into vDirect server

Module for uploading configuration and workflow templates
into Radware vDirect server
2017-08-25 16:23:36 +01:00
Peter Sprygada
ed23424b32 reverts 28599 2017-08-25 10:59:01 -04:00
René Moser
cc3bb0a043 cloudstack: cs_instance: warn for changes not applicable to running VMs. (#28664) 2017-08-25 16:47:14 +02:00
Andrew Makousky
9190598096 Set task status correctly for vmware_guest shutdown and reboot. (#26515) 2017-08-25 10:21:02 -04:00
Dag Wieers
11c9756d9c xml module: Make user interface much more restricted (#28657)
So the xml module has a lot of parameters that combined together do
specific things. however it does not really describe which parameters
are required together, or which ones are required.

This PR fixes that situation and makes it impossible to provide
confussing parameters combinations.

Also, `pretty_print` was used as a flag to modify the output, but also
as an action to reformat the file (without other change). This is
problematic the way it was designed. This fixes that too.

This fixes #28194
2017-08-25 15:01:24 +02:00
Peter Sprygada
75293d83ca configures address-families when vrf is created (#28615)
* configures address-families when vrf is created

fixes #26725

* fix up unit test cases
2017-08-25 07:51:20 -04:00
Jacob McGill
a03a1cde88 ACI Tenant SPAN Src Grp to Dst Grp: Add new module to support managin… (#28645)
* ACI Tenant SPAN Src Grp to Dst Grp: Add new module to support managing Tenant SPAN Source Group and Dest Group Bindings

* Fix docstring errors

* Fix Metadata version

* Fix Shippable issues
2017-08-25 11:33:41 +02:00
Jacob McGill
6401478883 ACI Tenant SPAN Src Grp: Add new module to support managing Tenant SP… (#28644)
* ACI Tenant SPAN Src Grp: Add new module to support managing Tenant SPAN Source Groups

* Fix docstring errors

* Fix Metadata version

* Fix Shippable issue
2017-08-25 11:32:41 +02:00
Jacob McGill
05a17164e3 ACI EPG: Update module to use new URL Method (#28647) 2017-08-25 08:37:56 +02:00
Jacob McGill
eaea574e3b ACI Tenant EP Retention Policy: Add new module to support managing En… (#28642)
* ACI Tenant EP Retention Policy: Add new module to support managing End Point Retention Policies

* Fix docstring errors

* Fix Metadata version
2017-08-25 08:37:28 +02:00
Jacob McGill
bac617acef ACI Taboo Contract: Update module to use new URL Method (#28639) 2017-08-25 08:37:12 +02:00
Jacob McGill
8b641688e9 ACI Tenant Action Rule Profile: Update module to use new URL Method (#28641) 2017-08-25 08:36:51 +02:00
Jacob McGill
a12ff4468d ACI SPAN Dest Group: Update module to use new URL Method (#28643) 2017-08-25 08:36:34 +02:00
Jacob McGill
8a966a48c8 ACI VRF: Update module to use new URL Method (#28646) 2017-08-25 08:35:45 +02:00
Jacob McGill
f7a466cbb4 ACI Intf Policy Port Security: Update module to use new URL Method (#28638) 2017-08-25 08:35:26 +02:00
Jacob McGill
f9036133bb ACI Tenant: Update module to use new URL Method (#28640) 2017-08-25 08:35:00 +02:00
Jacob McGill
9c564de765 ACI L3Out Route Tag: Update module to use new URL Method (#28637) 2017-08-25 08:34:35 +02:00
Jacob McGill
a6614a132d ACI Intf Policy Port Channel: Update module to use new URL Method; add support for ctrl (#28636) 2017-08-25 08:33:57 +02:00
Jacob McGill
1bec0e5753 ACI BD: Update module to use new URL Method (#28625)
* ACI BD: Update module to use new URL Method

* fix docstring errors
2017-08-25 08:33:27 +02:00
Jacob McGill
2e61760659 ACI Contract Subject: Add new module to support managing Contract Sub… (#28620)
* ACI Contract Subject: Add new module to support managing Contract Subjects in ACI

* Fix Metadata

* Fix Metadata version
2017-08-25 08:33:00 +02:00
Jacob McGill
e434c291ca ACI Intf Policy MCP: Update module to use new URL Method (#28635) 2017-08-25 04:21:08 +02:00
Jacob McGill
fa6da960db ACI Intf Policy LLDP: Update module to use new URL Method (#28634) 2017-08-25 03:57:03 +02:00
Jacob McGill
6109a6c093 ACI Filter: Update module to use new URL Method (#28630) 2017-08-25 03:56:18 +02:00
Jacob McGill
f5f2a2fac2 ACI Intf Policy L2: Update module to use new URL Method (#28633) 2017-08-25 03:55:45 +02:00
Jacob McGill
25d1ef3493 ACI Intf Policy FC: Update module to use new URL Method (#28632) 2017-08-25 03:55:27 +02:00
Jacob McGill
85ca2234fd ACI Filter Entry: Update module to use new URL Method (#28631) 2017-08-25 03:51:21 +02:00
Jacob McGill
0577bf688c ACI EPG to Contract: Update module to use new URL Method (#28628) 2017-08-25 03:45:32 +02:00
Jacob McGill
a4087841a8 ACI EPG to Domain: Update module to use new URL Method (#28629) 2017-08-25 03:45:12 +02:00
Jacob McGill
d186c9eda2 ACI EPG Mon Policy: Update module to use new URL Method (#28627) 2017-08-25 03:43:10 +02:00
Jacob McGill
9582e7e549 Ap (#28626)
* ACI Ap: Update module to use new URL Method

* ACI Ap: Update module to use new URL Method
2017-08-25 03:21:10 +02:00
Jacob McGill
0b1ea2be9b ACI BD Subnet: Update module to use new URL Method (#28624) 2017-08-25 03:17:01 +02:00
Jacob McGill
dc232737ba ACI BD to L3Out: Update module to use new URL Method (#28623) 2017-08-25 03:16:17 +02:00
Jacob McGill
28f76166d0 ACI Contract: Update module to use new URL Method (#28622) 2017-08-25 03:15:23 +02:00
Jacob McGill
037ef743c3 ACI Contract Subject to Filter: Update module to use new URL Method (#28621) 2017-08-25 03:14:36 +02:00
Nicolas Porcel
ba420c47cd synchronize: Use private_key and ssh_user with delegate_to (Fixes #16215) (#21686) 2017-08-24 21:09:15 -04:00
Jacob McGill
061fe51e9a ACI AEP: Update module to use new URL Method (#28619)
* ACI AEP: Update module to use new URL Method

* ACI AEP: Update module to use new URL Method

* ACI AEP: Update module to use new URL Method
2017-08-25 02:46:09 +02:00
Jacob McGill
ddd3e6fb91 ACI: Update ACIModule to dynamically build URLs (#28618) 2017-08-25 02:37:34 +02:00
Dag Wieers
2634ef955a xml module: Better change detection, improved tests (#28460)
This PR includes:

- Improvements to change-detection by comparing 2 objectified XML trees
- Implement better integration tests by comparing 2 files using copy
2017-08-25 02:07:58 +02:00
banzo
3302248616 [cloud] Amazon Redshift module cluster deletion fix (#25164)
* Fix typo (#25161)

* Fixed cluster deletion: added final snapshot management

This adds 2 new options to the module API (only for the "delete" command):

* skip_final_cluster_snapshot: skip a final snapshot before deleting the cluster
* final_cluster_snapshot_identifier: identifier of the final snapshot to be created before deleting the cluster

Ref: http://boto.cloudhackers.com/en/latest/ref/redshift.html

* Fixed cluster deletion: added final snapshot management

This adds 2 new options to the module API (only for the "delete" command):

* skip_final_cluster_snapshot: skip a final snapshot before deleting the cluster
* final_cluster_snapshot_identifier: identifier of the final snapshot to be created before deleting the cluster

Ref: http://boto.cloudhackers.com/en/latest/ref/redshift.html

* add version_added information

* Review corrections:

* used required_if instead of checking parameters compatibility inside the code
* renamed aliases to be more explicit

Also added an example for the "delete" command

* Review corrections correction - make "delete" command specific parameters mandatory only when the command is "delete"

* updated doc with aliases

* Fix YAML docs syntax

* Set default to match API for skip_final_cluster_snapshot.
2017-08-24 16:41:32 -04:00
Dag Wieers
7a182fc43e xml module: Add backup to pretty_print too (#28604) 2017-08-24 22:14:17 +02:00