fix `NetSocketService` (parsing `request` from configuration file)
paulfantom committed
Jul 6, 2016 at 18:42 UTC
62bac802cad0b6a42e9637bb3f4ffed0fbf84720
2 files changed
+16
-12
python.d/hddtemp.chart.py
+4
-2
@@ -43,7 +43,10 @@ class Service(NetSocketService):
43
Get data from TCP/IP socket
44
:return: dict
45
"""
46
- raw = self._get_raw_data().split("|")[:-1]
46
+ try:
47
+ raw = self._get_raw_data().split("|")[:-1]
48
+ except AttributeError:
49
+ return None
50
data = {}
51
for i in range(len(raw) // 5):
52
try:
@@ -59,7 +62,6 @@ class Service(NetSocketService):
62
:return: boolean
63
"""
64
self._parse_config()
62
-
65
data = self._get_data()
66
if data is None:
67
self.error("No data received")
python.d/python_modules/base.py
+12
-10
@@ -451,19 +451,21 @@ class NetSocketService(SimpleService):
451
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
452
sock.connect((self.host, self.port))
453
except Exception as e:
454
+ print(e)
455
self.sock = None
456
return None
457
457
- try:
458
- sock.send(self.request)
459
- except Exception:
458
+ if self.request != "".encode():
459
try:
461
- sock.shutdown(1)
462
- sock.close()
463
- except:
464
- pass
465
- self.sock = None
466
- return None
460
+ sock.send(self.request)
461
+ except Exception:
462
+ try:
463
+ sock.shutdown(1)
464
+ sock.close()
465
+ except:
466
+ pass
467
+ self.sock = None
468
+ return None
469
470
data = sock.recv(1024)
471
try:
@@ -497,7 +499,7 @@ class NetSocketService(SimpleService):
499
except (KeyError, TypeError):
500
self.error("No port specified. Using: '" + str(self.port) + "'")
501
try:
500
- self.request = int(self.configuration['request'])
502
+ self.request = str(self.configuration['request'])
503
except (KeyError, TypeError):
504
self.error("No request specified. Using: '" + str(self.request) + "'")
505
self.request = self.request.encode()