diff options
author | Toshio Kuratomi <toshio@fedoraproject.org> | 2015-08-20 13:02:29 -0700 |
---|---|---|
committer | Toshio Kuratomi <toshio@fedoraproject.org> | 2015-08-20 13:16:01 -0700 |
commit | 1347343080fb301f02f3cd30696987dc707edf87 (patch) | |
tree | ef88b12cf1dd5b81abcdae900febabfb5b485d73 | |
parent | 4670d5d4ff145b1d44ac5d9f0db053e977ffc48a (diff) | |
download | ansible-modules-core-1347343080fb301f02f3cd30696987dc707edf87.tar.gz |
Return change results in a dictionary listing the package names.
Fix a parsing problem when package names contain a dot.
-rw-r--r-- | packaging/os/yum.py | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/packaging/os/yum.py b/packaging/os/yum.py index 943a4e2e..1337abf8 100644 --- a/packaging/os/yum.py +++ b/packaging/os/yum.py @@ -615,10 +615,7 @@ def install(module, items, repoq, yum_basecmd, conf_file, en_repos, dis_repos): except Exception, e: module.fail_json(msg="Failure deleting temp directory %s, %s" % (tempdir, e)) - for p in pkgs: - # take note of which packages are getting installed - res['results'].append('%s will be installed' % p) - module.exit_json(changed=True, results=res['results']) + module.exit_json(changed=True, results=res['results'], changes=dict(installed=pkgs)) changed = True @@ -686,10 +683,7 @@ def remove(module, items, repoq, yum_basecmd, conf_file, en_repos, dis_repos): cmd = yum_basecmd + ["remove"] + pkgs if module.check_mode: - # take note of which packages are getting removed - for p in pkgs: - res['results'].append('%s will be removed' % p) - module.exit_json(changed=True, results=res['results']) + module.exit_json(changed=True, results=res['results'], changes=dict(removed=pkgs)) rc, out, err = module.run_command(cmd) @@ -751,7 +745,7 @@ def latest(module, items, repoq, yum_basecmd, conf_file, en_repos, dis_repos): continue else: pkg, version, repo = line - name, dist = pkg.split('.') + name, dist = pkg.rsplit('.', 1) updates.update({name: {'version': version, 'dist': dist, 'repo': repo}}) elif rc == 1: res['msg'] = err @@ -806,15 +800,15 @@ def latest(module, items, repoq, yum_basecmd, conf_file, en_repos, dis_repos): # check_mode output if module.check_mode: + to_update = [] for w in will_update: if w.startswith('@'): + to_update.append((w, None)) msg = '%s will be updated' % w else: - msg = '%s will be updated with %s-%s.%s from %s' % (w, w, updates[w]['version'], updates[w]['dist'], updates[w]['repo']) - res['results'].append(msg) + to_update.append((w, '%s.%s from %s' % (updates[w]['version'], updates[w]['dist'], updates[w]['repo']))) - for p in pkgs['install']: - res['results'].append('%s will be installed' % p) + res['changes'] = dict(installed=pkgs['install'], updated=to_update) if len(will_update) > 0 or len(pkgs['install']) > 0: res['changed'] = True |