nginx_plus: better error handling in check()
lgz committed
Jan 20, 2018 at 20:16 UTC
a0a2320dae8cf09e6fee7442d7cfa892892079d1
1 file changed
+7
-3
python.d/nginx_plus.chart.py
+7
-3
@@ -440,10 +440,14 @@ class Service(UrlService):
440
raw_data = self._get_raw_data()
441
if not raw_data:
442
return None
443
- response = loads(raw_data)
443
+
444
+ try:
445
+ response = loads(raw_data)
446
+ except ValueError:
447
+ return None
448
449
for obj_cls in [WebZone, WebUpstream, Cache]:
446
- for obj_name in response[obj_cls.key]:
450
+ for obj_name in response.get(obj_cls.key, list()):
451
obj = obj_cls(name=obj_name, response=response)
452
self.objects[obj.real_name] = obj
453
charts = obj_cls.charts(obj)
@@ -451,7 +455,7 @@ class Service(UrlService):
455
self.order.append(chart)
456
self.definitions[chart] = charts[chart]
457
454
- return True
458
+ return bool(self.objects)
459
460
def _get_data(self):
461
"""