From 6bceee9a93434bd5484be30d4558000e23bf6243 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Wed, 12 Aug 2015 10:53:13 -0400 Subject: [PATCH] now lvs/vg facts are only attempted if binary found --- lib/ansible/module_utils/facts.py | 34 +++++++++++++++---------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/lib/ansible/module_utils/facts.py b/lib/ansible/module_utils/facts.py index 1d1c5a928b1..f301bf82638 100644 --- a/lib/ansible/module_utils/facts.py +++ b/lib/ansible/module_utils/facts.py @@ -1073,33 +1073,31 @@ class LinuxHardware(Hardware): """ Get LVM Facts if running as root and lvm utils are available """ if os.getuid() == 0 and module.get_bin_path('vgs'): - vgs_path = module.get_bin_path('vgs') - lvs_path = module.get_bin_path('lvs') lvm_util_options = '--noheadings --nosuffix --units g' + vgs_path = module.get_bin_path('vgs') #vgs fields: VG #PV #LV #SN Attr VSize VFree vgs={} - rc, vg_lines, err = module.run_command( - '%s %s' % (vgs_path, lvm_util_options)) - for vg_line in vg_lines.splitlines(): - items = vg_line.split() - vgs[items[0]] = {'size_g':items[-2], - 'free_g':items[-1], - 'num_lvs': items[2], - 'num_pvs': items[1]} + if vgs_path: + rc, vg_lines, err = module.run_command( '%s %s' % (vgs_path, lvm_util_options)) + for vg_line in vg_lines.splitlines(): + items = vg_line.split() + vgs[items[0]] = {'size_g':items[-2], + 'free_g':items[-1], + 'num_lvs': items[2], + 'num_pvs': items[1]} + lvs_path = module.get_bin_path('lvs') #lvs fields: #LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert lvs = {} - rc, lv_lines, err = module.run_command( - '%s %s' % (lvs_path, lvm_util_options)) - for lv_line in lv_lines.splitlines(): - items = lv_line.split() - lvs[items[0]] = {'size_g': items[3], - 'vg': items[1]} + if lvs_path: + rc, lv_lines, err = module.run_command( '%s %s' % (lvs_path, lvm_util_options)) + for lv_line in lv_lines.splitlines(): + items = lv_line.split() + lvs[items[0]] = {'size_g': items[3], 'vg': items[1]} - self.facts['lvm'] = {'lvs': lvs, - 'vgs': vgs} + self.facts['lvm'] = {'lvs': lvs, 'vgs': vgs} class SunOSHardware(Hardware):