Commit Graph

141 Commits (1a91b797bd5ee0ca913dd49382f5b960d1584df7)

Author SHA1 Message Date
Paul Harvey cd75074fc5 fix yum proxy regex (closes #47797) (#47800)
* Modify yum/tasks/proxy.yml to usernames that expose regex bug

* Fix bad regex backref/interpolation w/yum proxy username

A yum proxy username that begins with a number was being
interpolated as part of the backref, resulting in an error:
"sre_constants.error: invalid group reference"

Closes #47797
2018-10-30 16:35:37 +01:00
Adam Miller 0e3e646189
don't restrict disable_excludes choices incorrectly (#47453)
* don't restrict disable_excludes choices incorrectly

Fixes #47085

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-10-23 11:39:55 -05:00
Martin Krizek e8b6864e21 yum/dnf: fail when space separated string of names (#47109)
* yum/dnf: fail when space separated string of names

* Groups allow spaces in names
2018-10-19 14:29:27 -04:00
flowerysong c21f92f8f7 Fix yum/dnf lock file polling (#47250) 2018-10-19 14:18:09 -04:00
Adam Miller fd97c8e56c
fix yum proxy username/password handling (#46291)
Fixes #46249

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-10-11 12:51:40 -05:00
Adam Miller fb6e91bf98
yum module properly check for None config_file (#46641)
* yum module properly check for None config_file
* add conf_file test cases to yum integration tests

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-10-11 10:11:34 -05:00
Evgeni Golov 7c66c90afc introduce `module_utils.urls.fetch_file` as a wrapper to download and save files (#19172)
* module_utils.urls: add fetch_file function

* apt: use fetch_file instead of own download()

* unarchive: use fetch_file instead of own codecopy

* apt: add test for deb=http://…

* unarchive: add test for a remote file download and unarchive

* yum: replace fetch_rpm_from_url by fetch_file

* use NamedTemporaryFile

* don't add a dot to fileext, it's already there
2018-10-08 14:41:57 +02:00
Adam Miller c8ed5c29e9 allow update_cache as stand alone operation for yum/dnf (#46183)
* allow update_cache as stand alone operation for yum/dnf

Fixes #40068

Signed-off-by: Adam Miller <admiller@redhat.com>

* make sanity tests happy

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-10-08 08:39:49 -04:00
Adam Miller 5fdf0290d0 handle yum and dnf lockfiles - fixes #44120 (#45359)
* handle yum and dnf lockfiles - fixes #44120

Signed-off-by: Adam Miller <admiller@redhat.com>

* fix logic problem to properly check for dnf lockfile glob

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-09-19 16:14:25 -04:00
Dag Wieers 2edf20d1ed Docs: Avoid use of 'default: null' (#45795)
Various modules document the default 'null' value, but it causes None to
be shown in the documentation explicitly.
2018-09-19 09:02:27 -05:00
Strahinja Kustudic 8d8df46fe6 Add an error message if a pkg cannot be removed, fixes #35672 (#40723) 2018-09-13 02:54:38 -04:00
Adam Miller 0d5390a919 fix yum install with disablerepo (#44735)
Signed-off-by: Adam Miller <admiller@redhat.com>
2018-08-27 17:06:06 -04:00
Adam Miller 397febd343 YUM4/DNF compatibility via yum action plugin (#44322)
* YUM4/DNF compatibility via yum action plugin

DNF does not natively support allow_downgrade as an option, instead
that is always the default (not configurable by the administrator)
so it had to be implemented

 - Fixed group actions in check mode to report correct changed state
 - Better error handling for depsolve and transaction errors in DNF
 - Fixed group action idempotent transactions
 - Add use_backend to yum module/action plugin
 - Fix dnf handling of autoremove (didn't used to work nor had a
   default value specified, now does work and matches default
   behavior of yum)
 - Enable installroot tests for yum4(dnf) integration testing, dnf
   backend now supports that
 - Switch from zip to bc for certain package install/remove test
   cases in yum integration tests. The dnf depsolver downgrades
   python when you uninstall zip which alters the test environment
   and we have no control over that.
 - Add changelog fragment
 - Return a pkg_mgr fact if it was not previously set.
2018-08-27 10:17:47 -07:00
Adam Miller 6d95624c22 Refactor yum and dnf, add feature parity (#43621)
* Refactor yum and dnf, add feature parity

Signed-off-by: Adam Miller <admiller@redhat.com>

* remove unnecessary module_utils, move the classes into the module code

Signed-off-by: Adam Miller <admiller@redhat.com>

* remove yum -> yum4, out of scope

Signed-off-by: Adam Miller <admiller@redhat.com>

* use ABCMeta

Signed-off-by: Adam Miller <admiller@redhat.com>

* re-arrange run() caller vs callee

Signed-off-by: Adam Miller <admiller@redhat.com>

* make sanity checks happy

Signed-off-by: Adam Miller <admiller@redhat.com>

* fix yum unit tests

Signed-off-by: Adam Miller <admiller@redhat.com>

* remove unecessary debug statements, fix typo

Signed-off-by: Adam Miller <admiller@redhat.com>

* fix licensing and attribution in yumdnf module_util

Signed-off-by: Adam Miller <admiller@redhat.com>

* include fix from PR 40737

original commit 5cbda9658a
original Author: Strahinja Kustudic <kustodian@gmail.com>

yum will fail on 'No space left on device', fixes #32791 (#40737)

During the installing of packages if yum runs out of free disk space,
some post install scripts could fail (like e.g. when the kernel
package generates initramfs), but yum would still exit with a status
0.  This is bad, especially for the kernel package, because it makes
it unable to boot.  Because the yum module is usually used for
automation, which means the users cannot read every message yum
prints, it's better that the yum module fails if it detects that
there is no free space on the disk.

Signed-off-by: Adam Miller <admiller@redhat.com>

* Revert "fix licensing and attribution in yumdnf module_util"

This reverts commit 59e11de5a2a6efa17ac3f0076bb162348c02e1bd.

* move fetch_rpm_from_url out of yumdnf module_util

Signed-off-by: Adam Miller <admiller@redhat.com>

* fix the move of fetch_rpm_from_url

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-08-17 11:15:11 -04:00
Strahinja Kustudic 5cbda9658a yum will fail on 'No space left on device', fixes #32791 (#40737)
During the installing of packages if yum runs out of free disk space,
some post install scripts could fail (like e.g. when the kernel package
generates initramfs), but yum would still exit with a status 0.  This is
bad, especially for the kernel package, because it makes it unable to
boot.  Because the yum module is usually used for automation, which
means the users cannot read every message yum prints, it's better that
the yum module fails if it detects that there is no free space on the
disk.
2018-08-14 13:41:34 +02:00
Adam Harwell a9b1af8bdd Yum: Add support for --downloadonly (#41506) 2018-07-18 23:34:54 -04:00
Bryce Verdier b16fef9aad removing duplicate operations from the use of list comprehensions. None of the logic within the code has been changed, just more refined. (#41098) 2018-07-18 15:48:12 -04:00
Frank Vissing 66adabfd42 disable_excludes (#42510)
* implementing disable_excludes

* add check for yum version

* limit choices

* add testcases for disable_exclude

* fix formating

* add documentation

* syntax fix for test case

* fix indentation

* need to ignore errors when we want to do a test that fails

* test disable_excludes with zip and not sos

* add tests for yum < 3.4 not supported

* fix formating

* centos 6.1 does not support map

* drop unsupported selectattr

* cleanup testcases

* fix test cases beloging to wrong test scenarion (propper when)

* evaluate expression

* minor test fixes

* check output of msg
2018-07-18 15:37:50 -04:00
Jordan Borean 8bdd04c147 Fix remote_tmp when become with non admin user (#42396)
* Fix tmpdir on non root become

 - also avoid exception if tmpdir and remote_tmp are None
 - give 'None' on deescalation so tempfile will fallback to it's default behaviour
   and use system dirs
 - fix issue with bad tempdir (not existing/not createable/not writeable)
   i.e nobody and ~/.ansible/tmp
 - added tests for blockfile case

* Revert "Temporarily revert c119d54"

This reverts commit 5c614a59a6.

* changes based on PR feedback and changelog fragment

* changes based on the review

* Fix tmpdir when makedirs failed so we just use the system tmp

* Let missing remote_tmp fail

If remote_tmp is missing then there's something more basic wrong in the
communication from the controller to the module-side.  It's better to
be alerted in this case than to silently ignore it.

jborean and I have independently checked what happens if the user sets
ansible_remote_tmp to empty string and !!null and both cases work fine.
(null is turned into a default value controller-side.  empty string
triggers the warning because it is probably not a directory that the
become user is able to use).
2018-07-06 10:49:19 -07:00
Toshio Kuratomi 5c614a59a6 Temporarily revert c119d54
There were bugs in this that needed to be resolved.  No time to get the
fix reviewed sufficiently for 2.6.0.

We'll get this into 2.7.0 and try to get this into 2.6.1 as well.

Will need the work done in https://github.com/ansible/ansible/pull/36218
when it does get merged.
2018-06-15 13:00:54 -07:00
Jonathan Lozada D 0061ec4a09 Changes to Yum Documentation (#41054)
* added an example for a list of packages to install and added C() to some areas since it cannot be read right
* fixed the changes to list for
2018-06-08 15:41:01 +05:30
tgates81 f65df5f62a yum.py module: added option for yum --bugfix updates. (#36203) 2018-05-25 09:58:35 -04:00
Andrew Widdersheim 8d1f2ba9d9 yum: Propagate plugins to all parts of the module (#40085)
In `2.5` (d1b63bd5), the `yum` module received the capability to disable
and enable specific plugins. However, these changes only applied to
certain parts of the logic. This change propagates those changes to the
rest of the module, specifically those using the `yum` API.
2018-05-23 21:04:05 -05:00
John R Barker 7c4b91844d
More validate module fixes (#39097)
* Fix type bool DOCUMENTATION issues
2018-04-24 18:05:50 +01:00
Martin Krizek 1ff5e975d9 yum: docs: name is not required (#38758) 2018-04-16 07:15:57 +05:30
René Moser af3598343d doc: apt, yum: add example with package lists (#38333) 2018-04-06 10:58:51 +02:00
Adam Miller 7cd3d9cc1a Correct msg to detect idempotent yum groupinstall (#37858)
The message text used to check stderr for a warning about
groupinstall in order to determine if a change occurred is specific
to the version of yum that is in RHEL7 and newer. This change simply
removes a couple words off the end in order to only use text found
in the warning message in older versions of yum.

Fixes #35982

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-03-26 10:46:24 +02:00
Strahinja Kustudic 68ff986708 Fix 'repomd.xml signature could not be verified' (#35989)
If a repo with `repo_gpgcheck=1` is added and the repo GPG key was never
accepted, quering this repo would throw an error `repomd.xml signature
could not be verified` and the module would fail. If that happens now
`yum -y makecache` will be run which will fetch the new repo data and
accept the repo GPG key.
2018-03-23 16:13:49 -05:00
Matt Clay aee01564a9 Clean up non-standard module shebangs. 2018-03-21 11:04:55 -07:00
Dmitry Ulyanov 1d6bc094cf Add http(s)_proxy support in yum module (#36800)
* added set_env_proxy function for setting proxy environment

Added set_env_proxy function, that set system http(s)_proxy
environment for fetching RPM if proxy settings set in yum.conf file
that fix Issue - #18979

* fix automatic field numbering specification

* changed if statement in setting http_proxy environment

* Change set_env_proxy function to function with decorator

That decorator set system proxy environment from yum.conf and revert
back to system configuration after fetching RPM

* Minor fix

- rename variable schem  to scheme
- change 'in' to 'startswith'

* change decorator set_env_proxy to decorating through contextmanager

- added import contextmanager from contextlib
- set_env_proxy now decorating through contextmanager
- fix http/https setting environment principle
2018-03-21 11:55:36 -05:00
John R Barker 6c8d40f653
yum is Python 2 only. If Python 3 use dnf (#37140)
* PY3 = dnf

Red Hat are unlikely to provide a Python 2 version of the yum bindings
as they are moving to `dnf`.

If Ansible can't find the yum Python library give the user a hint about
dnf and Python 3
2018-03-08 08:10:07 +00:00
Martin Krizek a79a5439c8
yum: fix yum version comparison (#36573) 2018-02-23 08:55:11 +01:00
Brian Coca c119d54e4a
now get_url defaults to module temp dir (#36218)
* now get_url and other modules default to module temp dir

also fixed 'bare' exception

* allow modules to work with older versions

* updated docs per feedback
2018-02-20 08:40:45 -05:00
Anwesha Chatterjee d2ac7ace01 Add information on the various package states (#35882) 2018-02-16 14:22:49 +05:30
Abhijeet Kasurde f84f386ea7 yum: Add example for enable and disable repo (#34492)
Fixes: #29897

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-01-10 09:51:00 -08:00
Abhijeet Kasurde b14c8b130f yum: handle exception in local_envra (#34400)
This fix adds rpm.error exception which is raised when
API unable to get envra information from RPM package.
Also, adds integration test for local_envra method.

Fixes: #30074

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-01-09 12:28:55 +01:00
Martin Krizek 3681d0e3e0
yum: support installroot in is_group_env_installed (#34182) 2018-01-02 12:42:53 +01:00
Abhijeet Kasurde d1b63bd5ef yum: Add option for enable and disable plugin (#34306)
This fix adds parameter to enable and disable plugins for yum
command.

Fixes: #30016

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-01-02 12:37:02 +01:00
Dag Wieers e0c94aa6a7 yum: PEP8 compliancy and documentation changes (#33424)
This PR includes:
- PEP8 compliancy changes
- documentation changes
2017-11-30 13:32:05 -05:00
Brian Coca 8e56133b3d
updated docs to reflect list/loop lack of sqashing (#32522)
* updated docs to reflect list/loop lack of sqashing

* fix dnf

* line len
2017-11-20 10:16:19 -05:00
Martin Krizek 356901b72d yum: case for multilib when installing from a file (#32236) 2017-11-09 06:04:53 -05:00
Martin Krizek 38444bb76c yum: the rpm command requires newline in --qf (#32244) 2017-11-09 05:41:47 -05:00
Martin Krizek a8ab1a0b20 yum: use the C locale when screen scraping (#32203) 2017-11-05 09:28:05 -05:00
Martin Krizek ee6ba5d590 yum: allow for downgrade using rpm file (#31647) 2017-10-24 14:33:38 +02:00
Martin Krizek 24c360287e yum: fix crashes installing from file/url 2017-10-10 11:39:47 -07:00
Martin Krizek 13631ececa yum: check if env groups are installed (#31182) 2017-10-09 06:01:34 -04:00
Martin Krizek 115b4fdc9b yum: fix name parsing out of envra (#31247) 2017-10-04 20:48:00 +02:00
Stephen 9c6ad3d076 Add update_only parameter for yum module (#22206)
* Add update_only parameter for yum module

When using latest, `update_only: yes` will ensure that only existing
packages are updated and no additional packages are installed.

* Update yum.py

Update version added for `update_only` parameter to 2.5

* add unit tests for update_only flag in yum module
2017-10-04 10:25:13 +02:00
Dag Wieers 4832b9a2d2 yum: doc fixes (#30897)
This PR includes:
- Documentation fixes
2017-09-28 12:57:21 +10:00
Martin Krizek cca4f94736 Mention all yum list options in docs (#30706) 2017-09-21 19:11:53 +02:00