Skip to content

Commit

Permalink
modules: zypper: Optimize the 'search' subcommand (#37191)
Browse files Browse the repository at this point in the history
When looking for installed packages we do not need to query
repositories since we only care about the rpmdb. As such, we can
disable all the repositories operations in order to improve the
performance of that step

Before this patch, when using 'state: present' in the zypper module,
the operation was taking about 12 seconds to complete:

time ansible-playbook foo.yml 1>/dev/null

real	0m12.614s
user	0m10.880s
sys	0m0.683s

After this patch:

time ansible-playbook foo.yml 1>/dev/null

real	0m4.193s
user	0m2.560s
sys	0m0.575s

see:
https://bugzilla.opensuse.org/show_bug.cgi?id=1084525
  • Loading branch information
hwoarang authored and ansibot committed Mar 9, 2018
1 parent 74e79d9 commit 5234b78
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions lib/ansible/modules/packaging/os/zypper.py
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,9 @@ def get_cmd(m, subcommand):
if (is_install or is_refresh) and m.params['disable_gpg_check']:
cmd.append('--no-gpg-checks')

if subcommand == 'search':
cmd.append('--disable-repositories')

cmd.append(subcommand)
if subcommand not in ['patch', 'dist-upgrade'] and not is_refresh:
cmd.extend(['--type', m.params['type']])
Expand Down

0 comments on commit 5234b78

Please sign in to comment.