diff --git a/setup b/setup index 1cc30a63db5..791bb06721d 100644 --- a/setup +++ b/setup @@ -380,6 +380,8 @@ class LinuxHardware(Hardware): lspci = module.get_bin_path('lspci') if lspci: rc, pcidata, err = module.run_command(lspci) + else: + pcidata = None try: block_devs = os.listdir("/sys/block") @@ -397,19 +399,18 @@ class LinuxHardware(Hardware): sysfs_no_links = 1 else: continue - if re.search("virtual", path): + if "virtual" in path: continue sysdir = os.path.join("/sys/block", path) if sysfs_no_links == 1: for folder in os.listdir(sysdir): - if re.search("device", folder): + if "device" in folder: virtual = 0 break if virtual: continue d = {} - m = re.match(".*/(.+)$", sysdir) - diskname = m.group(1) + diskname = os.path.basename(sysdir) for key in ['vendor', 'model']: d[key] = get_file_content(sysdir + "/device/" + key) @@ -448,8 +449,8 @@ class LinuxHardware(Hardware): d['size'] = module.pretty_bytes(float(d['sectors']) * float(d['sectorsize'])) d['host'] = "" - m = re.match(".+/\d+:(\w+:\w+\.\w)/host\d+/\s*", sysdir) - if m: + m = re.match(".+/[a-f0-9]+:([a-f0-9]+:[a-f0-9]+\.[a-f0-9]+)/host\d+/", sysdir) + if m and pcidata: pciid = m.group(1) did = re.escape(pciid) m = re.search("^" + did + "\s(.*)$", pcidata, re.MULTILINE) @@ -457,8 +458,9 @@ class LinuxHardware(Hardware): d['holders'] = [] for folder in os.listdir(sysdir + "/holders"): - if re.search("^dm-.*", folder): - name = get_file_content(sysdir + "/holders/" + folder + "/dm/name") + if not folder.startswith("dm-"): + continue + name = get_file_content(sysdir + "/holders/" + folder + "/dm/name") if name: d['holders'].append(name) else: