* add ts option to slack module to allow editing messages
* add version_added
Co-authored-by: Felix Fontein <felix@fontein.de>
* use correct API URL when updating
* add changelog fragment
* add diff/changed support for updating slack messages
* add an example on how to edit a message
* rename ts to message_id
* use the changed variable where possible
* correct conversation.history url
* proper formatting in documentation
Co-authored-by: Felix Fontein <felix@fontein.de>
* add channel to example
* correct conversation history url
* allow channel to start with C0
* fetch_url does not construct query parameters
* add missing argument
* return more data when nothing has changed
* use urlencode to construct query string
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 6d60d3fa7f)
Co-authored-by: Andreas Lutro <anlutro@gmail.com>
* add a custom module for managing group membership in gitlab
* add integration test & modify the module
* modify the module
* modify the module
* remove whitespace
* add aliases file & modify the module
* minor and suggested modifications
* suggested modifications
* more minor modifications
* modified the module to use gitlabAuth
* removed api_url from the doc
* remove api_token
* add update access level for an existing user
* remove access level if statement
(cherry picked from commit 905239f530)
Co-authored-by: Zainab Alsaffar <za5775@rit.edu>
Since the module unconditionally issues ALTER statements in order to
observe their effect on the postgres catalog - to determine whether the
privileges have changes - a rollback is thus advisable when in fact
nothing has changed.
fix#885
(cherry picked from commit 2b3c8f4582)
Co-authored-by: Georg Sauthoff <mail@georg.so>
* postgresql_privs: allow lowercased PUBLIC role
* add changelog fragment
* improve CI
* fix changelog fragment
(cherry picked from commit bfdb76e60d)
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Fix get_installed_versions: correctly parse "default" version.
gem query output of
bundler (default: 2.1.4, 1.17.2)
Gets parsed as:
['default:', '1.17.2']
Fix this by skipping "default: " if present in the list of versions - by adding
it as an optional part of the regex, grouped as a non-capturing group to keep
the index of existing group.
This now correctly parses the above input as
['2.1.4:', '1.17.2']
Fixes#782
* Fix gem get_installed_versions (cont): add changelog fragment
* Update changelogs/fragments/783-fix-gem-installed-versions.yaml as per suggestion
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 6dc98c08fd)
Co-authored-by: Vlad Mencl <vladimir.mencl@reannz.co.nz>
Issue: 824
Co-authored-by: Scott Seekamp <sseekamp@digitalocean.com>
(cherry picked from commit d7ec65c19c)
Co-authored-by: Scott Seekamp <sylgeist@risei.net>
When the `vmid` parameter is not supplied and the module can only rely on
name look-up an early failure can happen if the targeted VM doesn't exist.
In this case a task execution with the parameter `state` set to `absent`
will actually fail instead of being considered ok.
This patch introduces a deferred error-checking for non-existent VMs
by assigning the value -1 to the `vmid` parameter, allowing the actual
verification to be performed in the right code paths.
Is also help to differentiate between a non-existent `vmid` or non-existent
VM `name`.
Previously:
TASK [ansible-role-proxmox-instance : Remove instance-test]
changed: [localhost]
...
TASK [ansible-role-proxmox-instance : Remove instance-test]
fatal: [localhost]: FAILED! => changed=false
msg: VM instance-test does not exist in cluster.
Now:
TASK [ansible-role-proxmox-instance : Remove instance-test]
ok: [localhost]
...
TASK [ansible-role-proxmox-instance : Remove instance-test]
ok: [localhost]
Update changelogs/fragments/811-proxmox-kvm-state-absent.yml
With suggestions from Felix Fontein <felix@fontein.de>.
(cherry picked from commit 73f8338980)
Co-authored-by: Tristan Le Guern <tleguern@bouledef.eu>
* Specify device for Pushover notification
New parameter: device
Example:
- community.general.pushover:
msg: '{{ inventory_hostname }} has been lost somewhere'
app_token: wxfdksl
user_key: baa5fe97f2c5ab3ca8f0bb59
device: admins-iPhone
delegate_to: localhost
Using the Pushover API, you can specify a device where the message should be delivered to. Instead of notifying all devices (the default), the message is sent only to the specified device. Multiple devices can be given separated by a comma.
This change is downwards compatible: omitting the device key sends the message to all devices (as before).
* Added changelog fragments file for pushover
File format as specified in https://docs.ansible.com/ansible/devel/community/development_process.html#changelogs-how-to.
* Added version_added information
As suggested by Felix (thanks!).
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit bf41ddc8ef)
Co-authored-by: Bernd Arnold <wopfel@gmail.com>
* Fix for casks with @ in the name
* Add changelog fragment
* Update changelogs/fragments/homebrew-cask-at-symbol-fix.yaml
Period required at the end of changelog entry
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Use double backticks
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
(cherry picked from commit 8f2b2d9dc6)
Co-authored-by: Brandon Boles <bb@zbeba.com>
* pkg5: wrap 'to modify' package list
Moved from https://github.com/ansible/ansible/pull/56378
* Add changelog fragment.
* Correct markup.
* Update changelogs/fragments/789-pkg5-wrap-to-modify-package-list.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit d4e9b7575c)
Co-authored-by: Peter Oliver <github.com@mavit.org.uk>
* Fix deprecation of callables.
* Fix various sanity errors.
* Revert callback_type -> type transform.
* Fix stat_result times: these are float according to https://github.com/python/typeshed/blob/master/stdlib/3/os/__init__.pyi
* Apply suggestions from code review
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
(cherry picked from commit 7cf472855c)
Co-authored-by: Felix Fontein <felix@fontein.de>
* This commit adds proxmox inventory module and proxmox_snap for snapshot management
* Fixed pylint errors
* Missed this one..
* This should fix the doc errors
* Remove proxmox_snap to allow for single module per PR
* Changes as suggested by felixfontein in #535
* Reverted back to AnsibleError as module.fail_json broke it. Need to investigate further
* Made importerror behave similar to docker_swarm and gitlab_runner
* FALSE != False
* Added myself as author
* Added a requested feature from a colleague to also sort VMs based on their running state
* Prevent VM templates from being added to the inventory
* Processed feedback
* Updated my email and included version
* Processed doc feedback
* More feedback processed
* Shortened this line of documentation, it is a duplicate and it was causing a sanity error (> 160 characters)
* Added test from PR #736 to check what needs to be changed to make it work
* Changed some tests around
* Remove some tests, first get these working
* Disabled all tests, except the one I am hacking together now
* Added mocker, still trying to figure this out
* Am I looking in the right direction?
* Processed docs feedback
* Fixed bot feedback
* Removed all other tests, started with basic ones (borrowed from cobbler)
* Removed all other tests, started with basic ones (borrowed from cobbler)
* Removed all other tests, started with basic ones (borrowed from cobbler)
* Removed init_cache test as it is implemented on a different way in the original foreman/satellite inventory (and thus also this one)
* This actually passes! Need to check if I need to add asserts as well
* Made bot happy again?
* Added some assertions
* Added note about PVE API version
* Mocked only get_json, the rest functions as-is
* Fixed sanity errors
* Fixed version bump (again...) ;-)
* Processed feedback
(cherry picked from commit 73be912bf7)
Co-authored-by: Jeffrey van Pelt <jeff@vanpelt.one>
* Adding types to sysupgrade documentation
* Apply suggestions from code review
* Adding installurl flag. Changing wording in example.
* Use None for installurl by default
* Changing word case in description
* sysupgrade: use module structure recommended by Ansible unit test docs
* Adding unit test for sysupgrade
Signed-off-by: Andrew Klaus <andrew@aklaus.ca>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 2aabf5e62b)
* initial commit
* add contrib info
* remove nonfunctional \n in error messate
* add documentation and optional quiet and raw arguments
* add changelog fragment
* add aliases
* add initial test
* change folder name
* add pip install jc for tests
* simplify changelog since tests were failing
* add newline to end of file
* fix trailing whitespace in comment causing test failure
* use pip3 since tests are failing using python2.6 pip
* skip python 2.7 tests since jc only supports python 3
* use pip instead of pip3
* add python version requirement
(cherry picked from commit b2a222b136)
* Update xfconf.py
- ensure correct behaviour, even in desktop environments which don't use English as the default language
- add double as content type
* set environ_update for entire module
* set envvar LANGUAGE instead of LANG because of priority order in evaluating them
(cherry picked from commit d13b026f47)
* New module: shutdown
* Add symlink to plugin
* Fix
Signed-off-by: Amin Vakil <info@aminvakil.com>
* Fix
* Fix
* Add seealso
* Fix seealso
* Add future-import, metaclass boilerplate
* Change pre_shutdown_delay to delay
* Cleanup before executing shutdown
* Fix
* Remove unused connect_timeout paramater
* Improve documentation
* Remove deprecated function and calling it
* Remove double calling delay function
* Remove unneeded call in check delay function
* Make check mode more realistic
* Remove extra blank line
* Remove unnecessary imports and fix copyright year
* Add shutdown_command and integration test
* Fix integration test
* Don't fail on local AND enabled check_mode
* Add copyright
* Skip ubuntu1804 as systemd-sysv is not installed on container
* Ignore ubuntu 18 on task
* Readd integration tests
* Do not run integration test on ubuntu 18
* Improve integration test and add delay, msg testing
* Fix ubuntu 18 integration test
* Remove unnecessary condition
(cherry picked from commit c475effeed)
* restart from last state
* test (sanity) doc fragment placeholder
* test (sanity) remove doc fragment placeholder
* remove internal params from DOCUMENTATION
* update ignore-2.10.txt
* doc: add changelog fragment
* shorten changelog fragment
* Revert "shorten changelog fragment"
This reverts commit f9aea0d1eaefda139fd5b79bd0eb127c09a433fb.
* test with posix/group1
* test with posix/group3
* test with posix/group5
* test with posix/group4
* test with posix/group3
* New modules/action plugins automatically get a changelog entry
* fix: styles
* Revert "remove internal params from DOCUMENTATION"
This reverts commit 7d5fcf4b17e4cd5b0afc08fd1bd3fcef5fcaee26.
* drop neutral/informative/stateless behaviour
* update tasks after changes in module
* use FQCN in EXAMPLES
* add tests to validate error handling about required params
* doc: remove outdated sentence
* do not document internal parameters
* display timeout value in failure message
* remove inapropriate comment
* merge results and clean them up only once
* conditionally remove tmp path
* at least one iteration is required
* remove deprecated code
* move variables declaration to conditional block
* dissociate async and connection timeout
* improve warnings (conditions + values)
* remove ANSIBLE_METADATA (no more needed); fix typo
* update DOCUMENTATION
* Drop field 'version_added' (no more needed).
* Add a note about check_mode support.
* catch early errors before resetting connection and processing the loop
* fix typo
* change posix group (due to xtables locks); add 'version_added' in doc
* update deprecation (replace Ansible 2.12 by community.general 2.0.0)
* bump version_added to 1.0.0
* update ignore-2.11.txt
* ignore errors for 2.9 as for 2.10 & 2.11
* move action plugin to system/ and replace it by a symlink
* remove action-plugin-docs override in tests/sanity/ignore*.txt
* update action plugin docstrings
* bump version_added to 1.1.0
* use lowercase booleans
* extend usage of namespaces to ansible builtin modules
(cherry picked from commit 92242d898d)
* postgresql_set: allow to pass an empty string as a value
* add check_mode to CI for the case
* add changelog fragment
* add pause
* fix
* fix ci
* fix
* fix
* add suggested
(cherry picked from commit 05556dc671)
* Type: Wrong package names
In Red Hat systems, python packages are preceeded by `python3-`
* Use Python 2 packages on CentOS 7 and Fedora <= 28.
Co-authored-by: Frank Brütting <fbruetting@users.noreply.github.com>
* Enable/disable health and agent checks
Health and agent checks can cause a disabled service to re-enable
itself. This adds "health" and "agent" options that will also
enable or disable those checks, matching if the service is to be
enabled/disabled.
* Update plugins/modules/net_tools/haproxy.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/net_tools/haproxy.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/net_tools/haproxy.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/net_tools/haproxy.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Changes to documentation and changelog.
Changes for the haproxy documentation to resolve issues with
the CI/CD, and adding a changelog fragment.
* Update changelogs/fragments/689-haproxy_agent_and_health.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/689-haproxy_agent_and_health.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/net_tools/haproxy.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add an example of health/agent disable.
* Update plugins/modules/net_tools/haproxy.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Sometimes Jira returns dicts as "errors" instead of simple strings.
For example, when a user specifies a field that cannot be set, Jira
returns a dict with the field name as a key and the error message as the
value.
In the rare case that we have both a "errorMessages" list and an
"errors" dict, when we combine those values later with join(), Python
raises a TypeError.
Transform each individual error message into a string, and then join()
the list of strings.
* Slack: add support for blocks
* Slack: drop unused validate_certs option
* Slack: update docs to reflect thread_id can be sent with tokens other than WebAPI
* Slack: drop escaping of quotes and apostrophes
* Slack: typo
* Revert "Slack: drop escaping of quotes and apostrophes"
This reverts commit bc6120907e.
* Revert "Slack: drop unused validate_certs option"
This reverts commit a981ee6bca.
* Slack: other/minor PR feedback
* Slack: add changelog fragment
* Slack: clean-up/clarify use of recursive escaping function
* Slack: PR feedback
Co-authored-by: Lee Goolsbee <lgoolsbee@atlassian.com>
* doas: properly set the default values
The module expects by default:
- `become_user` to be `None` or a string,
- `become_flags` to by an empty string.
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* archive: exclude_path does not actualy exclude files from archive, but paths generated by glob expantion of path param.
* Update plugins/modules/files/archive.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added uint type to xfconf module
* Update changelogs/fragments/xfconf_add_uint_type.yml
Updated PR number in changelog
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Pierre Roudier <pierre.roudier@ticksmith.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
Jira's API can return a empty "errorMessages" list, and the real error
is in the "errors" object. This happens, for example, if a user tries to
file a ticket in a project that does not exist (tested with Jira
v7.13.8)
Check both "errorMessages" and "errors", and report both values with
fail_json().
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Shameless recommit of changes in jesstruck/ansible:jenkins_plugins_sha1
* Add changelog fragment.
* Change variable name to remove reference to sha1
Also, update changelog fragment typos/style.
* Update changelog fragment typos/style.
* big revamp on xfconf, adding array values
* added changelog fragment
* Update changelogs/fragments/693-big-revamp-on-xfconf-adding-array-values.yml
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Fixed index out of range in yarn module when no packages are outdated
* Fixed handling of yarn dependencies when scoped modules are installed
* Added changelog fragment for yarn module fixes
* Adhere changelogs/fragments/474-yarn_fix-outdated-fix-list.yml to current standards
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Added scoped package to yarn integration test
Co-authored-by: Jan Gaßner <jan.gassner@plusserver.com>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Add cobbler inventory plugin
* Add elements, caps
* Use fail_json if we cannot import xmlrpc_client
* [cobbler] Raise AnsibleError for errors
* [plugins/inventory/cobbler] Add cache_fallback option
* [inventory/cobbler] Use != for comparison
* [inventory/cobbler] Add very basic unit tests
* Update plugins/inventory/cobbler.py
Use full name
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Revert "Remove entries of modules that no longer exist." partially.
This reverts commit c1e1b37da4.
* Revert "The _info module is in google.cloud."
This reverts commit 26f5c84924.
* Revert "Remove modules that were moved to the google.cloud collection according to ansible/ansible's ansible_builtin_runtime.yml."
This reverts commit a1442ccc35.
* Fix FQCNs in examples and module references.
* Add changelog fragment.
* Update ignore.txt.
* Remove bad lines.
* postgresql_query: add search_path parameter
* add CI tests
* add ref to seealso
* add changelog fragment
* fix test syntax
* fix test syntax
* fix
* fix
* fix CI syntax
* cosmetic change
* improve CI test
* move CI tests to the right place
* improve CI
* pacman: Treat .zst package names as files
* pacman: add changelog for .zst support
* pacman: refer to pull-request in changelog fragment
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: gileri <e+git8413@linuxw.info>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Adding ODBC module
* Adding symink and fixing docs and argspec
* Another sanity issue
* Hopefully last fix for elements
* Making changes suggested by felixfontein
* Making changes suggested by Andersson007
* Removing defaults and added info in description
* Fixing line too long
* More cleanup suggested by felixfontein
* Changing module call
* Add check for rundeck_acl_policy name
* Update changelogs/fragments/add_argument_check_for_rundeck.yaml
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* migrate firewalld to ansible.posix
Signed-off-by: Adam Miller <admiller@redhat.com>
* fix removal_version for runtime.yml
Signed-off-by: Adam Miller <admiller@redhat.com>
* add changelog fragment
Signed-off-by: Adam Miller <admiller@redhat.com>
* Update meta/runtime.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/firewalld_migration.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* add module_util routing entry
Signed-off-by: Adam Miller <admiller@redhat.com>
* Update meta/runtime.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* modules: fix names with hyphens (#656)
* modules: fix names with hyphens (#656)
* Fix param name for postgresql_schema
* Add double quotes for schema name
* Add delete created DB objects
* Fix module code
* Set correct test tasks order
Co-authored-by: Maxim Voskresenskiy <maxim.voskresenskiy@uptick.com>
* chore: runtime en var and list default bahevaior
Ability to pick options values from env vars on gitlab_runners inventory plugin
Remove default 20 items limit to runners list on gitlab_runners inventory plugin
* Changelog fragment
Co-authored-by: Felix Fontein <felix@fontein.de>
* Changelog fragment
* Badly placed fragment
Co-authored-by: Felix Fontein <felix@fontein.de>
* changelog fragment for api token
* changelog fragment
* Update changelogs/fragments/611-gitlab-runners-env-vars-intput-and-default-item-limit.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/611-gitlab-runners-env-vars-intput-and-default-item-limit.yaml
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* fix: remove default filter all due to #440
* fix: remove default filter all due to #440
* chore: add os env var for filter input
* chore: add os env var for filter input
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Fix: only "warn" when restart is required
Motivation: my logs are flooded with "warnings" when I run roles against instances.
So even though I understand for this "warning", it's a false positive when nothing
needs to be done.
* Update changelogs/fragments/651-fix-postgresql_set-warning.yaml
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Add the Thycotic Secret Server lookup plugin.
* Update plugins/lookup/tss.py
Co-Authored-By: Felix Fontein <felix@fontein.de>
* Fix import error check per code review.
* Apply suggestions from code review
Co-Authored-By: Felix Fontein <felix@fontein.de>
* Trivial changes based on suggestions from code review.
* Add a unittest for plugins/lookup/tss.py
* Add copyrights.
* Fixed formatting bug in test_tss.py
* Fix formatting bugs in tss.py and test_tss.py
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
Added additional condition to detect failed task in
selective callback plugin when ran with loop or with_items.
Fixes: ansible/ansible#63767
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Remove all files ignores to see errors
* Fix
* Revert archive.py as its change should be discussed in another PR
* Ignore archive.py
* Revert xml
* Fix
* pkgng: Add support for upgrading all installed packages
Adds support for ``name: "*", state: latest`` to upgrade all installed
packages, similar to other package providers.
Co-authored-by: Felix Fontein <felix@fontein.de>
* pkgng: Improve wording for warning in example, fix formatting
* pkgng.py: Fix capitalization
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Davíð Steinn Geirsson <david@isnic.is>
Co-authored-by: Felix Fontein <felix@fontein.de>
* postgresql_db: document when pg_restore is used (#588)
* postgresql_db: more precise description for target_opts
* Update plugins/modules/database/postgresql/postgresql_db.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* - Redirecting to correct collection
- Removing the plugin and adding changelog and deprecation
* Making suggested changes
* Earlier version on leftovers
* Update changelogs/fragments/cyberarkconjur-removal.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* nmcli: add idemptent support for any kinds of connections
Fixes#481: nmcli reports changed status even if nothing needs to change
- Implement show_connection() to retrieve connection profile from command line
- Parse integer enumeration values in show_connection()
- Convert 'bond.options' to alias shortcuts
- Modify connection only if changes are detected
- Support generic alias in during the property comparison
* nmcli: add idemptent support for any kinds of connections
Add mock object for modification cases when connection state changes
* nmcli: add idempotent support for any kinds of connections
- Add more test cases to check idempotent for each type of connections
- Verify 'changed' and 'failed' in the result of each test
- Append prefixlen for 'ip4' values in test data
- Fix the incorrect 'return_value' of execute_command() in previous mockers
- Ignore the empty string in _compare_conn_params()
- Fix the property key mapping of 'bridge-port.hairpin-mode' for bridge-slave
- Add 'override_options' in the result output for playboot debug
* nmcli: add idempotent support for any kinds of connections
Fix pep8 issues in test_nmcli.py: Comparison to False should be 'not expr'
* nmcli: add idempotent support for any kinds of connections
Support setting 'ipv4.method' or 'ipv6.method' via nmcli if the configuration method changes
* nmcli: add idempotent support for any kinds of connections
Simplify the if statements in show_connection() according to vlours's advice
* nmcli: add idempotent support for any kinds of connections
Fix the list argument comparison method with multiple values.
* nmcli: add idempotent support for any kinds of connections
Use ansible --diff option output to show detailed changes instead of a private return value.
* nmcli: add idempotent support for any kinds of connections
Add changelog fragment for bugfix.
* use Config MacAddress by default instead of Networks
* use Config MacAddress by default instead of Networks - fix typo
* #564 docker_container macaddress - add changelog fragment
* [splunk] Add an option to not fail when the certificate is not valid
Add an boolean option validate_certs to not validate the certificate of
the HTTP Event Collector.
* Add changelog
* Fix using tabs indentation
* Fix post-review - fix changelog and version of the parameter
Co-authored-by: Baptiste Mille-Mathias <baptiste.millemathias@gmail.com>
* airbrake_deployment: Add version param
The aibrake v4 API allows for distinct `version` and `revision` params.
The `revision` param is meant to indicate a revision from the version
control system (such as a Git hash), whereas the `version` param is
meant to be a version number (such as 1.2.3). This is especially
noticeable in the Airbrake UI where revisions are truncated to 7
characters, and used to build GitHub style diff links (such as
689a25edcf...e54dd3a01f).
* Add link to PR in changelog
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add version_added to version param
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add type to version's argument_spec
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove all packaging sanity tests to see errors
* fix
* Fix
* Minor fixes
* Fix
* Fix redhat
* Fix redhat_subscription
* Fix redhat_subscription
* Fix redhat_subscription
* Ignore redhat_subscription return-syntax-error
* Remove more ignored sanity tests
* Remove force from xbps argument_spec as it doesn't do anything(?)
* Remove unnecessary sanity test for xbps
* Fix suggestions made by felixfontein
* Better changelog description, fix portage wrong default values
* Fix
* Fix
* Remove root default from urpmi doc
* Fix wrong type of default for booleans
* Add default value as suggested by felixfontein
* Fix changelog
* dont start the service it parameter stopped is true
* add missing changelog fragment
* fix formatting of the changelog fragment
* add condition to disallow the usage of stopped and restarted at the same time
* fix changelog
* pkgng: Add stdout and stderr to response object
To ease debugging if something goes wrong during pkg run.
* pkgng: Fix crash when run with autoremove
Fix crash when run with "autoremove: yes" but no packages
need to be autoremoved.
* Add changelog fragment for pull request 560
* Formatting changes for changelogs/fragments/560-pkgng-add-stdout-and-stderr.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Davíð Steinn Geirsson <david@isnic.is>
Co-authored-by: Felix Fontein <felix@fontein.de>
* filesystem.py: fix xfs growfs
xfs needs to be mounted to be expanted.
Add function to get mountpoint of filesystem.
* Fail if xfs filesystem is not mounted
xfs growfs needs to be executed on a mountpoint. That will be enforced
now by xfsprogs-4.12.
https://bugzilla.redhat.com/show_bug.cgi?id=1477192
* Update changelogs/fragments/33979-xfs_growfs.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* suppress exceptions for optional env variables
* Options handling switched to "get_option" approach
* Put back _raw option for documentation purposes
* Fix url option description
* remove ini section
* Docs fixed
* force rebuild to fix aix tests
* Point returned in order to have full sentence in description
* Add general arguments fix information to changelog fragments
* Add PR link to changelog fragments
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix port/scheme handlng in case they weren't provided in URL argument
* Add argument type for url
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Denis Savenko <denis.savenko@tonicforhealth.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Allow passing negative numbers to specify partition boundary relative to disk end
Fixes: https://github.com/ansible/ansible/issues/43369
* parted: unit test case, create partition with part_start: -1GiB
* fs_type parameter is not really optional for negative part_start parameter
* Revert "fs_type parameter is not really optional for negative part_start parameter"
This reverts commit 800b1cb00b.
Instead: added notes and documentation about netagive part_start and fs_type.
* include fs_type in negative part_start example
* firewalld: add zone target set
Fixes https://github.com/ansible/ansible/issues/49232
Signed-off-by: Adam Miller <admiller@redhat.com>
* fix sanity tests, add example of zone target setting
Signed-off-by: Adam Miller <admiller@redhat.com>
* test different zone/target combination as we're not hitting default settings
Signed-off-by: Adam Miller <admiller@redhat.com>
* fix enabled values for zone operations
Signed-off-by: Adam Miller <admiller@redhat.com>
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add vpc_uuid option to droplet creation
* Include new vpc_uuid option digital_ocean_droplet
* Remove required, add type for vpc_uuid
Co-authored-by: Felix Fontein <felix@fontein.de>
* Create changelog fragment file
* Include version_added
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix the behavior of ipa modules in case IPA_HOST is empty
The expected behavior, when the env is empty, is to
fallback on DNS. Without this fix, if IPA_HOST is empty,
there are different errors, depending on urllib version,
which additionally confuses the user. Example errors:
* host_find: Request failed: <urlopen error no host given>
* Failed to connect to None at port 443: [Errno 111]
Connection refused", "status": -1, "url":
"https:///ipa/session/json
* Add a changelog fragment for IPA_HOST fix
* Update changelogs/fragments/241-fix-ipa-modules-when-ipa_host-empty.yml
Co-authored-by: Sandra McCann <samccann@redhat.com>
Co-authored-by: John R Barker <john@johnrbarker.com>
Co-authored-by: Sandra McCann <samccann@redhat.com>
* Fixes#143, change package parameter from str to list
* remove uneccessary splitting
* add changelog fragment
* fix parameter-list-no-elements validation
* fix documentation
* Fix changelog
* Fix documetation, add example with list of packages
* Update changelogs/fragments/apt_rpm_typefix.yml
Co-authored-by: Alexander Leshkov <lam@arenadata.io>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add "prompt" parameter that allows to specify one or more prompts and optionnally their answer
* Documentation backslash fixes as well as file structure
* Add r prefix to documentation
* Fixed documentation indentation
* Fixed various trailing whitespaces and file structure
* Doc description string fix, the tests thought it was an AnsibleMapping object
* Added elements parameter to argument_spec definition.
* Complete documentation.
* Add bool instead of if else expression
Co-Authored-By: tchernomax <maxime.deroucy@gmail.com>
* Replace _item by a shorter expression as suggested
Co-Authored-By: tchernomax <maxime.deroucy@gmail.com>
* Commit suggestion
Co-Authored-By: Felix Fontein <felix@fontein.de>
* Commit documentation suggestion
Co-Authored-By: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/29253-pear_add_prompts_parameter.yml
Co-Authored-By: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/language/pear.py
Co-Authored-By: tchernomax <maxime.deroucy@gmail.com>
* Add case where "null" is specified in a list. Improved documentation as well
* Too much caracter removed in documentation
* We now always specify a prompt and a data parameter
* minor documentation change
* Update changelogs/fragments/29253-pear_add_prompts_parameter.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* pear: fix version_added
Co-authored-by: Felix Fontein <felix@fontein.de>
* pear: fix description
Co-authored-by: Veltarn <dante161@gmail.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* slackpkg: fix matching some special cases in package names.
* Add chagelog/fragments file
* Update changelogs/fragments/505-slackpkg_fix_matching_some_special_cases_in_package_names.yml
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Adjust deprecation versions.
* Remove redirects that are already made in ansible/ansible's ansible_builtin_runtime.yml
* Remove modules that were moved to the google.cloud collection according to ansible/ansible's ansible_builtin_runtime.yml.
* The _info module is in google.cloud.
* The gcp doc_fragment is a copy of the one in google.cloud and is only used by one lookup. Mark as deprecated/internal.
* Remove entries of modules that no longer exist.
* Update ignore.txt.
* Try to fix test.
* Remove debug output.
I spent some time debugging an error, where the unexpected HTTP return code was
reported to be -1. Digging deeper, I found the cause using this patch:
"An unknown error occurred: ~/.netrc access too permissive: access permissions
must restrict access to only the owner"
* Add version_added: 1.0.0 for all new features added before pre-ansible-base.
* Add version_added: 1.0.0 for all new features.
* Next release will be 0.2.0
* Fix error.
* Remove unnecessary warnings.
* Do domain resolution for portal
iscsiadm support domain resolution (ex: iscsiadm -m discovery -t sendtargets -p iscsi.chiehmin.com).
However, open_iscsi module will try to match the portal with discovered results which will never
matched cause the discovered results use IP to represent node.
This patch do portal DNS resolution first to solve this situation.
Signed-off-by: Chieh-Min Wang <chiehminw@synology.com>
* Update changelogs/fragments/461-resolve-domain-for-iscsi-portal.yml
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
To remove a scaleway compute node, one needs to stop it first. This is
handled internally within the module by shutting down before removing.
Shutting down the node transitions it to a "stopping" state, which is
not the "stopped" state we expect. We thus need the transition to
complete so that we can put it in the actual target state (absent, i.e.
delete it).
The mechanism for waiting for such transitions today is controlled by
module parameters, with default to not being enabled at all, which
includes the transition from ([running] -(stopping)-> [stopped]).
Without this chage, in case of a running node, we would shut it down
(transition it to "stopping"), not wait for it complete the transition,
realize that it's not yet stopped and issue a second shut down command
to the api. This would fail with a 400 Bad Request error, "already
stopped".
Reference: https://github.com/ansible/ansible/issues/45740
Reported-by: zwindler
* slackpkg: fix name matching in package installation (#450)
* Escape re parameters and optimize matching as suggested in code review.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/450-slackpkg-package-matching.yml
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* feature: module dpkg_divert + tests
* try to skip non-deb linux distrib
* use collection namespace in EXAMPLES
* skip unsupported OS/distrib in tasks instead
* tests: remove unskipped distribs
* apply changes suggested by Andersson007
* Remove ANSIBLE_METADATA (no more needed).
* Normalize docstrings (capitalize descriptions, fix styling, use yes/no
booleans).
* fix descriptions
* update DOCUMENTATION
* Drop field 'version_added' (no more needed).
* Add a note about check_mode support.
* use list comprehension
* support diff mode
* Move 'before'/'after' dicts into 'diff' dictionary.
* Set 'diversion' as the actual state (or the state that would be
reached, when in check mode).
* Always return 'diversion' on handled exits (exit_json & fail_json).
* enable 'diff' mode in tests, add missing 'become'
* This is a modified copy of the cisco_spark.py file. The name change is associated with the change of the product name from Cisco Spark to Cisco Webex Teams. In addition, the current version (cisco_spark) does not work due to a name collision with MESSAGE. I had to modify the name from "message" to "webexmsg" in many places in cisco_webex. It works fine in this version.
The original author has been preserved and copied from cisco_spark to cisco_webex.
@drew-russell
The current version of cisco_spark module does not work due to a name collision with MESSAGE. I had to modify the name from "message" to "webexmsg" in many places in cisco_webex.py file. It works fine in this version.
The name change is associated with the change of the product name from Cisco Spark to Cisco Webex Teams.
* cisco_spark rm
* suggested change
* aliases added to in def main funcitons
* sanity check corrections
* addess aliases type to msg_type
* felixfontein requested changes on this pull request.
* Return value change from msg to message.
* plugins/modules/notification/cisco_webex.py validate-modules:invalid-argument-name
added to tests/sanity/ignore-2.10.txt
* add sops lookup plugin
* fix pylint
* fix undefined encrypted_file variable
* decode sops output as text by default
* add variable to control decrypted content print in logs
* use Sops class decryption method
* lookup should return text, use appropriate ansible facility
* use ansible.module_utils._text.to_native
As required by Ansible documentation on [raising errors][raising-errors]
from plugins, use to_native to wrap errors to ensure string compatibility
between Python versions.
[raising-errors]: https://docs.ansible.com/ansible/latest/dev_guide/developing_plugins.html#id3
* use with_items instead of with_file in sops lookup documentation
[with_file][with-file], per Ansible documentation, returns the content of
the file. As sops is not able to decrypt a string by itself but requires
the file is passed as argument, passing the content breaks the lookup
plugin as reported by [here][bug-report].
[with_items][with-items] should be used instead.
[with-file]: https://docs.ansible.com/ansible/2.4/playbooks_loops.html#looping-over-files
[with-items]: https://docs.ansible.com/ansible/2.4/playbooks_loops.html#standard-loops
[bug-report]: https://github.com/ansible/ansible/pull/59639#issuecomment-540803722
* uniform sops exception handling between plugins
* Apply suggestions from code review
Co-Authored-By: Felix Fontein <felix@fontein.de>
* remove sops lookup plugin print option
Is no longer possible to print the decrypted secrets directly from this
plugin, but `debug` module can be used instead.
* add github handle to author
* add setup_sops integration target
* extract sops module
* add lookup_sops integration tests
* use sops module
* Update plugins/module_utils/sops.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/module_utils/sops.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/lookup/sops.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/module_utils/sops.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/module_utils/sops.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update test/integration/targets/lookup_sops/tasks/ubuntu.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/module_utils/sops.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update test/integration/targets/lookup_sops/files/simple.sops.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Adding aliases file
* Emtpy spaces
* Update plugins/lookup/sops.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/lookup/sops.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/lookup/sops.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update test/integration/targets/lookup_sops/tasks/ubuntu.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/lookup/sops.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update test/integration/targets/lookup_sops/tasks/ubuntu.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update test/integration/targets/lookup_sops/tasks/ubuntu.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* gpg -> gnupg2
* with_items -> loop
* Move error logic to module_utils.
* Make Sops.decrypt() also handle errors and decode output.
* Improve error handling.
* Improve example formatting.
* Reorganize tests.
* Add test.
* Remove version_added.
Co-authored-by: Edoardo Tenani <edoardo.tenani@protonmail.com>
Co-authored-by: Edoardo Tenani <edoardo.tenani@gmail.com>
Co-authored-by: Edoardo T <endorama@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added 'extra_install_args' option to allow extra upgrade/install
Example zypper args for this is
* --allow-vendor-change
* --replacefiles and
* --force-resolution
* Fix comment issue..
* Change extra_install_args option to a list.
Improved doc.
* Update plugins/modules/packaging/os/zypper.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/os/zypper.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Switch from using extra_install_args to individual module options.
* Fix syntax errors and limit 'allow-vendor-change' to 'dist-upgrade'
* Removed un-needed import
* Added changelog fragment
* Added tests for zypper replacefiles and allow_vendor_change options
* Removed dist-upgrade as it changes the test environment.
And it is hard to undo.
* Added proper test of replacefiles zypper option
Buiding two rpm packages containing same file path but with different content.
Making sure we fail to install them without the replacefiles options and that we succeed
using it.
* Make sure to create directory before writing files
* Fix indentation of ignore_errors
* Correct genereated rpm file name
* Improved duplicate file assertions
* Ensure no previous netcat package still exists.
* Corrected naming of example task.
* Fix variable name typo.
* Fix proper duplicate_content access
* Make sure to clean up duplicate rpms after tests.
* Removed debug
* Removed version_added of option allow_vendor_change and replacefiles
Co-authored-by: Felix Fontein <felix@fontein.de>
* add a new module iso_create
* add elements in argument spec
* remove changelog for new module
* change the path of test file
* comment out pip check task in test case
* comment out install pip in test case
* move pip install task and add skip python2.6
The common http api client class used by the scaleway modules only
enables automatic jsonification of the request body if the
"Content-Type" header is application/json. The client only included
"Content-type" in its default set of headers (notice the case
variation).
This caused a KeyError on send() if the caller relied on the default
content-type value.
* kwargs for _update_monitor wasn't corrected to new notification_message param
* forgot to bump a changelog fragment
* Update changelogs/fragments/389-datadog_monitor-corrects-deprecated-message-param.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add validity check for [Driver][IPAddress] else use docker-machine ip command.
* Note why we fallback to the `docker-machine ip <machine name>` command.
* Add changelog fragment.
* Corrected module name in changelog fragment.
Co-authored-by: Ben Roose <ben.roose@wichita.edu>
* gitlab_project_variable: added support for variable_type
* gitlab_project_variable: Added integration tests for variable_type file.
* Changed test case variable name, ansible was masking the output.
* This fixes (#275)
* Migrated PR from https://github.com/ansible/ansible/pull/47768
* Applied requested changes
* Fixed issue with load_file_common_arguments
* Using args list when calling run_commands
* Keytool now reads passwords from stdin
* Fixed PEP8 indentation issues
* parted: consider current partition state even in check_mode
* Update changelogs/fragments/183-parted_check_mode.yml
Co-Authored-By: Andrew Klychkov <aaklychkov@mail.ru>
* Test check_mode considers get_device_info
* fixed pep8 E302: expected 2 blank lines
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
This was using k8S_AUTH_CONTEXT with a lowercase k. That doesn't match
with any of the other K8s stuff so users would probably be confused why
their envvar wasn't working.
* Adjust target directory so that ansible-test knows what to run when filters change.
* Divide by multiple instead of multiplying with product of 1/factor to improve numerical robustness.
* Allow to say what a year or month is (in days).
* Add changelog fragment announcing the time filters.
* Make sure unknown keyword args result in errors.
* Fix formatting screw-up.
* Un-remove wrongly removed ovirt modules and adjust deprecation to Ansible 2.14 (regular 4 version deprecation cycle).
* Update sanity-2.10.txt
* Vendor dependencies from ovirt.ovirt as deprecated, and remove dependency on ovirt.ovirt.
* Use ovirt_facts doc_fragment, and don't add _ovirt_info doc_fragment.
* filter: add new time convert filters
The plugin include:
- to_seconds
- to_minutes
- to_hours
* refactor and extend
* more UX improvements
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* even more UX improvments
* fix indentation
* fix for py3
* enable aix in ci
* simplify
* add to_months, use 360d as year.
* rearrange tests
* year back to 365 days
Co-authored-by: Felix Fontein <felix@fontein.de>
* add description and hookscript parameters to proxmox LXC container
* fix pep8 E128
* Update plugins/modules/cloud/misc/proxmox.py
Co-Authored-By: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/cloud/misc/proxmox.py
Co-Authored-By: Andrew Klychkov <aaklychkov@mail.ru>
* add example for proxmox hookscript and description
* add changelogs fragment for PR #245
* set hookscript type
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Add info command to redis module
* Fix sanity test
* Create a separate redis_info module
* Type of arguments in documentation was determined
* Add redis_info test
* Fix sanity test
* Add integration test
* Add integration platforms (centos7/8,fedora30/31,opensuse15+py2,ubuntu1604/1804)
* Add centos6 support
* Fix suggestions
* Add contact email
* Refactor postgresql_idx to simplify code
Have refactored the postgresql_idx module to:
* Use the class schema in the drop function rather than a passed in one
* Remove the if/else and just return the bool in the drop and create
functions
* Refactor postgresql_ext module
Have refactored the postgresql_ext module to:
* Remove an unused exception
* Simplify logic in the create and update functions
* Use list comprehension to simplify getting the available version
* Refactor postgresql_user_obj_stat_info module
Have refactored the postgresql_user_obj_stat_info module to:
* Simplify the logic in some of the functions
* Reduce duplicate code
* Add changelog fragment
Have added a trust_input option to the postgresql_user_obj_stat_info
module. This only checks the session_role since all other options are
passed as parameters.
Using a list ensures that all subprocess arguments are correctly
escaped. By building strings and then calling .split(), potential
arguments with a space will be incorrectly split over two arguments.
When a string is needed for presentation, join to the list to build the
string.