summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToshio Kuratomi <toshio@fedoraproject.org>2015-11-01 12:58:20 -0800
committerToshio Kuratomi <toshio@fedoraproject.org>2015-11-02 08:00:46 -0800
commit0b9e9fd852db09091793adf9167a29adb2addaf0 (patch)
tree56ef84810aa49b0da066bfb6842bfe1b8d31847b
parent8e0a2ed729901f0bd7b950883d805861883e2fbb (diff)
downloadansible-modules-extras-dnf-hang.tar.gz
Move existing check for root before we make expensive network callsdnf-hang
-rw-r--r--packaging/os/dnf.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/packaging/os/dnf.py b/packaging/os/dnf.py
index 58cf4bca..50c86fc4 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'])