if not disks:
self.error('Can\'t locate any smartd log files in %s' % self.log_path)
return False
-
+
# List of namedtuples to track smartd log file size
self.disks = [NAMED_DISKS(name=disks[i], size=0, number=i) for i in range(len(disks))]
break
result = f.readline()
- result = result.decode(encoding='utf-8')
+ result = result.decode()
result = self.regex.findall(result)
queue.put([basename(disk), result])
threads, result = list(), list()
queue = Queue()
to_netdata = dict()
-
+
# If the size has not changed there is no reason to poll log files.
disks = [disk for disk in self.disks if self.size_changed(disk)]
if disks:
for elem in result:
for a, n, r in elem[1]:
to_netdata.update({'_'.join([elem[0], a]): r if self.raw_values else n})
-
+
self.previous_data.update(to_netdata)
return to_netdata or None
except OSError:
# Remove unreadable/nonexisting log files from list of disks and previous_data
self.disks.remove(disk)
- self.previous_data = {k: v for k, v in self.previous_data.items() if basename(disk.name) not in k}
+ self.previous_data = dict([(k, v) for k, v in self.previous_data.items() if basename(disk.name) not in k])
return False
def create_charts(self):
self.definitions = dict()
units = 'raw' if self.raw_values else 'normalized'
- for k, v in {k: v for k, v in SMART_ATTR.items() if k in ORDER}.items():
+ for k, v in dict([(k, v) for k, v in SMART_ATTR.items() if k in ORDER]).items():
self.definitions.update({''.join(['attrid', k]): {
'options': [None, v, units, v, 'smartd.attrid' + k, 'line'],
'lines': create_lines(k)}})