@cryptotaxi247 / netdata-1 / commits / 3f3bd52db

do not install global url openers + fix multiple tomcat instances

paulfantom committed Aug 6, 2016 at 15:49 UTC 3f3bd52dbd1717456a00fdeff0f2eeec759dd579
2 files changed +15 -12
python.d/python_modules/base.py
+8 -5
@@ -412,7 +412,7 @@ class UrlService(SimpleService):
412
413 def __add_openers(self):
414 # TODO add error handling
415 - opener = urllib2.build_opener()
415 + self.opener = urllib2.build_opener()
416
417 # Proxy handling
418 # TODO currently self.proxies isn't parsed from configuration file
@@ -439,9 +439,10 @@ class UrlService(SimpleService):
439 if self.user is not None and self.password is not None:
440 passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
441 passman.add_password(None, self.url, self.user, self.password)
442 - opener.add_handler(urllib2.HTTPBasicAuthHandler(passman))
442 + self.opener.add_handler(urllib2.HTTPBasicAuthHandler(passman))
443 + self.debug("Enabling HTTP basic auth")
444
444 - urllib2.install_opener(opener)
445 + #urllib2.install_opener(opener)
446
447 def _get_raw_data(self):
448 """
@@ -450,7 +451,8 @@ class UrlService(SimpleService):
451 """
452 raw = None
453 try:
453 - f = urllib2.urlopen(self.url, timeout=self.update_every * 2)
454 + f = self.opener.open(self.url, timeout=self.update_every * 2)
455 + # f = urllib2.urlopen(self.url, timeout=self.update_every * 2)
456 except Exception as e:
457 self.error(str(e))
458 return None
@@ -488,7 +490,8 @@ class UrlService(SimpleService):
490
491 self.__add_openers()
492
491 - if self._get_data() is None or len(self._get_data()) == 0:
493 + test = self._get_data()
494 + if test is None or len(test) == 0:
495 return False
496 else:
497 return True
python.d/tomcat.chart.py
+7 -7
@@ -66,7 +66,8 @@ class Service(UrlService):
66 if self.port == 0:
67 self.port = 80
68
69 - if self._get_data() is None or len(self._get_data()) == 0:
69 + test = self._get_data()
70 + if test is None or len(test) == 0:
71 return False
72 else:
73 return True
@@ -81,13 +82,12 @@ class Service(UrlService):
82 try:
83 data = ET.fromstring(raw)
84 except ET.ParseError as e:
84 - #if e.code == errors.codes[errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENT]:
85 + # if e.code == errors.codes[errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENT]:
86 if e.code == 9:
86 - # cut rest of invalid string
87 - pos = 0
88 - for i in range(e.position[0] - 1):
89 - pos += raw.find('\n', pos)
90 - raw = raw[:47604 + pos + e.position[0] - 1]
87 + end = raw.find('</status>')
88 + end += 9
89 + raw = raw[:end]
90 + self.debug(raw)
91 data = ET.fromstring(raw)
92 else:
93 raise Exception(e)