From bb960515a308ce4f554f5ba08dfb6c6e5e1abd15 Mon Sep 17 00:00:00 2001 From: Erez Mazor Date: Wed, 5 Oct 2011 19:55:54 +0200 Subject: [PATCH 1/3] modified models.py for zookeeper 3.4.0 stat command output compatability --- zkadmin/models.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/zkadmin/models.py b/zkadmin/models.py index 592e169..e159d63 100644 --- a/zkadmin/models.py +++ b/zkadmin/models.py @@ -9,7 +9,7 @@ class Session(object): def __init__(self, session): - m = re.search('/(\d+\.\d+\.\d+\.\d+):(\d+)\[(\d+)\]\((.*)\)', session) + m = re.search('/(\d+\.\d+\.\d+\.\d+):(\d+)\[(\d+)\]\((.*)', session) self.host = m.group(1) self.port = m.group(2) self.interest_ops = m.group(3) @@ -36,12 +36,13 @@ def __init__(self, server): sio.readline() self.sessions = [] for line in sio: - if not line.strip(): - break - self.sessions.append(Session(line.strip())) + if line.startswith('/', 1, 2): + self.sessions.append(Session(line.strip())) + break for line in sio: attr, value = line.split(':') attr = attr.strip().replace(" ", "_").replace("/", "_").lower() + print attr self.__dict__[attr] = value.strip() self.min_latency, self.avg_latency, self.max_latency = self.latency_min_avg_max.split("/") From 33fdffcdaef3fba01f43491a8b446355122c13d0 Mon Sep 17 00:00:00 2001 From: Erez Mazor Date: Wed, 5 Oct 2011 19:56:59 +0200 Subject: [PATCH 2/3] removed unsued print --- zkadmin/models.py | 1 - 1 file changed, 1 deletion(-) diff --git a/zkadmin/models.py b/zkadmin/models.py index e159d63..d52ef40 100644 --- a/zkadmin/models.py +++ b/zkadmin/models.py @@ -42,7 +42,6 @@ def __init__(self, server): for line in sio: attr, value = line.split(':') attr = attr.strip().replace(" ", "_").replace("/", "_").lower() - print attr self.__dict__[attr] = value.strip() self.min_latency, self.avg_latency, self.max_latency = self.latency_min_avg_max.split("/") From 186fd17f1ef09eb84cbef20a3661babad24c69c1 Mon Sep 17 00:00:00 2001 From: Erez Mazor Date: Wed, 5 Oct 2011 20:10:50 +0200 Subject: [PATCH 3/3] added exception handling on properties so that while zookeepers are restarting so the dashboard will not crash --- zkadmin/models.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/zkadmin/models.py b/zkadmin/models.py index d52ef40..09c8c85 100644 --- a/zkadmin/models.py +++ b/zkadmin/models.py @@ -32,7 +32,11 @@ def __init__(self, server): sio = StringIO.StringIO(stat) line = sio.readline() m = re.search('.*: (\d+\.\d+\.\d+)-.*', line) - self.version = m.group(1) + try: + self.version = m.group(1) + except: + self.version = 'Not available' + sio.readline() self.sessions = [] for line in sio: @@ -44,8 +48,11 @@ def __init__(self, server): attr = attr.strip().replace(" ", "_").replace("/", "_").lower() self.__dict__[attr] = value.strip() - self.min_latency, self.avg_latency, self.max_latency = self.latency_min_avg_max.split("/") - + try: + self.min_latency, self.avg_latency, self.max_latency = self.latency_min_avg_max.split("/") + except: + self.min_latency, self.avg_latency, self.max_latency = 0,0,0 + self.envi = [] sio = StringIO.StringIO(envi) for line in sio: