Commit graph

20 commits

Author SHA1 Message Date
Robin Roth
85b1bd5c90 allow to specify versions with zypper (#2328)
* fixes #2158
* handles version-specifiers (>,<,>=,<=,=) correctly
* adds option "oldpackage", which is passed to zypper
  * this is implied as soon as a version is specified
  * it can be used independently to allow downgrades coming from repos
* add __main__ check
* extend documentation on version specifier
2016-12-08 11:34:40 -05:00
Robin Roth
3307769ba0 zypper cleanup checks for failure/diff (#2569)
* zypper cleanup checks for failure/diff

* move check for changed/failed from functions back to main
* handle all cases identially
* generate diff together

* fix module name
2016-12-08 11:34:32 -05:00
Andrii Radyk
26d34c1d61 Add zypper refresh support in zypper module (#2411)
* added zypper refresh support

* removed trailing symbols
* added forced zypper refresh support similar to update_cache for apt module

* removed unnecessary blocks and cleaned up the logic for refresh

* added update_cache as alias for refresh to be similar to apt/yum module

* update zypper module according to comments
2016-12-08 11:34:31 -05:00
Alex
e031f37407 zypper: (Bugfix) Change command option --verbose to --details which is supported since 2008 (#2224) 2016-12-08 11:34:15 -05:00
Robin Roth
107c257293 refactor zypper module
* refactor zypper module

Cleanup:
* remove mention of old_zypper (no longer supported)
  * requirement goes up to zypper 1.0, SLES 11.0, openSUSE 11.1
  * allows to use newer features (xml output)
  * already done for zypper_repository
* use zypper instead of rpm to get old version information, based on work by @jasonmader
* don't use rpm, zypper can do everything itself
* run zypper only twice, first to determine current state, then to apply changes

New features:
* determine change by parsing zypper xmlout
* determine failure by checking return code
* allow simulataneous installation/removal of packages (using '-' and '+' prefix)
  * allows to swap out alternatives without removing packages depending
    on them
* implement checkmode, using zypper --dry-run
* implement diffmode
* implement 'name=* state=latest' and 'name=* state=latest type=patch'
* add force parameter, handed to zypper to allow downgrade or change of vendor/architecture

Fixes/Replaces:
* fixes #1627, give changed=False on installed patches
* fixes #2094, handling URLs for packages
* fixes #1461, fixes #546, allow state=latest name='*'
* fixes #299, changed=False on second install, actually this was fixed earlier, but it is explicitly tested now
* fixes #1824, add type=application
* fixes #1256, install rpm from path, this is done by passing URLs and paths directly to zypper

* fix typo in package_update_all

* minor fixes

* remove commented code block
* bump version added to 2.2
* deal with zypper return codes 103 and 106
2016-12-08 11:34:12 -05:00
Toshio Kuratomi
255c4b01a8 Remove duplicate documentation fields 2016-12-08 11:33:46 -05:00
Guido Günther
13deae9b8f zypper: Add returncode to result
This will be used in integration tssts and makes the whole thing
more similar to the yum module.
2016-12-08 11:33:37 -05:00
Robin Roth
85f2165273 better cope with rpm not returning package name
if the rpm query is missing a package name (or giving some error): fail soft

before the patch: the module fails because the installed_state dict is missing the package name

after the patch: the missing package is assumed to not be in the correct state and is installed/removed with zypper
2016-12-08 11:33:33 -05:00
M0ses
a1dbb83075 fix errorhandling in zypper.py module
package_latest was calling package_present but did not care
about the return code so errors in package_present were hidden
and everthing look ok on the console when zypper update did not fail,
but no packages where installed.
2016-12-08 11:33:29 -05:00
Alexander Gubin
3ccc50fcd5 zypper: Add local/remote rpm installation
Add remote rpm example
2016-12-08 11:33:06 -05:00
Greg DeKoenigsberg
c65a612d1f Changes to author formatting, remove emails 2016-12-08 11:32:51 -05:00
Brian Coca
d344a3fde3 more string corrections 2016-12-08 11:32:39 -05:00
Brian Coca
0ed579ddd7 doc update for zypper 2016-12-08 11:32:33 -05:00
Gregory Haynes
960b0f478f Add type property to zypper
To install patterns and other package types a type parameter needs to be
specified to zypper.
2016-12-08 11:32:33 -05:00
Robin Roth
4f0e1c850c fixed tab/space mix 2016-12-08 11:32:32 -05:00
Robin Roth
32310a43ae fix local change 2016-12-08 11:32:32 -05:00
Robin Roth
e33875e382 Allow multiple versions in rpm state
Fix bug in ansible get_package_state and get_current_version that breaks when there are multiple versions of a package installed and there is a list of packages to install.
The previous implementation used 'zip' to match requested names to installed names which fails, because rpm outputs multiple lines per package when there are multiple versions.

Testcase: Install opensuse, install multiple kernel versions (happens by update)
Before patch: calling
zypper: state=present for name={{item}}
with_items:
  - kernel-desktop
  - git

leads to ansible aborting.
After the patch ansible performs as expected and makes sure both packages are present.
Also the last version number is used for further update information in this version (before if only one package name was given the oldest version number was used).
2016-12-08 11:32:32 -05:00
Alexander Gubin
117ae098ef zypper: Fix gpg check option for state=latest. --no-gpg-checks is used in new and old zypper versions 2016-12-08 11:32:22 -05:00
Artem Chernikov
b4c6b81619 Fixing SuSE to SUSE as latter is the right one since some time 2016-12-08 11:32:20 -05:00
Michael DeHaan
7d6ceb4f06 Reorganization. 2016-12-08 11:32:19 -05:00
Renamed from lib/ansible/modules/extras/packaging/zypper.py (Browse further)