From 0b9e9fd852db09091793adf9167a29adb2addaf0 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Sun, 1 Nov 2015 12:58:20 -0800 Subject: [PATCH] Move existing check for root before we make expensive network calls --- packaging/os/dnf.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/packaging/os/dnf.py b/packaging/os/dnf.py index 58cf4bcac95..50c86fc4f62 100644 --- a/packaging/os/dnf.py +++ b/packaging/os/dnf.py @@ -234,9 +234,6 @@ def _mark_package_install(module, base, pkg_spec): def ensure(module, base, state, names): - if not util.am_i_root(): - module.fail_json(msg="This command has to be run under the root user.") - if names == ['*'] and state == 'latest': base.upgrade_all() else: @@ -330,12 +327,20 @@ def main(): mutually_exclusive=[['name', 'list']], supports_check_mode=True) params = module.params - base = _base( - module, params['conf_file'], params['disable_gpg_check'], - params['disablerepo'], params['enablerepo']) if params['list']: + base = _base( + module, params['conf_file'], params['disable_gpg_check'], + params['disablerepo'], params['enablerepo']) list_items(module, base, params['list']) else: + # Note: base takes a long time to run so we want to check for failure + # before running it. + if not util.am_i_root(): + module.fail_json(msg="This command has to be run under the root user.") + base = _base( + module, params['conf_file'], params['disable_gpg_check'], + params['disablerepo'], params['enablerepo']) + ensure(module, base, params['state'], params['name'])