* Fix typo in redhat_subscription testcase
* Fix macports state=present matching against the wrong package name
Previous implementation returned true if the desired package name occurred anywhere in
the list of all installed packages. For example as a substring of another package name,
or even as a substring of a variant name for a different package.
Instead:
- request macports only list installed packages matching the desired package name, instead of all installed packages.
- Note `port` exits with 0 regardless of whether any packages match the requested name.
- pass `-q` flag: "Do not print the header line. This is useful when parsing the output of port installed in scripts for further processing."
- eliminate `use_unsafe_shell=True` by searching stdout contents natively in python
instead of using `grep`. This has the added benefit of eliminating any potential
misinterpretation of characters in the package name as regex special characters.
If there are zero matching installed packages, `out` is empty.
If there are one or more matches (due to multiple installed versions), the output format
is: ec8a2bc682/src/port/port.tcl (L3320-L3323)
Notably, two leading spaces, the package name, a space, and then other information.
According to blame via github, those lines haven't changed in 11 years.
* Update macports state=active to eliminate use_unsafe_shell
Similar to previous commit (for macports state=present):
- pass `-q` flag: "Do not print the header line. This is useful when parsing the output of port installed in scripts for further processing."
- search stdout contents natively in python instead of using `grep`.
- added parentheses to search string to eliminate false positives if the package name
or variants contain the word `active`. Still could fail if they contain `(active)`, but
that's less likely
If there are zero matching installed packages, `out` is empty.
If there are one or more matches (due to multiple installed versions), the output format
is: ec8a2bc682/src/port/port.tcl (L3320-L3323)
For "state=active", we're looking for a line that contains `(active)` in the output.
* Basic test case of query_port for present and active
* Attempt to fix lint errors in test
* Different mock module creation, changed test cases indentation/spacing
- picked the wrong mock code to cargo-cult. Thanks to felixfontein for this suggestion
- 4 space indentation on continuation line. I thought I had that originally, but it looks like my editor sabotaged me with mixed tabs/spaces
- Remove leading newline on multi-line test cases. I don't think it would make a difference, but I'd read up on how the python syntax works and want to more accurately represent macports output.
fingers crossed this addresses the known build errors
* Add changelog fragment
* Update tests/unit/plugins/modules/packaging/os/test_macports.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/1307-macports-fix-status-check.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Datadog: Mark notification_message as no_log
This message field is often used to page people or teams inside
an organization when a monitor goes off, by using `@` mentions.
If Ansible is configured to use Datadog's callback plugin [1], an
unwanted interaction would happen:
When a monitor fails to create, the callback sends an error event
to Datadog which contains all the task's loggable fields in it.
If the message field contains `@` mentions, this event would page
the people on them.
[1] https://github.com/DataDog/ansible-datadog-callback
* Add changelog fragment
* Update changelogs/fragments/1338-datadog-mark-notification_message-no_log.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* proxmox: create a common base
Add a doc_fragment to share the documentation regarding authentication
parameters (api_host, api_user, api_password, api_token_id,
api_token_secret as well as the lone validate_certs).
Add a module_utils to hold common code such as the argument spec (again
related to authentication paramters), a helper function to convert from
Proxmox boolean representation to python and the base class
ProxmoxAnsible.
For now it only handles the connection to Proxmox VE API but more can be
added in the future.
To check if everything is well in place add three new modules:
proxmox_{domain,group,user}_info.
And finaly tests these new modules.
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add tests/integration/targets/proxmox/aliases
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added umask option to passwordstore lookup plugin.
* Added umask documentation and changelog fragment.
* Added default values to paramvals within the run method.
* removed blank lines (PEP8)
* Update changelogs/fragments/lookup-passwordstore-umask.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/lookup/passwordstore.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/lookup-passwordstore-umask.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* passwordstore lookup plugin: changelog fragment update
* passing environment variables to subprocess.Popen()
* Update plugins/lookup/passwordstore.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* rm trailing whitespace
* Don't force default umask in the plugin, pass will take care of this.
* remove default from the documentation string
* remove trailing whitespaces
* prevent KeyErrors when checking if key exits in paramvals.
* Update plugins/lookup/passwordstore.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix for TypeError
* revert back to old directory test
Co-authored-by: bratw0rst <c.chmiel@speakup.nl>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove deprecated modules and plugins.
* Clean up BOTMETA.
* Re-add _netapp doc fragment and module utils. This is needed by the remaining na_ontap_gather_facts module scheduled for removal in 3.0.0.
* * pkgin query_package(..) understands now also package name with version (my-package-1.2nb123456). * pkgin query_package(..) will distinct between not-installed and not-found packages. * pkgin install_package(..) fails with proper error if a non-existing package is attempted to be installed.
* fixup ansibot comments
* add changelog fragment
* add example
* use more pythonic condition
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* remove extra dot between description and link to PR
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* fix file extension of changelog fragment
* add pkgin unit tests for query_package function
* fix pep8 issues
* use enum Flag instead mix of strings, bools and None as return value
* use IntEnum instead Flag to support Python versions >= 2.6
* fix pep8 and pylint errors
* use regular class instead enum to avoid issues with older Python releases
* fix comment
* remove the combined package state since without an IntFlag or Flag the usage of it would require to use logical operators
Co-authored-by: Erik van Nooijen <eric.vannooijen@tomtom.com>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Add ability to resize existing partition
* Add 'resize' flag to support backwards compatability, and allow partition reduction
* Add changelog fragment for #773
* Update changelogs/fragments/773-resize-partition.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/parted.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update resize flag with PR review comments
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/system/parted.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update default on resize flag in parted.py
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Big revamp in xfconf.py
- added plugin/module_utils/module_helper.py
- scaffold class for writing modules, beyond standard AnsibleModule
- automatic capture of exceptions
- easier dependency testing
- StateMixin to easily handle different behaviours for 'state' param
- CmdMixin to easily run external commands
- adapted test_xfconf.py
- the args for run_command are now lists instead of a string
- value and previous_value were not being tested before (because xfconf wasn't filling results - see below)
- added more tests: setting value to previous_value, getting non-existent property
- rewritten xfconf module, keeping the same results
- original module posted results as ansible_facts, this version still does it for compatibility, but also adds to the module result
* Added suggestions from the PR
* Added russoz as maintainer for the module_utils/module_helper.py file
* Formatting using printf-style requires special treatment
Strings not containing substitution tokens must work as well.
* Tidied up variables in module definition
* Tests with ArgFormat and DependencyCtxMgr
* pytest parameters must be in the same order, it seems
* improved testing for the DependencyCtxMgr
* fixed test for older pythons
* Moved changed property to improve readability
* Added testcase for state: absent and adjusted xfconf after it
* Fixed param name environ_update in run_command()
* added changelog fragment
* fixed tests after run_command param change
* [pkgng] introduce IGNORE_OSVERSION to pkgng
* [pkgng] add small description about IGNORE_OSVERSION
- source: https://www.freebsd.org/cgi/man.cgi?query=pkg.conf&sektion=5
* [pkgng] initialize default value of 'ignoreosver' as False
* [pkgng] replace double quotes by single ones, when setting 'ignoreosver'
* [pkgng] do not make 'ignoreosver' a required option for this module
* [pkgng] mode the point we set IGNORE_OSVER into install_packages()
* [pkgng] restrict the use of 'ignoreosver' to pkg versions >= 1.11
- https://github.com/freebsd/pkg/blob/release-1.11/NEWS#L51
* [pkgng] value of 'ignoreosver' passed to install_packages
- install_packages() contains a taks to update local pkgs cache;
- should that update be triggered, AND 'ignoreosver' is set to True,
we must change existing "batch_var" and add the IGNORE_OSVERSION=yes
to the environment;
- there pkg running on STABLE or CURRENT FreeBSD machines will have a
chance to proceed with the "update" action
* [pkgng] create option description for "ignoreosver" and its defaults
* [pkgng] make sure we do use IGNORE_OSVERSION when action is "update"
* [pkgng] add more information on how 'ignoreosver' works
Signed-off-by: Vinicius Zavam <egypcio@googlemail.com>
* [pkgng] create changelog fragment for PR #1243
Signed-off-by: Vinicius Zavam <egypcio@googlemail.com>
* [pkgng] add information about when we start to offer 'ignoreosver'
Signed-off-by: Vinicius Zavam <egypcio@googlemail.com>
* [pkgng] rename 'ignoreosver' -> 'ignore_osver'
Signed-off-by: Vinicius Zavam <egypcio@googlemail.com>
* [pkgng] remove unnecessary backslashes for install_packages() call
Signed-off-by: Vinicius Zavam <egypcio@googlemail.com>
* [pkgng] fix changelog fragment's formating
Signed-off-by: Vinicius Zavam <egypcio@googlemail.com>
* Adjust path for time stamped SNAPSHOT versions
Test the version string for the timestamp SNAPSHOT pattern. If it matches, substitute the SNAPSHOT version in the artifact path rather than the timestamped version string.
* Add changelog fragment for PR 713
* Update changelogs/fragments/713-maven-timestamp-snapshot.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* C
Fix problems reported by shippable
Fix problems reported by pull request checks
* Resolve additional shipping errors
Co-authored-by: jweber <jweber@seastreet.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
Provides an alternative authentication method to the password.
The token validity is only tested during the first request after the
instantiation of `ProxmoxAPI`, thus the presence of a call to
`proxmox.version.get()` in `proxmox_template`.
Example:
- name: Ensure test-vm is created
proxmox_kvm:
api_host: prx-test
api_user: tleguern@pve
api_token_id: api-pve-test
api_token_secret: fad3db3d-b335-ee15-9fb0-ea1bf70128db
node: prx-test-01
name: test-vm
...
As per the plugin documentation and the Hashicorp Vault documentation (https://www.vaultproject.io/docs/auth/approle#secretid)
secret_id is not mandatory.
Moreover, using this lookup plugin without a secret_id used to work in
Ansible 2.9.
Co-authored-by: Jonathan Piron <jonathanpiron@gmail.com>
* Adjusted case in class names - transparent to users
* Adjustments to module code:
- No need to try/except everything, in fact it complicated debugging
- Replaced second call to xfconf.get() with xfconf.previous_value
* the actual test
* removed extraneous empty lines
* added changelog fragment
* rolled back removing the try/except around the main execution
* Update changelogs/fragments/1305-added-xfconf-tests.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/xfconf.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Removed extraneous import
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add support for Hashicorp Vault JWT auth
* Add support for HashiCorp Vault JWT auth (continued)
Co-authored-by: Brian Scholer <1260690+briantist@users.noreply.github.com>
Co-authored-by: Mike Brancato <mike@mikebrancato.com>
Co-authored-by: Brian Scholer <1260690+briantist@users.noreply.github.com>
* proxmox_kvm: pool parameter not supported by API on update
* added changelog fragment
* format fix and pull request link added
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add support for StackScripts to Linode v4 module
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* add changelog fragment
* Add stackscript to example
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add OpenBSD pkg_add(1) snapshot support
* Fix documentation syntax
Co-authored-by: Felix Fontein <felix@fontein.de>
* Bump version_added
Co-authored-by: Felix Fontein <felix@fontein.de>
* zap one trailing whitespace
The first trailing whitespace is necessary otherwise we cal pkg_add(1)
with '-Im-Dsnap' which is invalid.
* Check build flag in package_present()
* zap one trailing whitespace
The first trailing whitespace is necessary otherwise we cal pkg_add(1)
with '-Im-Dsnap' which is invalid.
* check snapshot/build combination a little earlier
* Update "Force" documentation
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Bump version tgo 1.3.0
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add a changelog fragment.
* Update plugins/modules/packaging/os/openbsd_pkg.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Add: mutually exclusiv hint for "build" and add mutually_exclusive
* Re-add build=%s check
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* added description parameter to create request
* added changelog fragment
* Update changelogs/fragments/1196-use_description-in-gitlab-group-creation.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* added integration test for description in gitlab_group
* per request in the PR, creating separate task for the description issue in the integration test
* replaced deprecated param names with new names
* description should be optional to keep backward compatibility
* Update plugins/modules/source_control/gitlab/gitlab_group.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* add a warning when ansible_label is not found on a secret. addresses #30
* Update changelogs/fragments/31-docker-secret.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
Backported from 22ba76b4e9
* Fix rounding issues with percentages
Changed the behavior when using %VG or %PVS to make the size_requested an even modulus with the VGs physical extents by rounding down. This makes the usage of %VG or $PVE idempotent when the calculated size_requested does not end on a physical extent boundary.
* Added ansible changelog fragment.
* Forgot the module in the changelog fragment.
* Added URL to the PR to the changelog fragment.
* Update changelogs/fragments/229_lvol_percentage_fix.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* lxc_container: fix the type of the 'container_config' parameter
* lxc_container: specify the type of elements in 'container_config'
* lxc_container: improve the documentation of the container_config option
* lxc_container: add changelogs fragment for PR 216
* lxc_container: update changelogs fragment for PR 216
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Adding parameter to disable auto-commit (#1137)
* Update plugins/modules/database/misc/odbc.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/database/misc/odbc.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/database/misc/odbc.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/database/misc/odbc.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Adding odbc changelog fragment
* Picking a better word while fixing a typo
* Adding additional wording per felixfontein suggestion
* Update wording in plugins/modules/database/misc/odbc.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>
* Unbreak beadm module
* Add a changelog fragment
* Module beadm.py: remove regex, use split() everywhere, fix array indexes.
* Fix typos
* Change array indexes for BE name - according to Oracle documents, the name of BE is in the first column of beadm output on Solaris.
* Add 'None' checks in beadm.py
* Add support for extra options for terraform init
* Add missing var declaration
* feat: add changelog fragment
* feat: switch from an init_extra_args global option to an init_reconfigure specific option
* Update changelogs/fragments/823-terraform_init_reconfigure.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* proxmox: ignore QEMU templates altogether
* add changelog fragment
* add test case
* Update changelogs/fragments/1185-proxmox-ignore-qemu-templates.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove hard-coded defaults
* Remove hard-coded defaults in proxmox.py
* Add changelog
* Remove defaults in proxmox docs
* Remove more default values
* Remove defaults in doc proxmox_kvm
* Restore default=True to onboot
* Add unspecified back to format
* correct changelog format and grammar
Co-authored-by: Felix Fontein <felix@fontein.de>
* improve changelog
* Fix changelog formatting
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix changelog formatting
* Deprecate before behaviour change
* Change changelog
* Remove unnecessary ignored sanity tests, fix
* Fix
* Better mention it too often than too little :)
* Deprecate in version 4.0.0 instead of 2.0.0
* Fix changelog
* Fix
* Remove none values
* Improve documentation as suggessted by felixfontein
* fix changelog
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove default value in force in proxmox_kvm
* Add description to force in proxmox_kvm
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add support for consul tcp health check
* Fix consul tcp example
* Remove trailing spaces
* Add changelog fragment
* Add format in description
* Use regex for tcp
* Review fix
* Vendor plugins/module_utils/mount.py from ansible.posix, and drop ansible.posix dependency (except for testing).
* Add ignore.txt entries.
* Install test requirements conditionally.
* Apply suggestions from code review
Co-authored-by: John R Barker <john@johnrbarker.com>
* Bump to major changes.
Co-authored-by: John R Barker <john@johnrbarker.com>
* Apply patches by default. Other minor cleanup
* syspatch: Adding changelog and deprecating redundant apply argument
* Update changelogs/fragments/360_syspatch_apply_patches_by_default.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix lang issue on zypper absent
* Add fragment changelog
* Update changelogs/fragments/1175-zypper-absent-lang.yml
Some outfit
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* add support for filesystem removal (fix#355)
- Add 'state' option, defaults to 'present'.
- When state=absent, ignore other options (even 'dev' if the device
doesn't exist)
* test filesystem state=absent (+ check_mode + idempotency)
* fix doc-required-mismatch
* add changelog fragment
* fix blkid return code
* ext4dev may be deprecated
* base checks on UUID instead
* Update changelogs/fragments/1149-filesystem-fix-355-state-absent.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/filesystem.py (version_added)
Co-authored-by: Felix Fontein <felix@fontein.de>
* use array for new run_command() calls; do not wipefs if no fs found
* use dd as a fallback
* do not use bare 'except' (pep8)
* force string type
* use dd anyway (wipefs not supported everywhere, possibly buggy with vfat, etc.)
* do not truncate regular files; update changelog fragment
* doc: update state description and an example; notice check_mode support
* do not wipe mounted fs, fail instead
* back to wipefs implementation
* update test's main conditions
* update changelog fragment
* explicit types
* fail state=absent on freebsd
* remove doc-missing-type exceptions (2.9, 2.10, 2.11)
Co-authored-by: Felix Fontein <felix@fontein.de>
* Use stderr, and allow use of environment for config
Originally from https://github.com/ansible/ansible/pull/49685
* Create 436-infoblox-use-stderr-and-environment-for-config.yaml
* Update changelogs/fragments/436-infoblox-use-stderr-and-environment-for-config.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update scripts/inventory/infoblox.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add getbinpkgonly (-G) to portage
* version_added for getbinpkgonly
* Format description nicely, add the mutually exclusive nature of the 'pkg' options, and correct usepkgonly
* Changelog fragement
* Formatting
* Update changelogs/fragments/1169-getbinpkgonly.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove all exclusiveness, portage makes no such restrictions
Co-authored-by: Mike Williams <mike.williams@sectigo.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fixed django_manage markup in docs
* Update plugins/modules/web_infrastructure/django_manage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Full validation in sanity-check
- removed restrictions from the tests/sanity/ignore-*.txt for django_manage
- adjusted documentation and code accordingly
* typo
* ... and added the necessary removed_from_collection='community.general'
* Update plugins/modules/web_infrastructure/django_manage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/web_infrastructure/django_manage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/web_infrastructure/django_manage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/web_infrastructure/django_manage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added changelog fragment
* Documentation sentence lacking period, as pointed in the PR.
* Update plugins/modules/web_infrastructure/django_manage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/1154-django_manage-docs.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/1154-django_manage-docs.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Removed the markup for 'shebang' in the docs.
Co-authored-by: Felix Fontein <felix@fontein.de>
* refactor and test
* require version >= 5.21.0
Prior to this version the status output was different
* python version compatability
* use exception classes from utils
* modify monit to use 'status' output instead of 'summary' output
The summary output is a fixed width table which truncates the
contents and prevents us from parsing the actual status of the
program.
* add integration tests + fixes
* remove unused handlers in monit integration test
* fix lint
* add '__metaclass__ = type' to integration python files
* raise AttributeError
* simplify status
* lint: add type to parameter docs
* remove lint ignore
* move monit process config into main file
* specify path to monit PID file
* set config location based on os_family
* create required directories
* update aliases to set group and skips
* add changelog
* add author
* add types to docs
* add EPEL repo
* custom vars for centos-6
* uninstall EPEL
* support older versions
* wait for status to change before exiting
* use 'validate' to force status updates
* handle 'execution failed'
* better status output for errors
* add more context to failure + standardize
* don't check rc for validate
* legacy string format support
* add integration test for 'reloaded' and 'present'
* don't wait after reload
* lint
* Revert "uninstall EPEL"
This reverts commit 4d548718d0.
* make 'present' more robust
* Apply suggestions from code review
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* add license header
* drop daemon.py and use python-daemon instead
* skip python2.6 which is not supported by python-daemon
* refactor test tasks for reuse
* cleanup files after test
* lint
* start process before enabling monit
This shouldn't be necessary but I'm adding it in the hopes
it will make tests more robust.
* retry task
* attempt to rescue the task on failure
* fix indentation
* ignore check if rescue ran
* restart monit instead of reload
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* * Refactor `nmcli` module to use consistent parameters when creating/modifying connections and detecting changes.
* Keep DNS list arguments as lists internally.
* Remove duplicated code where practical.
* DBus and GObject dependencies are not necessary.
* Update changelog fragment.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelog fragment.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Use identity operator instead of equality for type comparison.
* Don't start changelog notes with a capital letter.
* * Have `settings_type` return `str` by default instead of `None`.
* Improve variable naming, use `convert_func` instead of `type_cast`.
* Revert new feature of allowing ethernet types as slaves.
* Bring back `list_connection_info` to list all connections with `nmcli con show`.
Co-authored-by: Felix Fontein <felix@fontein.de>
* docker_login: fix internal config file storage to handle credentials for more than one registry
* Improve setup for docker registry.
* Add second registry frontend. Add tests for #1118.
* Fix cleanup.
* fix race condition between module and its action plugin
See https://github.com/ansible-collections/community.general/issues/1136.
Also remove irrelevant/unneeded display.v() and display.warning() around
connection reset.
* do not check for cookie if not in async mode
* add changelog fragment
* Added client_cert and client_key to the maven_artifact module.
* Changelog fragment for PR-1127
* Apply suggestions from code review
Changes suggested in review. Match argument_spec values to documentation values.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/1127-maven_artifact_client_cert.yml
Documentation formatting suggestion.
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Use regexp to check if the value matches expected form
regexp should match values like:
- 1B
- 10MB
- 10mb
* Added changelog entry
* Update changelogs/fragments/1079-redis-use-regexp-to-check-if-the-value-matches-expected-form.yaml
Co-authored-by: Amin Vakil <info@aminvakil.com>
Co-authored-by: Amin Vakil <info@aminvakil.com>
* move conversion of data to json in slack API handling
at one point in do_notify_slack, we do operations on the payload
variable assuming it's a dict, but it's not: it's a json encoded string.
it's useful to operate on the payload as a dict rather than a string, so
solve this problem by moving the jsonify call to right before sending
the payload to the slack API.
fixes#1097
* add changelog fragment
* Update changelogs/fragments/1101-slack-ts-fix.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* return payload as a json encoded string for backwards compatibility
Co-authored-by: Felix Fontein <felix@fontein.de>
* [capabilities] fix for a newer versions of libcap
fixes: #993
* Minor correction for files without caps set.
PS: side note, getcap (per sources) does not set non-zero return code,
even for files which are not found (i.e. wrong filename).
* add changelog fragment
* review/suggested changes
* change comment to explicitly state stderr vs output
* * Explicitly open up temporary file in text mode.
* Add test for `solaris_zone` creation.
* Update changelog fragment.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add tests for zone deletion and invalid zone names.
Co-authored-by: Felix Fontein <felix@fontein.de>
* sort list of available versions
If `version == 'latest'` then the version is set to `available_versions[-1]` however `available_versions` was not previously sorted so the ordering was the natural order of the `pg_available_extension_versions` view.
* remove unnecessary lambda
* create changelog fragment for #1078
* add PR link to changelog fragment
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* FEATURE: make ansible_cache_keys name configurable
* REFACTOR: rename cache_keys to keyset
* FEATURE: add changelog fragment
* Update changelogs/fragments/1036-redis-cache-keyset-name.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Set version_added in plugins/cache/redis.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Benjamin Pereto <benjamin@sandchaschte.ch>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Allow setting format to null (None)
* Use string instead of None for consistency
* Add changelog
* Update changelogs/fragments/1028-proxmox-kvm-linked-clone.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/proxmox_kvm.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Substitute 'unspecified' format with None
Co-authored-by: Lukasz Rzasik <lukasz.rzasik@dreamlab.net>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Workaround increasing per_page to max
* Update plugins/modules/source_control/gitlab/gitlab_group_variable.py
* Create 968-gitlab_variables-pagination-increase.yml
* Update changelogs/fragments/968-gitlab_variables-pagination-increase.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/968-gitlab_variables-pagination-increase.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Proper support of pagination
* Fix E303 too many blank lines
* Add test for pagination
* Fix last vars removal test
* Apply suggestions from code review
Check misalignement fixed
Co-authored-by: Felix Fontein <felix@fontein.de>
For each package check membership in the list instead of checking each
package individually using pacman to see if it is a pacman group.
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix xml reports changed when node is not deleted
* Added changelog fragment
* Added tests for xml no change remove
* Added PR to changeling fragment
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* pkgutil: add update all, check-mode, squashing and examples
Taken from https://github.com/ansible/ansible/pull/51651 by dagwieers, which was taken from https://github.com/ansible/ansible/pull/27866 by scathatheworm. Let’s have one last attempt to get this merged.
> ##### SUMMARY
>
> Original PR #27866 from scathatheworm
>
> When working with Solaris pkgutil CSW packages, I came across this module being very basic in functionality, in particular, that I could not use it to update all CSW packages.
>
> When going into details into the code I also found it did not incorporate a possibility of doing dry-run from the underlying utility, or supported to specify multiple packages for operations.
>
> This module probably sees very little use, but it seemed like nice functionality to add and make it behave a little more like other package modules.
> ##### ISSUE TYPE
>
> * Feature Pull Request
>
>
> ##### COMPONENT NAME
>
> pkgutil module
> ##### ANSIBLE VERSION
>
> ```
> ansible 2.3.1.0
> config file = /etc/ansible/ansible.cfg
> configured module search path = Default w/o overrides
> python version = 2.7.5 (default, Aug 2 2016, 04:20:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]
> ```
>
> ##### ADDITIONAL INFORMATION
>
> * Added ability to upgrade all packages:
>
>
> ```yaml
> - pkgutil:
> name: '*'
> state: latest
> ```
>
> * Added ability to modify state of a list of packages:
>
>
> ```yaml
> - pkgutil:
> name:
> - CSWtop
> - CSWwget
> - CSWlsof
> state: present
> ```
>
> * Added ability to have underlying tool perform a dry-run when using check mode, pkgutil -n
>
> * Added ability to configure force option to force packages to state determined by repository (downgrade for example)
>
>
> ```yaml
> - pkgutil:
> name: CSWtop
> state: latest
> force: yes
> ```
>
> * Added more examples and documentation to show the new functionality
* Add changelog fragment.
* Observe changelog style guide
https://docs.ansible.com/ansible/devel/community/development_process.html#changelogs
Co-authored-by: Felix Fontein <felix@fontein.de>
* Since module split, version_added no-longer refers to core Ansbile
Co-authored-by: Felix Fontein <felix@fontein.de>
* Tweak documentation
* Apply the new `elements` feature for specifying list types
Co-authored-by: Felix Fontein <felix@fontein.de>
* Set version_added
Co-authored-by: Felix Fontein <felix@fontein.de>
* Document `pkg` alias for `name`
* Be explicit about the purpose of states `installed` and `removed`.
* Force the user to specify their desired state.
* Review documentation for pkgutil module.
* Fully qualify svr4pkg module name
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update nagios.py
Force an active service check for all services of a particular host or for the host itself
* Create 998-nagios-added_forced_check_for_all_services_or_host.yml
Added fragment
* parted: proper fix for change of partition label case
calling mkpart even when partition existed before mklabel call, fixes#522
* changelog fragment for parted fix#522
* Update changelogs/fragments/522-parted_change_label.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* typo in comment
Co-authored-by: Felix Fontein <felix@fontein.de>
* Use platform.system for Darwin comparisons
In Python3, `platform.platform()` returns `macOS-10.15.6-x86_64-i386-64bit` instead of `Darwin-10.15.6-x86_64-i386-64bit`.
`platform.system()` returns `Darwin` On py2 and py3.
* Add changlog fragment
* Update changelogs/fragments/945-darwin-timezone-py3.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* [aerospike_migrations] - handle exception when unstable-cluster is returned
* fix lint issue
* Update changelogs/fragments/900-aerospike-migration-handle-unstable-cluster.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Kailun Shi <kaishi@adobe.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* proxmox_kvm: remove redundant parameters
The functions start_vm() and stop_vm() receive four common parameters:
module, proxmox, vm and vmid.
The last too are redundant so keep only vm.
I also took the opportunity to remove extra API calls to proxmox.nodes()
by assigning its return value to a variable.
* proxmox_kvm: remove extra calls to status.current
The get_vm() function already returns an array of properties containing
the status so remove extra API calls to retrieve this information.
Example:
[{''netin'': 177232, ''name'': ''test-instance'', ''maxcpu'': 1, ''node'': ''prx-01'', ''disk'': 0, ''template'': 0, ''uptime'': 267, ''cpu'': 0.0410680030805531, ''diskread'': 165294744, ''maxdisk'': 10737418240, ''vmid'': 42, ''status'': ''running'', ''id'': ''qemu/42'', ''maxmem'': 536870912, ''diskwrite'': 18528256, ''netout'': 2918, ''type'': ''qemu'', ''mem'': 160284950}]
* proxmox_kvm: kill VZ_TYPE global variable
It reduces readability without providing much values nowadays.
* proxmox_kvm: simplify vmid generation
Forgotten suggestion from Felix Fontein in PR#811.
* proxmox_kvm: add changelog fragment for PR#934
* bring Manager power cmds to parity with System power commands
* add changelog fragment
* Update changelogs/fragments/903-enhance-redfish-manager-reset-actions.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
As per https://learn.hashicorp.com/tutorials/vault/namespaces, setting VAULT_NAMESPACE env var is a completely supported mechanism to make all vault command use said namespace, so hashi_vault lookup function should do the same.
Co-authored-by: Holt Wilkins <hwilkins@palantir.com>
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
Allows some factorization of redundant code in stop_vm(), start_vm(),
create_vm() and main().
This new function also waits one extra second after a successful task execution as the API can be a bit ahead of Proxmox.
Before:
TASK [ansible-role-proxmox-instance : Ensure test-instance is created]
changed: [localhost]
TASK [ansible-role-proxmox-instance : Ensure test-instance is updated]
fatal: [localhost]: FAILED! => changed=false
msg: VM test-instance does not exist in cluster.
After:
TASK [ansible-role-proxmox-instance : Ensure test-instance is created]
changed: [localhost]
TASK [ansible-role-proxmox-instance : Ensure test-instance is updated]
changed: [localhost]
With suggestions from Felix Fontein <felix@fontein.de>.
* 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>
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>.
* 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>
* 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>
* 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>
* Fix terraform changed status detection test (#561)
* Add changelog fragment
* Update changelogs/fragments/563-update-terraform-status-test.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* 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
* 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
* 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
* 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>
* 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>
* 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>
* 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>