* Fix a bunch of potential security issues (secret leaking).
* oneandone_server was already ok.
* Add more parameters for pagerduty_alert.
* Add more no_log=True.
(cherry picked from commit 29bd5a9486)
Co-authored-by: Felix Fontein <felix@fontein.de>
* homebrew_tap: Add support for brew search path
User can specify search path for brew executable.
Fixes: #1702
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Change version
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit d0f097c871)
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
* Add default brew search path for non-Intel / Apple silicon hardware
* add changelog fragment
* Update 1679-homebrew_search_path.yml
fix for double-ticks in yaml/rst format
* missing dots and brackets
* When module fails return meaningful error message to user
returned by homebrew-tap command.
* Doc update
Fixes: #1411
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* updated deprecated homebrew cask commands
* added methods for brew version deprecation check
* added comments and changelog fragment
* added unit test for version comparison
* switch to use disutils LooseVersion for version comparison
* updated changelog message and minor refactor for building brew command based on version
* added caching logic for retrieval of brew version and updated PR changelog yaml
* Update changelogs/fragments/1481-deprecated-brew-cask-command.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/os/homebrew_cask.py
* Update plugins/modules/packaging/os/homebrew_cask.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/os/homebrew_cask.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* switch to use subprocess.check_output instead of subprocess.run
* replace subprocess with run_command
* removed unused subprocess import
* removed error handling logic to depend on check_rc=True instead
Co-authored-by: Felix Fontein <felix@fontein.de>
* rhn_register: added force option to allow forced registering (#1454)
* rhn_register: added disable=bad-option-value to pylint disables for backwards compat
* rhn_register: including version_added for force parameter
Co-authored-by: Felix Fontein <felix@fontein.de>
* [1455] added changelog fragment
* removed unnecessary pylint disables
* Updated changelogs/fragments/1455-rhn-register-force.yml to have issue # instead of PR #
Co-authored-by: Amin Vakil <info@aminvakil.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Fix#1435: mas : Fix "invalid literal" when no app
* Add changelog fragment
* Update changelogs/fragments/1436-mas-fix-no-app-installed.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* new module: yum_versionlock
* Removed redundant logic
* Added check_mode support
* Updated examples
* Updated documentation
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Erik-jan Riemers <riemers@binkey.nl>
* Update plugins/modules/packaging/os/yum_versionlock.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Fix version_added
* Add module symlink
* Fix symlink
* Improve documentation formatting by Anderssoon007
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Improve documentation formatting by Anderssoon007
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Improve documentation
* Add notes section
* check_mode is supported
* Initial integration test
* Change pkg to name
* Do the tests only when there is something to update
* Ignore CentOS 6
* Fix
* Do not update obsolete packages
* yum -q versionlock list does not show anything in CentOS 8
* Various suggestions by Andersson007
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Apply suggestions from felixfontein review
Co-authored-by: Felix Fontein <felix@fontein.de>
* returned always
* Apply felixfontein suggestion
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix RETUNRED values returned
* Change default from present to locked
* Remove locked, unlocked states
* change locked/unlocked to present/absent in integration tests
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix module short_description formatting
* Add myself as co-author
Co-authored-by: Erik-jan Riemers <riemers@binkey.nl>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fixed validate-modules:mutually_exclusive-unknown for plugins/modules/packaging/os/redhat_subscription.py
* fixed validation-modules for plugins/modules/cloud/lxd/lxd_container.py
* fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address.py
* fixed validation-modules for plugins/modules/cloud/opennebula/one_host.py
* fixed validation-modules for plugins/modules/cloud/opennebula/one_image_info.py
* fixed validation-modules for plugins/modules/cloud/opennebula/one_image.py
* fixed validation-modules for plugins/modules/cloud/opennebula/one_service.py
* fixed validation-modules for plugins/modules/cloud/opennebula/one_vm.py
* fixed validation-modules for plugins/modules/net_tools/cloudflare_dns.py
* fixed validation-modules for plugins/modules/net_tools/ip_netns.py
* fixed validation-modules for plugins/modules/net_tools/ipinfoio_facts.py
* fixed validation-modules for plugins/modules/net_tools/netcup_dns.py
* fixed validation-modules for plugins/modules/remote_management/wakeonlan.py
* added types to plugins/modules/remote_management/stacki/stacki_host.py but still cannot remove ignore line
* added a couple of FIXME comments
* fixed validation-modules for plugins/modules/remote_management/manageiq/manageiq_provider.py
* fixed validation-modules for plugins/modules/notification/rocketchat.py
* fixed validation-modules for plugins/modules/monitoring/bigpanda.py
* fixed validation-modules for plugins/modules/identity/keycloak/keycloak_client.py
* fixed validation-modules for plugins/modules/identity/keycloak/keycloak_clienttemplate.py
* fixed validation-modules for plugins/modules/cloud/univention/udm_user.py
* fixed validation-modules for plugins/modules/cloud/univention/udm_group.py
* fixed validation-modules for plugins/modules/cloud/spotinst/spotinst_aws_elastigroup.py
* fixed validation-modules for plugins/modules/cloud/smartos/imgadm.py
* fixed validation-modules for plugins/modules/cloud/profitbricks/profitbricks_nic.py
* fixed validation-modules for plugins/modules/cloud/ovirt/ovirt_external_provider_facts.py
* Tidy up validate-modules ignores no-default-for-required-parameter + couple of other cases
* Added changelog frag
* fixed validation-modules for plugins/modules/cloud/centurylink/clc_alert_policy.py
* fixed validation-modules for plugins/modules/cloud/centurylink/clc_firewall_policy.py
* fixed validation-modules for plugins/modules/cloud/lxd/lxd_profile.py
* Typos and small fixes
* fixed validation-modules for plugins/modules/net_tools/ldap/ldap_passwd.py
* Typos and small fixes, part 2
* Fixes from PR comments
* Update plugins/modules/cloud/profitbricks/profitbricks_nic.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Rolled back the mutually-exclusive-unknown in redhat_subscription
* Update changelogs/fragments/1423-valmod_multiple_cases.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* 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>
* * 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>
* [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>
* 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>
* 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 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>
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>
* 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>
* 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>
* 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>
* 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>
* 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
* 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>
* 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>
* 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.
* 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.
* 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>
* 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>
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.
* flatpak: Change use of Popen to module.run_command()
* Update changelogs/fragments/274-flatpak-run-command.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>