]> arthur.barton.de Git - netdata.git/commitdiff
do not install global url openers + fix multiple tomcat instances
authorpaulfantom <paulfantom@gmail.com>
Sat, 6 Aug 2016 13:49:15 +0000 (15:49 +0200)
committerpaulfantom <paulfantom@gmail.com>
Sat, 6 Aug 2016 13:49:15 +0000 (15:49 +0200)
python.d/python_modules/base.py
python.d/tomcat.chart.py

index f40512c6d341075e0280fdda258fc199e760fedb..87c55830c32e3293d0ae1639149c815cb1a0c790 100644 (file)
@@ -412,7 +412,7 @@ class UrlService(SimpleService):
 
     def __add_openers(self):
         # TODO add error handling
-        opener = urllib2.build_opener()
+        self.opener = urllib2.build_opener()
 
         # Proxy handling
         # TODO currently self.proxies isn't parsed from configuration file
@@ -439,9 +439,10 @@ class UrlService(SimpleService):
         if self.user is not None and self.password is not None:
             passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
             passman.add_password(None, self.url, self.user, self.password)
-            opener.add_handler(urllib2.HTTPBasicAuthHandler(passman))
+            self.opener.add_handler(urllib2.HTTPBasicAuthHandler(passman))
+            self.debug("Enabling HTTP basic auth")
 
-        urllib2.install_opener(opener)
+        #urllib2.install_opener(opener)
 
     def _get_raw_data(self):
         """
@@ -450,7 +451,8 @@ class UrlService(SimpleService):
         """
         raw = None
         try:
-            f = urllib2.urlopen(self.url, timeout=self.update_every * 2)
+            f = self.opener.open(self.url, timeout=self.update_every * 2)
+            # f = urllib2.urlopen(self.url, timeout=self.update_every * 2)
         except Exception as e:
             self.error(str(e))
             return None
@@ -488,7 +490,8 @@ class UrlService(SimpleService):
 
         self.__add_openers()
 
-        if self._get_data() is None or len(self._get_data()) == 0:
+        test = self._get_data()
+        if test is None or len(test) == 0:
             return False
         else:
             return True
index f791d27f28dbedf5b3b976b258d6854391c47f84..81e2a3b80faafcf1f8744bfbc44c8a08d6375363 100644 (file)
@@ -66,7 +66,8 @@ class Service(UrlService):
         if self.port == 0:
             self.port = 80
 
-        if self._get_data() is None or len(self._get_data()) == 0:
+        test = self._get_data()
+        if test is None or len(test) == 0:
             return False
         else:
             return True
@@ -81,13 +82,12 @@ class Service(UrlService):
             try:
                 data = ET.fromstring(raw)
             except ET.ParseError as e:
-                #if e.code == errors.codes[errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENT]:
+                # if e.code == errors.codes[errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENT]:
                 if e.code == 9:
-                    # cut rest of invalid string
-                    pos = 0
-                    for i in range(e.position[0] - 1):
-                        pos += raw.find('\n', pos)
-                    raw = raw[:47604 + pos + e.position[0] - 1]
+                    end = raw.find('</status>')
+                    end += 9
+                    raw = raw[:end]
+                    self.debug(raw)
                     data = ET.fromstring(raw)
                 else:
                     raise Exception(e)