@cryptotaxi247 / netdata-1 / commits / 2b467d890

disk exclusion, hddtemp data checking

paulfantom committed Jul 19, 2016 at 14:13 UTC 2b467d8909c23022556555709c94a1f33aa6b12e
1 file changed +19 -1
python.d/hddtemp.chart.py
+19 -1
@@ -2,6 +2,7 @@
2 # Description: hddtemp netdata python.d module
3 # Author: Pawel Krupa (paulfantom)
4
5 +import os
6 from base import SocketService
7
8 # default module values (can be overridden per job in `config`)
@@ -38,12 +39,23 @@ class Service(SocketService):
39 self.port = 7634
40 self.order = ORDER
41 self.definitions = CHARTS
42 + self.disk_count = 1
43 + self.exclude = []
44 +
45 + def _get_disk_count(self):
46 + all_disks = [f for f in os.listdir("/dev") if len(f) == 3 and f.startswith("sd")]
47 + for disk in self.exclude:
48 + try:
49 + all_disks.remove(disk)
50 + except:
51 + self.debug("Disk not found")
52 + return len(all_disks)
53
54 def _check_raw_data(self, data):
55 if not data.endswith('|'):
56 return False
57
46 - if data.count('|') % 5 == 0:
58 + if data.count('|') % (5 * self.disk_count) == 0:
59 return True
60
61 return False
@@ -53,6 +65,7 @@ class Service(SocketService):
65 Get data from TCP/IP socket
66 :return: dict
67 """
68 + self.disk_count = self._get_disk_count()
69 try:
70 raw = self._get_raw_data().split("|")[:-1]
71 except AttributeError:
@@ -78,6 +91,11 @@ class Service(SocketService):
91 :return: boolean
92 """
93 self._parse_config()
94 + try:
95 + self.exclude = list(self.configuration['exlude'])
96 + except (KeyError, TypeError) as e:
97 + self.info("No excluded disks")
98 + self.debug(str(e))
99 data = self._get_data()
100 if data is None:
101 return False