mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Adding 'dist-upgrade' support to zypper module
This commit is contained in:
parent
7dd91c2880
commit
4bcfef2ba2
1 changed files with 45 additions and 2 deletions
|
@ -1047,7 +1047,12 @@ def install(name=None,
|
|||
return salt.utils.compare_dicts(old, new)
|
||||
|
||||
|
||||
def upgrade(refresh=True):
|
||||
def upgrade(refresh=True,
|
||||
dryrun=False,
|
||||
dist_upgrade=False,
|
||||
fromrepo=None,
|
||||
novendorchange=False,
|
||||
**kwargs):
|
||||
'''
|
||||
.. versionchanged:: 2015.8.12,2016.3.3,Carbon
|
||||
On minions running systemd>=205, `systemd-run(1)`_ is now used to
|
||||
|
@ -1070,6 +1075,19 @@ def upgrade(refresh=True):
|
|||
If set to False it depends on zypper if a refresh is
|
||||
executed.
|
||||
|
||||
dryrun
|
||||
If set to True, it creates a debug solver log file and then perform
|
||||
a dry-run upgrade (no changes are made). Default: False
|
||||
|
||||
dist_upgrade
|
||||
Perform a system dist-upgrade. Default: False
|
||||
|
||||
fromrepo
|
||||
Specify a package repository to upgrade from. Default: None
|
||||
|
||||
novendorchange
|
||||
If set to True, no allow vendor changes. Default: False
|
||||
|
||||
Return a dict containing the new package names and versions::
|
||||
|
||||
{'<package>': {'old': '<old-version>',
|
||||
|
@ -1080,16 +1098,41 @@ def upgrade(refresh=True):
|
|||
.. code-block:: bash
|
||||
|
||||
salt '*' pkg.upgrade
|
||||
salt '*' pkg.upgrade dist-upgrade=True fromrepo="MyRepoName" novendorchange=True
|
||||
salt '*' pkg.upgrade dist-upgrade=True dryrun=True
|
||||
'''
|
||||
ret = {'changes': {},
|
||||
'result': True,
|
||||
'comment': '',
|
||||
}
|
||||
|
||||
cmd_update = ['dist-upgrade'] if dist_upgrade else ['update']
|
||||
cmd_update.extend(['--auto-agree-with-licenses'])
|
||||
|
||||
if refresh:
|
||||
refresh_db()
|
||||
|
||||
if dryrun:
|
||||
cmd_update.extend(['--dry-run'])
|
||||
|
||||
if dist_upgrade:
|
||||
if dryrun:
|
||||
# Creates a solver test case for debugging.
|
||||
log.info('Executing debugsolver and performing a dry-run dist-upgrade')
|
||||
cmd_debugsolver = cmd_update + ['--debug-solver']
|
||||
__zypper__.noraise.call(*cmd_debugsolver)
|
||||
|
||||
if fromrepo:
|
||||
fromrepoopt = ['--from', fromrepo]
|
||||
log.info('Targeting repo {0!r}'.format(fromrepo))
|
||||
cmd_update.extend(fromrepoopt)
|
||||
|
||||
if novendorchange:
|
||||
log.info('Disabling changes of vendor')
|
||||
cmd_update.extend(['--no-allow-vendor-change'])
|
||||
|
||||
old = list_pkgs()
|
||||
__zypper__(systemd_scope=_systemd_scope()).noraise.call('update', '--auto-agree-with-licenses')
|
||||
__zypper__(systemd_scope=_systemd_scope()).noraise.call(*cmd_update)
|
||||
if __zypper__.exit_code not in __zypper__.SUCCESS_EXIT_CODES:
|
||||
ret['result'] = False
|
||||
ret['comment'] = (__zypper__.stdout() + os.linesep + __zypper__.stderr()).strip()
|
||||
|
|
Loading…
Add table
Reference in a new issue