This PR includes:
* Adding parameter types
* Fix validate-modules issue
* Improve parameter types and resulting changes
This PR needs to be verified and tested by maintainer(s).
* fix parameters check and port module to boto3
* begin with integration tests
* allow redshift iam policy
* Wait for cluster to be created before moving on to delete it
* Allow sts credentials so this can be run in CI
Don't log credentials
ensure cluster can be removed
* - Replace DIY waiters with boto3 waiters
- test multi node cluster
* catch specific boto3 error codes
* remove wait from test
* add missing alias for shippable
* - Rework modify function.
- Default unavailable parameters to none.
- Add cluster modify test
* Ensure resources are cleaned up if tests fail
* Ensure all botocore ClientError and BotoCoreError exceptions are handled
Bump the version and give a warning. It took me 30+ mins to carefully look through botocore to find the minimum version. Grumble.
Fixes#52393, partially helps #39085.
* Update lib/ansible/modules/cloud/amazon/cloudformation.py
Co-Authored-By: tedder <ted@perljam.net>
* Don’t remove service when networks change
* Add changelog fragment
* Some more network integration tests
* Add hannseman as author
* Remove return on self.client.fail
* dev test labs vm and artifacts
* fix sanity
* fixing sanity
* disable artifact test for now
* + vn update
* fix sanity
* fixed test issue
* one more merge update
* fixed assert
* docker_node: Fix for situation where labels parameter is None
* docker_node: Fix for situation where labels parameter is None and labels are not removed
Currently we are passing "initial_size" while creating the disk for
block based storage domains. Since this is equal to the size of the
disk, all the thin provisioned disk which is created using this
module will be having the size equal to the virtual size of the disk.
The "initial_size" is only required while uploading the image. The
patch take care of the same.
According to the OpenStack Networking API
the attribute provider:segmentation_id of a network has to be
an integer.
Even if neutron accepts provider:segmentation_id to be a
string, other implementations may not.
* Add missing option types for docker modules.
* Reorder argument_spec.
* First part of option reordering/reformatting.
* Second part of option reordering/reformatting.
* Forgot two required: false.
* Normalize booleans.
* Added missing period.
* cloudscale_volume: fail fast on volume type change
Currently a volume gets resized before the type change check. With this
change, we check early and ensure we fail before any changes made.
* fix too many blank lines
Added a new property, 'port_security_enabled' which is a boolean to
enable or disable port_security during network creation. The default
behaviour will enable port security, security group and anti spoofing
will act as before. When the attribute is set to False, security
group and anti spoofing are disabled on the ports created on this
network.
Shade supports this option in versions > 1.27.1
* Remove docker_* modules from validate-modules ignore list.
* Adjust types of cacert_path, cert_path and key_path.
* Fix type of update_failure_action in docker_swarm_service.
* Introduce new "required_by' argument_spec option
This PR introduces a new **required_by** argument_spec option which allows you to say *"if parameter A is set, parameter B and C are required as well"*.
- The difference with **required_if** is that it can only add dependencies if a parameter is set to a specific value, not when it is just defined.
- The difference with **required_together** is that it has a commutative property, so: *"Parameter A and B are required together, if one of them has been defined"*.
As an example, we need this for the complex options that the xml module provides. One of the issues we often see is that users are not using the correct combination of options, and then are surprised that the module does not perform the requested action(s).
This would be solved by adding the correct dependencies, and mutual exclusives. For us this is important to get this shipped together with the new xml module in Ansible v2.4. (This is related to bugfix https://github.com/ansible/ansible/pull/28657)
```python
module = AnsibleModule(
argument_spec=dict(
path=dict(type='path', aliases=['dest', 'file']),
xmlstring=dict(type='str'),
xpath=dict(type='str'),
namespaces=dict(type='dict', default={}),
state=dict(type='str', default='present', choices=['absent',
'present'], aliases=['ensure']),
value=dict(type='raw'),
attribute=dict(type='raw'),
add_children=dict(type='list'),
set_children=dict(type='list'),
count=dict(type='bool', default=False),
print_match=dict(type='bool', default=False),
pretty_print=dict(type='bool', default=False),
content=dict(type='str', choices=['attribute', 'text']),
input_type=dict(type='str', default='yaml', choices=['xml',
'yaml']),
backup=dict(type='bool', default=False),
),
supports_check_mode=True,
required_by=dict(
add_children=['xpath'],
attribute=['value', 'xpath'],
content=['xpath'],
set_children=['xpath'],
value=['xpath'],
),
required_if=[
['count', True, ['xpath']],
['print_match', True, ['xpath']],
],
required_one_of=[
['path', 'xmlstring'],
['add_children', 'content', 'count', 'pretty_print', 'print_match', 'set_children', 'value'],
],
mutually_exclusive=[
['add_children', 'content', 'count', 'print_match','set_children', 'value'],
['path', 'xmlstring'],
],
)
```
* Rebase and fix conflict
* Add modules that use required_by functionality
* Update required_by schema
* Fix rebase issue
* Allow creation and deletion of keys (deletion just schedules for
deletion, recreating an old key is just cancelling its deletion)
* Allow grants to be set, thus enabling encryption contexts to be
used with keys
* Allow tags to be added and modified
* Add testing for KMS module
* Tidy up aws_kms module to latest standards
* Initial commit for xenserver_guest_facts module
* New module: xenserver_guest_facts. Returns facts of XenServer VMs. Module is fully documented.
* Added unit tests for the module
* Moved FakeXenAPI import to a dedicated fixture, other fixes
* Removed unused imports, minor fixes to unit test code
* docker_swarm_facts: PR cleanup after rebasing
* docker_swarm_facts: Adding the features similar to docker_host_facts
* docker_swarm_facts: Minor documentation and documentation updates
* docker_swarm_facts: Minor documentation and documentation adjustments to changes in #51700
* docker_swarm_facts: Using AnsibleDockerSwarmClient class method to fail module if not run on swarm manager
module_utils\docker\swarm.py: Adjustment of error message to me bore descriptive if module fails because it is not run on swarm manager node
* docker_node_facts: Query may contain single or multiple nodes, additional option to query about the docker manager itself
docker_node_facts: Code update to use the module_utils/docker_swarm.py AnsibleDockerSwarmClient class methods
* docker_node_facts: Minor documentation update and error handling
* docker_node_facts: Minor documentation and code updates
* docker_node_facts: Minor documentation adjustments
* Move docker_ module_utils into subpackage.
* Remove docker_ prefix from module_utils.docker modules.
* Adding jurisdiction for module_utils/docker to $team_docker.
* Making docker* unit tests community supported.
* Linting.
* Python < 2.6 is not supported.
* Refactoring docker-py version comments. Moving them to doc fragments. Cleaning up some indentations.
This module manages the mirroring sessions, and the necessary port settings.
* Correct Documentation and CS
* PEP8, YAML, Documentation Error Fix
* Added empty return statement
Co-Authored-By: gyorgypeter <32464524+gyorgypeter@users.noreply.github.com>
While creating new VM, don't assume the VMDKs are present,
create them as we attache the disk to VM.
Possible regression fix for introduced via #45953
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
Fixes: #51534
* set valid_until equal to current time + spot_wait_timeout
* add setting ValidUntil to value
* add changelog fragment
* fix shebang issue
* adding cosmos db account module
* fixes
* fixed issues
* cosmos db account test fixes
* updating cosmosdb
* fixed required
* version from autogereneator
* several upgrades
* idempotency changes
* idempotency improvements
* updated cosmos db module with new idempotency check
* and idempotency check shall fail now....
* try to fail it again
* now should really fail
* one more
* introducing comparison template
* fixes + sorting of arrays
* updated comparisons
* don't compare if parameter is none
* one more test
* fixed compare
* fixed idempotency?
* more logging
* fix comparison rules
* make smaller change
* actually compare multiple write locations
* just change failover
* remove debugging stuff
* one more fix
* fixed remaining sanity test
* updating comparison stuff
* fix pep8
* fix pep8
* will pep8 finally work?
* one more fix
* cosmos db updates
* updating cosmos db account
* fixed pep8
* fix type
* fixed indent
* fixed problem with python 3
* another fix for python 3
* bool type here
* cosmos db fixes
* fix
* fix
* fix
* fixed syntax
When using `nat_destination` parameter of `os_floating_ip` module, dot
syntax (`addr.addr`) is used to access a value in a dictionary,
resulting in the module crashing with this error:
AttributeError: 'dict' object has no attribute 'addr'
This is now fixed, when using correct syntax (`addr['addr']`), the
module seems to work fine.
Fixes#51443
Check if user specified category exists in environment,
before assigning it to the tag creation operation.
Fixes: #51381
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* * docker_node: New module for operations on Docker Swarm node
* Shared code for Docker Swarm modules
* * docker_node: Removed the attribute `force` as it is not used for any operation
* docker_node_facts: Update module to use client class AnsibleDockerSwarmClient instead of AnsibleDockerClient
* docker_node_facts: List of nodes can be provided as input, inspect all registered nodes or manager host itself
* docker_node: Update in method name called from AnsibleDockerSwarmClient
* docker_node: Additional method to shared module to get formatted output list of registered nodes
* docker_node: Additional method to shared module to get formatted output list of registered nodes
* docker_node: removed state list (featue moved to docker_swarm_facts)
* docker_node: Node labels manipulation (remove, replace, merge)
* module_utils/docker_swarm: Updated output for nodes list - adding swarm leader flag
* docker_node_facts: update in input and return values, update in documentation section
* docker_node: Updated operations on labels, tracking if change is required
* docker_node: Updated documentation, parameter 'hostname' is now required
docker_node_facts: Updated documentation
* * Failing Ansible tasl if not run on swarm manager - code cleanup
* * docker_node: Remove the 'action' list from output
* * docker_node: variable name change to be align with Python best practice, BOTMETA.yml update
* * module_utils/docker_swarm.py: fix for incorrect fail() action
* docker_node: documentation and code small updates
* * docker_node: revised labels manipulation
* docker_node_facts: Reverting to repository version, moving this change to separate PR
* * docker_node: Documentation update
* * docker_node: Update to node availability and role modification
* * docker_node: Update to check_mode handling
* * docker_node: Code cleanup
* docker_node_facts: Code cleanup
* docker_node_facts: Adding back the module with only update to use AnsibleDockerSwarmClient instead of AnsibleDockerClient
docker_node: cosmetic code changes
BOTMETA: updated on $team_docker
* docker_node: BOTMETA update
* * docker_host_facts: Getting docker host info
* * docker_host_facts: Getting lists of containers, volumes, images and networks as in respective CLI commands
* * docker_host_facts: Adding filters, documentation update
* docker_host_facts: Code cleanup
* docker_host_facts: Adding verbose output option. Documentation update.
* docker_host_facts: Improving author information for ansibot
* docker_host_facts: documentation and small code updates, for `docker_disk_usage` returned type is always dict now
* add new module for webapp slot
* fix lint and resolve comments
* fix lint
* fix lint
* fix lint
* fix name in test
* add variable
* fix test parameter
* fix test frameworks
* fix test
* remove delete due to swap not finish
* resolve comments
* fix lint
* fix typo
* New module to manage OVH's failover IPs.
* Fixed quote_plus import for python 3 and remove 3 seconds sleep
* Fixed author format
* Added parameters for not waiting completion, or waiting previous task
The only valid value for userns_mode on docker run command is "host". This should be mentioned in description because it is hard to find in docker documentation as well: https://github.com/docker/docker.github.io/issues/7071
* Added new vmware module for creating DRS VM-HOST rules Host groups in a given cluster
* Fixing punctuation in lib/ansible/modules/cloud/vmware/vmware_vm_host_drs_rule.py
* Added better Docstring
* Better messaging and documentation. Removed unused lib
* Added operation to determine create or update msg
* Fixed class params to only take module. This is less error prone
* Bugfix, undefined names