* Add a module to create a java key store (jks) from a certificate
* Create a jks from a certificate and a private key (secured by a password)
* Add an option to recreate the jks (useful when you want to update the jks password)
* If the certificate changed, recreate the jks
* Version added is now 2.7
One of Ansible best practices is "Always Name Tasks".
This should include tasks in examples as well so people can learn
what is the right way to use it.
Also fixes a discovered bug in block rescue detection related to inserting
the ansible_failed_{result|task} variables when the rescue is in a nested
block.
* Return the expected prompt character based on become status
* Update eos_banner tests for eapi
* Update eos_config tests for eapi
* Update eos_facts tests for eapi
* Update eos_interface tests for eapi
* Update eos_l3_interface tests for eapi
* Update eos_lldp tests for eapi
* Update eos_logging tests for eapi
* Update eos_smoke tests for eapi
* Update eos_system tests for eapi
* Do not gather mem facts if command invalid
In some firmwares, 'show memory statistics' fail, thus
do not populate mem if we got a failure after running that command.
* Fix pep8
* Warn if got error when running 'sh memory statistics'
* Fix pep8
* nxos_vlan fix
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
* uncomment mode test as nxapi now has get_capabilities
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
* First pass at vmware_deploy_ovf functionality
* Add OVA file support, re-structure code
* Move some useful functions to module_utils.vmware, and perform a little DRY too
* Better handling of errors during spec validation and import
* Properly calculate the lease progress percentage for all vmdk files
* Make warnings and errors a little better
* Add an allow_duplicates argument, that defaults to true, to allow users to have name based idempotency
* Add fail_on_spec_warnings to cause the module to treat warnings as errors
* Support non-vmdk uploads
* Add ova alias for ovf
* Rename vmdk_post_url to device_upload_url so it does not sound to specific to VMDK files
* Safer handling of * hostname in urls
* Add default Content-Type, remove unused headers var
* Add deploymentOptions and propertyMapping functionalities
* Add basic check_mode support
* Add vmware_deploy_ovf to list of use-argspec-type-path ignores
* Update version_added and fix path for use-argspec-type-path
* Add configurable folder
* Doc changes
* Add nxos_install_os integration tests
* Update call to check timers
* Update check_ansible_timer method
* Modify network_cli integration tests
* Add timer check for nxos_install_os
* Add comments for clear_persistent_sockets
* Update connection info for tests
* More updates
* Restructure files for provider and non-provider testing
* Update env var name and add check for ISSU switchover
The openstack modules do not support python 2.6 as the underlying
library dependency (openstacksdk) does not support python 2.6. Update
the docs to make this clear.
* check if timestamp is set in maven-metadata.xml. If it is not set, we don't have unique snapshot artifacts and can return the artifact name with the appended -SNAPSHOT
* Make use of a python module that is not deprecated anymore
* Updating version_added: "2.6" to version_added: "2.7"
* Added missing line
* Added notification about using different python module
PR #39373
* Add extra_specs to os_subnet module
This change removes the parameter limitation on `os_subnet` module for
Neutron subnet creation.
This way, any key value passed via `extra_specs` argument is included in
shade's API call.
Signed-off-by: Mário Santos <mario.rf.santos@gmail.com>
* Set default value of extra_specs to None
Signed-off-by: Mário Santos <mario.rf.santos@gmail.com>
* Raise ValueError in case of duplicate keys found
Signed-off-by: Mário Santos <mario.rf.santos@gmail.com>
* Update docs default value of extra_specs to {}
* Move cidr to kwargs to avoid positional argument
Signed-off-by: Mário Santos <mario.rf.santos@gmail.com>
* Print explicit list of duplicate keys
Signed-off-by: Mário Santos <mario.rf.santos@gmail.com>
* Fix precedence on the dict merge
Signed-off-by: Mário Santos <mario.rf.santos@gmail.com>
* Bump version_added of the extra_specs parameter
Signed-off-by: Mário Santos <mario.rf.santos@gmail.com>
* Add support for `mysqldump`'s `--ignore_table` switch.
* Fix documentation and default linter warning re: default parameter
* Add number to replacement field in cmd string
* Bump version_added to 2.7
* adds name server group support to nios_zone
* fixes style issues
* adds support for restart_if_needed
* adds type: bool to documentation for restart_if_needed
* doc fix
This is a helper for identifying whether the var is a sequence,
but is not of string-like type (optionally).
Co-authored-by: Toshio Kuratomi <toshio@fedoraproject.org>
Co-authored-by: Brian Coca <briancoca+dev@gmail.com>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
The current example configuration is not
quite right, so this patch implements a
fix which corrects it
The 'inventory_hostname' argument is removed
as it's the same value as the default.
* Establish connection through openstacksdk
* Switch from shade to openstacksdk
* fix typo in link to openstacksdk
* remove nova_client usage
* further remove of min_version from openstack modules
* Initial commit for meraki_admin module
* Initial commit for meraki_snmp module
* Update code to be operational for SNMP settings
- Add optional_ignore value to is_update_required for one-time fields
- Write documentation
- Perform checks and execute changes
* Minor fixes and test improvements
- Fix some documentation errors
- Implement and test for idempotency
* Removed meraki_admin which shouldn't be there, ansibot changes
* Rename params to be lower case
- Updated integration tests
- Changed CamelCase to lowercase and underscore
* Code cleanup changes based on comments from Dag.
* Add cleaning function to handle **params
The cleaning function is only added to tower modules which pass a `**params`
argument as an unpacked dictionnary to the tower-cli method calls.
Fix#39745
* Remove previous code added only for tower_role
In 872a7b4, the `update_resources` function was modified so that it would clear unwanted
parameters. However, this behaviour is desired for other modules too, modified in
another commit. (see tower_clean_params).
* Port aws_ses_identity module to use AnsibleAWSModule
* Support Check Mode in aws_ses_identity
* Add tests for check mode
* Move feedback forwarding parameter check to before any changes are made.
* Fixed check_mode status to be the same as normal execution
* Now when setting the status to `disabled` in check_mode it correctly
returns the state changed and prints a warning like it does in normal
model. Before it always returned changed even if everything was set
correctly and a reboot was required.
* Add changelog entry
Co-authored by: Strahinja Kustudic <kustodian@gmail.com>
* Added interpreter parameter to the script module
* Let required and default parameters get documented implicitly for binary parameter
* Renamed interpreter parameter to executable
When running the test test/units/module_utils/urls/test_open_url.py
test_open_url_no_validate_certs, the test fails because of the SSLv2
check.
Test is run on a machine using openssl 1.1.0g. By reading the openssl
man page[1], one can see that support for SSLv2 has been removed.
> Support for SSLv2 and the corresponding SSLv2_method(),
> SSLv2_server_method() and SSLv2_client_method() functions where removed
> in OpenSSL 1.1.0.
>
> SSLv23_method(), SSLv23_server_method() and SSLv23_client_method() were
> deprecated and the preferred TLS_method(), TLS_server_method() and
> TLS_client_method() functions were introduced in OpenSSL 1.1.0.
Hence this commit remove the uses of this flag when it is not defined.
[1] https://www.openssl.org/docs/man1.1.0/ssl/SSLv23_method.html
As mentioned in this answer https://stackoverflow.com/a/41549694/6778826 we was able to solve a bad behaviour of `blockinfile` module.
We must change two parts in one file which we have done in two tasks. Every run have rewriten the first block with the second block in the wrong position. **After** we have set the `marker` in the second task to another value was the `blockinfile` module able to insert both parts in the right position in the same file.
* os_project_access: correct example tasks
The example task does not work. Fix it so that it does.
* os_project_access: Remove unused function
The _get_allowed_projects function is not used anywhere,
so we can remove it and be free of nova_client for this
module.
The os_server module uses the deprecated nova_client function, and
therefore ends up requiring python-novaclient installed. In this
patch we switch the ip detachment to make use of a shade function,
removing the need for python-novaclient.
* The module now correctly sets the timezone in both the config file and
in /etc/localtime; while hwclock is set in both the config and
/etc/adjtime.
* Module checks if the timezone is actually set by checking
/etc/localtime. Before it only checked if it was set in the config file.
* Fixed module not setting the timezone on RedHat systems if
/etc/localtime was a symbolic link.
* Fixed module failures in case of missing config files or incorrect data
in them.
* Added a lot of integrations tests to cover most of these situations.
* Add start and end timestamp to task result in json callback
Currently, the timestamp information is only provided directly by a few
Ansible modules (e.g. the command module, which shows the runtime of a
command per host result).
This change adds an 'overall' time information to all executed tasks. The
delta between both timestamps shows how long it took a task to finish
across all hosts/nodes.
This patch is also proposed for zuul and can be found here:
https://review.openstack.org/#/c/563888
* Add missing timezone information to 'start' and 'end' timestamps
As the datetime.isoformat() function is missing the timezone information,
we assume it's local time.
* Nest 'start' and 'end' timestamps in 'duration' field.
To clarify the purpose of those fields.
* Add 'start' and 'end' timestamps also for plays
* Add a 'machinectl shell' become_method
* docs: add explanations for the machinectl become_method
* docs: machinectl become_method: specify this part is specific to Linux+systemd setups
* cs_instance: implement host migration support
* fix build
* fail fast on update if user is not admin
* improve tests a bit
* expunge it
* fix typo
* disable temporarly verify for host on starting instance.
Add `mode` option which sets permission mode of a VM in octet format
Add `owner_id` and `group_id` which set the ownership of a VM
Move the waiting for state at the end of the module, so it could fail faster if there is some error
tagged_instances will only be returned only if count_attributes and/or count_labels are used, as specified in the documentation
Update relevant tests
Add tests for mode, owner_id, group_id
* Fix errors decrypted non-ascii vault vars
AnsibleVaultEncryptedUnicode was just using b"".decode()
instead of to_text() on the bytestrings returned from
vault.decrypt() and could cause errors on python2
if non-ascii since decode() defaults to ascii.
Use to_text() to default to decoding utf-8.
add intg and unit tests for value of vaulted vars
being non-ascii utf8
based on https://github.com/ansible/ansible/issues/37258Fixes#37258
* yamllint fixups
* Subversion: If the directory exists, we want the ability to checkout into it
and use the content as existing files; equivalent to svn checkout --force
I was expecting the force option to do this, however I understand why it
doesn't do that currently. I was debating with changing the meaning of force
to include this behaviour, however I've opted for a seperate flag for now
for backwards compatibility.
* Subversion: Sanity tests have failed suggesting this is the correct value
https://app.shippable.com/github/ansible/ansible/runs/60302/1/console
* Add documentation for setting multiple options.
* Do not set `cluster' to myhostname, if cluster is not set. This will cause
parse error, since module will try to parse the brick and hosts.
* Also fixes issue #40410
* gluster_peer: Module to create/dismantle trusted storage pool
* gluster_peer: Module to create/dismantle trusted storage pool
Added __init__.py and added function main() in the module.
* gluster_peer: Module to create/dismantle trusted storage pool
Empty __init__.py was needed. Removed comment from the file.
* gluster_peer: Module to create/dismantle trusted storage pool
Addressed review comments.
* gluster_peer: Module to create/dismantle trusted storage pool
Do version check more sanely, improve parameter handling.
* gluster_peer: Module to create/dismantle trusted storage pool
Use isinstance for type comparison.
* gluster_peer: Module to create/dismantle trusted storage pool
Use type=list for nodes parameter, get rid of literal_eval.
* gluster_peer: Module to create/dismantle trusted storage pool
Add parameter check_mode, had missed this somewhere in between.
* gluster_peer: do not set `force' in case of state=present
* gluster_peer: Fix typo in the documentation
* gluster_peer: make peer probe idempotent
* gluster_peer: Fix a logical error while evaluating booleans
* gluster_peer: set locale to C, pass list to run_command
* Adding module for AWS Config service
* adding integration tests
* Split resource types into their own modules
* Properly use resource_prefix and retry on IAM "eventual consistency"
* Add config aggregator module
* AWS config aggregator integration test fixes
* AWS config recorder module
* Config aggregation auth rule
* Use resource_prefix in IAM role name
* Disable config tests
* seconds set of netapp modules
* fixes
* Fix issues
* Fix future issues
* fix issues
* Fix issues
* changes
* Change force
* made fixes
* add new line to end of file
* Fix setting the cache when refresh_cache or --flush-cache are used
* Use jsonify function that handles datetime objects in jsonfile cache plugin
* Don't access self._options directly
* Add initial integration tests for aws_ec2 inventory plugin
* Add CI alias
* Fix and add a few more unit tests
* Add integration tests for constructed
* Fix typo
* Use inventory config templates
* Collect all instances that are not terminated by default
* Create separate playbook for setting up the VPC, subnet, security group, and finding an image for the host
Create a separate playbook for removing the resources
* Allow easier grouping by region and add an example
* use a unified json encode/decode that can handle unsafe and vault
* Refactor ec2_group
Replace nested for loops with list comprehensions
Purge rules before adding new ones in case sg has maximum permitted rules
* Add check mode tests for ec2_group
* add tests
* Remove dead code
* Fix integration test assertions for old boto versions
* Add waiter for security group that is autocreated
* Add support for in-account group rules
* Add common util to get AWS account ID
Fixes#31383
* Fix protocol number and add separate tests for egress rule handling
* Return egress rule treatment to be backwards compatible
* Remove functions that were obsoleted by `Rule` namedtuple
* IP tests
* Move description updates to a function
* Fix string formatting missing index
* Add tests for auto-creation of the same group in quick succession
* Resolve use of brand-new group in a rule without a description
* Clean up duplicated get-security-group function
* Add reverse cleanup in case of dependency issues
* Add crossaccount ELB group support
* Deal with non-STS calls to account API
* Add filtering of owner IDs that match the current account
* New module = AWS Glue connection
* Add a few initial integration tests
* Add alias for CI
* module rename
* finish module rename
* add loop when getting glue connection again so we dont get None
* Limit number of retries to get new glue connection info
Without this change, the module will simply fail with an error when
doing a query and not specifying the **lag_type** parameter.
The integration tests expect **lag_type** too, so this simply codifies
what was expected since inception.
This change addresses an issue where the prompt matching regular
expressions would not match a prompt if the hostname starts with a
numeric value. Before this change, the connection would fail with a
socket.timeout() error. This change updates the termnal_stdout_re
values to now check for a number.
See Github issue #38639
* Add auth key for OpenStack Volume Provider
For adding OpenStack Volume Provider we need to also add auth key,
value, for Ceph. This patch allows to add/update/remove auth keys.
Also fixing the issue for attach cinder SD to the datacenter.
* Fixing documentation
* Small fixes in ovirt_external_provider module.
Fixed doc for param and small changes.
* Fix comments from review.
Adds conditions for check mode.
* Move update auth key method in the module
* Remove empty line which pep8 complains about
* New ansible module netconf_rpc
* add integration test for module netconf_rpc
* pep8/meta-data corrections
* usage of jxmlease for all XML processing
separation of attributes "rpc" and "content"
* removed unused imports
improved error handling
* fixed pep8
* usage of ast.literal_eval instead of eval
added description to SROS integration test for cases commented out
* mismatch type between function arguments
* add testcase for prompt
* yamllint issues
* remove overwriting response in case of connectionError exception
* remove import of ConnectionError as it is not required
* add loadbalancer
* dict check nullable
* add default vallue when get list
* create backend addr pool
* fix the set
* fix to dict
* fix ideponement
* use param security group name when create
* nic can has no nsg
* add test
* fix
* fix
* fix
* add document
* add configuration
* fix
* fix
* remove all resources
* fix
* fix test
* add version added
* fix lint
* fix lint
* Fixes some NIC bugs (#39213)
* add loadbalancer
* dict check nullable
* add default vallue when get list
* create backend addr pool
* fix the set
* fix to dict
* fix ideponement
* use param security group name when create
* nic can has no nsg
* add test
* fix
* fix
* fix
* fix idemponet
* add document
* fix test
* add configuration
* fix
* fix
* remove all resources
* fix
* fix test
* add version added
* fix lint
* fix lint
* fix lint
* remove new feature and only submit bugfix
* remove useless test
* fix
* fix indent
* Update azure_rm_networkinterface.py
* fix comment
* support 3 types to specific name and resource group
* avoid test racing
* fix test
* add sample
* add resource id test
* zfs: Fix handling of parameters passed via check_invalid_arguments
cc7a5228 had a typo, so the merged set of arguments was shoved into the
wrong parameter and ignored.
`origin` is an actual module parameter and should be processed like one.
pop()ing makes debug output misleading.
* zfs: fix command generation for `zfs snapshot`
Creating a snapshot and supplying an origin are mutually exclusive,
but were not treated as such. We should throw an error instead of
running an invalid command (`zfs snapshot origin foo@snapname`.)
* Update jenkins_plugin.py
When setting state=latest, plugin are always updated because plugin_data['sha1'] contains trailing '\r\n' (so it always detecting a sha1 change)
+label: docsite_pr
* rstrip wasn't the solution but to_bytes is
In `2.5` (d1b63bd5), the `yum` module received the capability to disable
and enable specific plugins. However, these changes only applied to
certain parts of the logic. This change propagates those changes to the
rest of the module, specifically those using the `yum` API.
* Docs - add shared snippet note about password prompts for ssh keys
Signed-off-by: Adam Miller <admiller@redhat.com>
* add note to ssh connection plugin, fix markup, fix typo
Signed-off-by: Adam Miller <admiller@redhat.com>
* winrm: add better exception handling for krb5 auth with pexpect
* Added changelog fragment
* Added exception handler in case kinit path isn't valid, added test cases
* fixed for Python 2 compatibility
* win_updates: add scheduled tasks back in for older hosts
* Fixed up typo in category name error message
* Fixed up some minor issues after merge
* added changelog fragment
* Default to become but add override to use scheduled tasks
* Added basic unit tests for win_updates
* fix minor typos
* Add update_password parameter to rabbitmq_user
Inspiration for this feature is taken from the `user` module.
While `always` is the default in that module, it is not here. We default
to `on_create` to avoid changing existing behaviour.
Resolves#29260
* Update instructions for changing passwords
* Bump version_added as requested
* Check password before changing it
This allows accurate reporting of changed status even though
`rabbitmqctl change_password` doesn't.
* Remove instruction to use 'force' to update password
* Adds support to get value from Consul KV.
* Updates documentation.
* Corrects GRL copyright years.
* Resolves PEP 8 issues.
* Changes consul_kv NOT_SET value to `None`.
* Support getting Consul KV values recursively.
* Adds example of retrieving key value.
* parted module not idempotent for esp flag and name
Fixes#40452
Currently the parted module doesn't take into account names with
spaces in them which leads to non-idempotent transactions on the
state of the system because the name comparison will never succeed.
Also, when the esp flag is set, parted infers the boot flag and the
parted module did not previously account for this. This lead to
non-idempotent transactions as well.
Signed-off-by: Adam Miller <admiller@redhat.com>
* fix unit tests, expected command changed in the patch
Signed-off-by: Adam Miller <admiller@redhat.com>
Change the command to get the interface in a vlan "show vlan" => "show vlan brief"
Change the parsing of the return command of the switch.
The return of the ios command is fixed so i cut with fix number of carracter.
Adding looking for the next line to add the forgeted interfaces.
The snmp_facts module lacked any information on what kind
of data can be expected on the return of successful execution.
This patch expands the docs to included info on return output
including sample data and full descriptions.
Signed-off-by: Eric Brown <browne@vmware.com>
* fixing azure sanity tests
* fixing sanity
* fixing some tags issues
* removed unnecessary things from managed disk
* fixed location problem
* more sanity fixes
* sanity test fixes
* final sanity fixes?
* final fixes again
* undo changes related to container instance
* removed container instance
* readd again
* fixed stupid mistake
* removed _azure from changes
* one more mistake
* Adding flatpack_remote module
Includes contributions by oolongbrothers: adding documentation fixes, fixing import placements, fix module idempotency, improving error propagation.
* Aligns module with conventions and best practices
For improved robustness and readability; based on feedback by
dagwieers.
* Improves the module documentation
* Aligns copyright statement to conventions
* Renames remote > flatpakrepo_url and reworks documentation
* Adding flatpak module
Includes contributions by dagwieers
* Incorporates feedback by dagwieers
* Improves and aligns documentation to conventions
* Makes matching for url more robust
* Get the str value of xmlrpc.client.DateTime
* get_all_records should be used instead of get_all
* Facts returned with 'ansible_facts'
* Remove some redundant code
* Add cheese as maintainer
* Add changelog entry
* Return messages generated from edit_config to module
* This does not seem to work that way
* Change test IP addresses to not conflict with device config
* Set encrypted as default and fix empty password reporting changed
* Starting with Postgres 10 `UNENCRYPTED` passwords are removed and
because of that this module fails with the default `encrypted=no`.
Also encrypted passwords are suported since version 7.2
(https://www.postgresql.org/docs/7.2/static/sql-createuser.html) which
went EOL in 2007 and since 7.3 it is the default. Because of this it
makes a lot more sense to make `encrypted=yes` the default. This won't
break backward compatibility, the module would just update the user's
password in the DB in the hashed format and everything else will work
like before. It's also a security bad practice to store passwords in
plain text. fixes#25823
* There was also a bug with `encrypted=yes` and an empty password always
reported as changed.
* Improved documentation for `encrypted`/`password` parameters, and
removed some obsolete notes about passlib.
* Fix clearing user's password to work with all versions of Postgres
* Add tests for clearing the user password
* Fix documentation atfer rebase
* Add changelog fragment
In the last commit I modified the code to run commands when they are
daemonized. But the execution of "chkconfig" is not daemonized so it
uses "self.module.run_command(cmd)".
This commit set the default localize to allow proper screen scraping of
chkconfig command.
* I seem to have forgotten the back half of tests
* Set http timeout from persistent_command_timeout
* Tweak URL generation and provide URL on error
* Push var_options to connection process
* Don't wait forever if coming from persistent
* Don't send the entire contents of variables to ansible-connection
* Fix all cases with pause and ctrl+c
- naked:
- pause:
- with prompt
- pause: prompt=hi
- time wait
- pause: seconds=60
- time wait with prompt
- pause: seconds=60 prompt=hi
Fixes#35372
* Use curses to control stdout
* Use curses to clear lines on interactive input
* Validate input for echo parameter and fail nicely if invalid
* Add integration tests for pause module using pexpect
* Use try except when trying to determine erase sequence to account for lack of TTY in containers in tests
* Improve output validation for regular paus test
* Accept two digit precision for pause length in test
* Check for seconds when seconds is specificed, minutes when minutes is specified
* Add test for no TTY mode
Co-authored by: Toshio Kuratomi <a.badger@gmail.com>
Co-authored by: Brian Coca <brian.coca+git@gmail.com>
* Add the ability to specify an install_dir to the gem module
* Add GEM_HOME when installing a non-global gem
* Add tests for custom gem path
* Fix sanity tests
* Add changelog entry
* Rebase and add tests for incorrect options
Co-authored by: Antoine Catton <devel@antoine.catton.fr>
* add first module
* fix case
* Create na_ontap
* Fix small pep8 errors
* Fixes for issues found by Amit
* fixes for amit
* fix doc
* get doc to compile
* format code in gce_net module
The values passed to the module weren't being highlighted properly in
the documentation page.
As a result, use markup code format for the values provided in order to
be spotted easily on the page.
Signed-off-by: Daniel Andrei Minca <mandrei17@gmail.com>
* separate phrases
Signed-off-by: Daniel Andrei Minca <mandrei17@gmail.com>
* apply review fix for module options
According to http://docs.ansible.com/ansible/devel/dev_guide/developing_modules_documenting.html#formatting-functions
Signed-off-by: Daniel Andrei Minca <mandrei17@gmail.com>
* * Memset:
* module_utils and associated documentation.
* module to manage DNS zones.
* integration tests to run against Memset's API.
* * memset.py:
* remove import of requests from memset.py in favour of internal Ansible modules.
* import necessary Ansible modules for request and response handling.
* create a response object in order to retain a stable interface to memset_api_call from existing modules.
* rework memset_api_call to remove requests.
* memset_zone.py:
* improve short description to be more verbose.
* ensure all imports directly follow documentation.
* remove any reference to requests.
* correct keyerror carried over from elsewhere.
* remove dependency on requests from documentation string
* disable integration tests until we have a cleanup method available