fix squid data parsing
paulfantom committed
Jul 13, 2016 at 12:12 UTC
1befe22fc0c2ad540fed96799c7fc39ecc7f76d8
1 file changed
+9
-9
python.d/squid.chart.py
+9
-9
@@ -56,22 +56,23 @@ class Service(SocketService):
56
Get data via http request
57
:return: dict
58
"""
59
+ data = {}
60
try:
60
- raw = self._get_raw_data().split('\n')
61
- if "200 OK" not in raw[0]:
61
+ raw = self._get_raw_data().split('\r\n')[-1]
62
+ if raw.startswith('<'):
63
return None
63
- data = {}
64
- for row in raw:
64
+ for row in raw.split('\n'):
65
if row.startswith(("client", "server.all")):
66
tmp = row.split("=")
67
data[tmp[0].replace('.', '_').strip(' ')] = int(tmp[1])
68
-
69
- if len(data) == 0:
70
- return None
71
- return data
68
except (ValueError, AttributeError):
69
return None
70
71
+ if len(data) == 0:
72
+ return None
73
+ else:
74
+ return data
75
+
76
def check(self):
77
"""
78
Parse essential configuration, autodetect squid configuration (if needed), and check if data is available
@@ -100,7 +101,6 @@ class Service(SocketService):
101
# return True
102
# else:
103
if True:
103
- self.error("NEED: " + str(self._get_data()))
104
if self._get_data() is not None:
105
return True
106
else: