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.
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.
* 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
* 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.
* 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
* 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
* 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
* 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
* 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
- 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
* 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
* 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.
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>
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.
* + 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
* Added FcNetworkFactsModule to query FC Network Resources in HPE OneView
- Added unit tests
* Removing unnecessary quotes from example and documentation
* 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
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
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
* - 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
* 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
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
* 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
This PR includes:
- Improvements to change-detection by comparing 2 objectified XML trees
- Implement better integration tests by comparing 2 files using copy
* 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.
This change moves when the connection_user is set in the play_context to
set it before the magic variables are mapped. If the connection_user
is not set before the mapping, the connection_user will be incorrectly set
for local connections
fixes#26120
* cloudformation: dummy check mode
* cloudformation: use changesets to implement check mode
* cloudformation: wait at most 5min for change set
* cloudformation: handle stack creation and deletion in check mode
* cloudformation: standardize output format in check mode
msg is a string, meta is a list
* cloudformation: use same naming convention in get_changeset as create_changeset
also add comment about code duplication between said functions
* Remove unused imports
* PEP8 whitespace fix
* Fix CI, convert success=True check to for/else
* Add VPN module and unittests
* remove unnecessary imports
* fix documentation
* raise custom exception rather than passing module everywhere
* remove recordings
Rerecord tests
Fix docs
Ensure vpn_connection_id is a list of strings when checking if it exists
* fix check mode
* Rerecord tests
* remove superfluous code and comments and make exception handling uniform
fix docs
* Fix ec2_vpc_vpn documentation
* make ec2_vpc_vpn compatible with python 2.6 and make check mode logic more succinct
* fix comparison of list of dicts
* Fix typos and docstrings
make requested changes for imports
make code clearer
* Fix copyright and metadata version.
* Adding module to manage ethernet network on HPE OneView
* Adding unit tests to EthernetNetwork module
* Added OneViewModuleException custom exceptions to module
- Removed exception imports from hpOneView
- Updated unit tests
* Fixing mock import inside ethernet network module unit test
* Fixing issues found in METADATA by CI
* Updated paths to use solution name instead of vendor name
* Fixed documentation, removed redundant if and improved readability
* Updated _bulk_present to use and return `result`, same way as _present
* Changed __ to _ in private methods following ansible style
* Fixed some example inconsistencies and turned states doc into a list
* Added adriane-cardozo to list of maintainers
* win_robocopy: Cleanup logic, check-mode support
* win_robocopy: Cleanup logic, check-mode support
This PR includes:
- Improved check-mode support
- Clean up documentation
- Clean up code structure
- Add warnings in special cases
* minor fix for typo
* Check Windows service status before nssm STOP
Add a condition on calling nssm STOP inside Nssm-Remove, to check whether or not a service has already been stopped. Currently nssm throws an exception:
```
failed: [...] (item=...) => {"changed": false, "failed": true, "item": "...", "msg": "an exception occurred when invoking NSSM: serviceName: STOP: The service has not been started."}
failed: [...] (item=...) => {"changed": false, "failed": true, "item": "...", "msg": "an exception occurred when invoking NSSM: serviceName: The service has not been started."}
```
Behaviour after change:
```
ok: [...] => (item=...)
ok: [...] => (item=...)
```
* Added named parameter to new Get-Service cmdlet
So the module was now not doing anything except adding a nic to a
vswitch. This PR adds idempotency checks, and removal checks.
We should probably add modification chacks as well, but I don't know
what the limitations are for vcsim.
* Create persistent socket path using port and connection type
* Use remote address, port, connection type and remote user
to create a socket path.
* Fix review comment
Initial implementation of waf_facts module
* Enhance waf_facts module to provide more info
Support check_mode trivially
Enhance rule and predicate information
Use AWSretry and wrap proper exception handling
Finish documentation
Remove arbitrary limits
Meet latest ansible standards.
* Rename module to use aws_ prefix.
Fix copyright.
Fix metadata version.
* Fixing Issue #27270 regarding a TypeError invoked by the addition of a Filter type and List type.
* Fix SecurityGroup from always being reported as changed on PY3
On Python3, filter returns a generator. This causes us to report that
security groups are always defined on Python3 even when there are none.
Also change filter() calls into list comprehensions.
* New module for AWS Direct Connect connections
Unittests for new module
Added utils that will be used by other Direct Connect modules
* pep8 fixes
* Correct aws_direct_connect_connection EXAMPLES to be valid yaml
* Make requested changes
* remove use of the variable changed
get rid of unnecessary parentheses
* Fix unit test
* Rename variable.
* Fix metadata version
* amazon: extract boto_exception to ec2 module
This function was copy/pasted throughout several Amazon modules. This
causes a consistency problem, since some improvements to message
formatting were applied to some modules but not others. Now all modules
use the same, improved function.
* Rebase and make requested changes
* Rebase and make requested changes
* aws module Guidelines - rewrite - add AWS WG - add fail_json_aws - more modern
practices and fix some spelling
* aws module Guidelines - minor further changes with agressive fill to 99 width
* aws module Guidelines - formatting fix as per gundalow request
* aws module Guidelines - mark more keywords and code with backquotes
* AWS module guidelines - fixes from ryansb review + minor other changes
* ovirt_disks: added option to export disk to glance
* ovirt_disks: Moving exporting to separate branch
* ovirt_disks: removed redundant line obtaining disk obj
* ovirt_templates: Update the argument spec of templates.
Add id of template since it is needed for register.
* ovirt_vms: Register unregistered VM.
Use register of VM with id instead of name since an
unregitered entity can be registered also without name attribute.
* ovirt_hosts: Add iscsidiscover to ovirt_hosts
Adding functionality of iscsidiscover to be used to discover iscsi
targets.
* ovirt_storage_domains: Add support for import block storage domain.
* Add functionality of partial import to unregistered VMs.
* Add functionality of partial import to unregistered Templates.
* ovirt_hosts: Add iscsilogin to ovirt hosts.
Add functionality of iscsi login to ovirt hosts to be used to connect to
iscsi targets and to be able to import iSCSI storage domain eventually.
* Add ovirt_storage_templates_facts
Adding fact module for storage templates.
The module should help with registering unregistered templates.
* Add ovirt_storage_vms_facts
Adding fact module for storage VMs.
The module should help with registering unregistered VMs.
* Add module_utils/aws/direct_connect.py for frequently used functions
* new AWS Direct Connect link aggregation group module with tests and placebo recordings
* remove extra argument
* Remove use of undefined var
* Fix param name for extra exception codes for AWSRetry to use.
* Fix undefined var and line length and metadata version number
* Fix copyright headers
* Added new oneview_fcoe_network module and unit tests
* Fixing metadata issues and importing unittest from ansible.compat.tests
* Fixing shebang and adding correct copyright header
* Renamed remote_management/hpe to remote_management/oneview
* Updated documentation and default state according to review comments
- Added present as the default state
- Added delegate_to: localhost in all examples
- Changed config path from a variable to illustrate a location
- Other documentation fixes
Refactore delete_user() since most of the heavy lifting was being done in the exception handling, which is not at all necessary and resulted in changed=False being shown after changes were successfully made.
* Added the ability to extend the exception list in CloudRetry
* AWSRetry boto and boto compatible
* Updated tests to reflect boto/boto3
* Added boto to shippable requirements
* Have base_class and added_exceptions default to None in CloudRetry
AWSRetry - only retry on boto3 exceptions and remove boto requirement from tests
* Make requested changes.
* win_wait_for: added module
* Increased timeout on async task
* added more debug messages for test debug
* revert to using win_shell instead of win_command
* rebased from master and updated copyright string
* Updated metadata version
* Capitalised start of short_description
* disabled win_wait_for tests until async issues are solved
* Fix check_mode in nxos_command
* Fix check_mode for ios_command
* fix check_mode for iosxr_command
* Fix check_mode in vyos_command
* Fix check_mode in eos_command
* Fix check_mode in junos_config
This commit aims to add the openssl_certificate module.
This module allows a user to manage openssl certificates.
This module implement the notion of backend provider, making this module
extensible to anyone wish as long as a provider is coded for it.
The current three providers are the following:
* selfsigned: Allows a user to self signed a certificate
* acme: Allow a user to generate acme-based CA challenges certificate.
(As of this writing this targets letsencrypt)
* assertonly: Allow a user to assert the characteristic of her SSL
certificate
Co-Authored-By: Markus Teufelberger <mteufelberger+ansible@mgit.at>
* Add tags support to cloud/amazon/ec2_group
* Finish making ec2_group tag support boto3 compatible.
Add integration tests to validate that tags are working as expected.
* Improvements and fixes in the packet_device module
* add version_added to new args
* remove default value from facility
* changed 'lock' from deprecated arg to alias of 'locked'
These were the changes I propose twice, a nullified PR edit, and then as
review comments when the PR was being merged.
I made those changes now to all purestorage modules.
* made composite vars and groups generic
now you can do both in every plugin that chooses to suport it
renamed constructed_groups as it now also constructs vars ... to constructed
moved most of constructed_groups logic into base class to easily share
* documented inventory_hostname
* typo fix
Fixes#28198
Changed how string format method is used to support Python 2.6 syntax. By adding in positional arguments to braces in format method (e.g. {0}, {1}), Python 2.6 can support this module, without causing issues in newer versions of Python.
See ref for info on format differences w/ 2.6:
https://docs.python.org/2/library/string.html#format-string-syntax
* openssl_privatekey: Extend test coverage
Extend the coverage of the integration test for the module
openssl_privatekey.
New tests have been added:
* passphrase
* idempotence
* removal
Co-Authored-By: Pierre-Louis Bonicoli <pierre-louis.bonicoli@gmx.fr>
* openssl_publickey: Extend test coverage
Extend the coverage on the integration test for the module
openssl_publickey.
New tests have been added:
* OpenSSH format
* passphrase
* idempotence
* removal
* Fixes#28444: Renamed print_match function to match_print due to name conflict
* Rename `match_print` to `do_print_match`
I think this is less confusing.
* Fix 'the the' typos, fix 'pahting' filename typo
* Change 'the the' typos to a single 'the'.
* Change `playbook_pahting.rst` to `playbook_pathing.rst`.
* Delete trailing space in ec2_vol example
Delete the trailing space in `instance: "{{ item.id }} "`, which makes the
example fail when run because it looks for instance "i-xxxx ".
* win_copy rewrite with new tests and functionality
* minor pep fixes
* Handle UTF-8 filenames in zip
* fix for template
* when zip assemblies are not available in .net revert to old behaviour of copying one by one
* typo fix
* some more typos
* updated logic to correctly handle when new directories can be created
* removed testing file as it is not needed
* updated documentation based on PR
- Changed zone_name to name - Changed cluster_name to cluster - Changed pod_name to pod - Corrected tags type in docs - Remove unneeded returns - Other simplifications
* Fix KeyError bug by appending None if key doesn't exist
ensure value is the expected type; if if expecting something parsed as truthy try to turn it back into the desired value - fixes result showing always changed since bool compared to str
use to_text
* use string_types instead of str, remove inline conditionals, abbreviate boolean logic
* s3_sync was setting HAS_BOTO3 by the existence of botocore alone. Fixed to import from module_utils.ec2 to ensure boto3 + botocore are present.
Also documented module requirements.
* Remove unused import
Changed string check to verify that EOS device is not in config mode. This was required in order to work with Arista 7500 series modular switches.
Resolves#2830
* Added support to GCE module for image families and external projects.
* Added image_family and external_projects to gce_pd.
* Added version_added for new options.
This was causing wrong behaviour when `prev_state` was `hard`-link,
since the `file` module tried to apply the same `state` on the new
file, causing unexpected errors.
Particularly, both `overlay` and `devicemapper` storage drivers in
docker use hardlinks to share files between layers. This causes
most ansible playbooks to fail when working with files from layers
below.
This PR includes:
- PEP8 compliancy
- A fix to ensure the module fails when it failed for a package
- Various cosmetic changes to documentation
- Make `state: present` the default (and not required)
* Handle errors in jmespath in json_query better
Catch any exceptions raised from jmespath and raise
an AnsibleFilterError instead.
Avoid a traceback.
Fixes#20379
* pep8
* Fix logic in os_nova_host_aggregate module
Fix logic around adding availability zone to metadata and comparing existing host list to parameter host list.
Previously, when no availability zone was defined, an empty availability zone was being appended to metadata. This was causing 'empty named availability zone' errors when running the module against an already existing host aggregate with no availability zone. This was fixed by only appending availability zone to metadata if it is not an empty parameter.
Also added set() casting when comparing existing and new host lists. Previously, if existing host list was not in the same order as the host list in the .yml parameter file the module would consider this a change even if the two lists had the same entries.
* Update os_nova_host_aggregate.py
Currently the ignore_image option can be set, but can not work as it is
descripted in document. The reason is the code will check the difference
of configurations between current container and target image, and it
will mark the `different` to `True` when the image is different even we
set `ignore_image=true`, that will cause the container being re-create.
Add new option to pass the path to the hponcfg binary which may not live in
$PATH. For example on ESXi hypervisors it tends to be located in
/opt/hp/tools/ instead. Also properly implement a verbose option for which the
code was already commented out.
The command lxc-clone is deprecated in favor of lxc-copy. This patch
changes the lxc module to use the new lxc-copy command by default. If
not present, it will fallback to the old lxc-clone command to keep it
backward compatible with older versions of lxc.