diff --git a/.gitignore b/.gitignore
index 6b55238..c2d1521 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
*.py[co]
cli_log.txt
+.project
+.pydevproject
diff --git a/README.textile b/README.textile
index 7fa708c..2f85ca4 100644
--- a/README.textile
+++ b/README.textile
@@ -30,6 +30,7 @@ This project is licensed under the Apache License Version 2.0
h2. Requirements
* Django 1.0+
+* zkpython 3.3.1+
h2. Usage
diff --git a/css/blueprint/screen.css b/css/blueprint/screen.css
index 2c2b328..ef38e1e 100644
--- a/css/blueprint/screen.css
+++ b/css/blueprint/screen.css
@@ -23,10 +23,10 @@ a img {border:none;}
/* typography.css */
html {font-size:100.01%;}
-body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;}
+body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;padding:8px;}
h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;}
-h1 {font-size:3em;line-height:1;margin-bottom:0.5em;}
-h2 {font-size:2em;margin-bottom:0.75em;}
+h1 {font-size:3em;line-height:1;margin-bottom:0.5em;border-bottom:1px #ddd solid;}
+h2 {font-size:2em;margin-bottom:0.75em;border-bottom:1px #ddd solid;}
h3 {font-size:1.5em;line-height:1;margin-bottom:1em;}
h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}
h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
@@ -254,4 +254,8 @@ hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;marg
hr.space {background:#fff;color:#fff;visibility:hidden;}
.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
.clearfix, .container {display:block;}
-.clear {clear:both;}
\ No newline at end of file
+.clear {clear:both;}
+
+div.section{
+ padding:8px 0px;
+}
\ No newline at end of file
diff --git a/zkadmin/models.py b/zkadmin/models.py
index 592e169..52fba23 100644
--- a/zkadmin/models.py
+++ b/zkadmin/models.py
@@ -9,7 +9,10 @@
class Session(object):
def __init__(self, session):
+ #TODO: Support URLs, Not just IPs
m = re.search('/(\d+\.\d+\.\d+\.\d+):(\d+)\[(\d+)\]\((.*)\)', session)
+ if not m:
+ m = re.search('/(0:0:0:0:0:0:0:1):(\d+)\[(\d+)\]\((.*)\)', session)
self.host = m.group(1)
self.port = m.group(2)
self.interest_ops = m.group(3)
@@ -33,6 +36,7 @@ def __init__(self, server):
line = sio.readline()
m = re.search('.*: (\d+\.\d+\.\d+)-.*', line)
self.version = m.group(1)
+ #Skip the clients line
sio.readline()
self.sessions = []
for line in sio:
diff --git a/zkadmin/templates/zkadmin/detail.html b/zkadmin/templates/zkadmin/detail.html
index b359533..293b6bd 100644
--- a/zkadmin/templates/zkadmin/detail.html
+++ b/zkadmin/templates/zkadmin/detail.html
@@ -1,60 +1,93 @@
-
-
-
-
-
+
+
+
+
+
-
-ZooKeeper Server {{server_data.id}}
-
+
+ ZooKeeper Server {{server_data.id}}
+
+
+
+
ZooKeeper Dashboard
+
+
+ | Server ID | {{server_data.id}} |
+ | Server Address | {{server_data.host}}:{{server_data.port}} |
+ | Server Mode | {{server_data.mode|capfirst}} |
+
+
+
+
+
Summary
+
+
+ | Host | {{server_data.host}} |
+ | Client Port | {{server_data.port}} |
+ | Mode | {{server_data.mode|capfirst}} |
+ | Zxid | {{server_data.zxid}} |
+ | Node Count | {{server_data.node_count}} |
+ | Connection Count | {{server_data.sessions|length}} |
+ | Received | {{server_data.received}} |
+ | Sent | {{server_data.sent}} |
+ | Outstanding | {{server_data.outstanding}} |
+ | Max Latency | {{server_data.max_latency}} |
+ | Avg Latency | {{server_data.avg_latency}} |
+ | Min Latency | {{server_data.min_latency}} |
+
+
+
+
+
Connections (Clients)
-
-
-
ZooKeeper Server {{server_data.host}}:{{server_data.port}}
-
-
-
Summary
-
-
- | Host | {{server_data.host}} |
- | Client port | {{server_data.port}} |
- | Mode | {{server_data.mode|capfirst}} |
- | Zxid | {{server_data.zxid}} |
- | Node count | {{server_data.node_count}} |
- | Connection count | {{server_data.sessions|length}} |
- | Received | {{server_data.received}} |
- | Sent | {{server_data.sent}} |
- | Outstanding | {{server_data.outstanding}} |
- | Max Latency | {{server_data.max_latency}} |
- | Avg Latency | {{server_data.avg_latency}} |
- | Min Latency | {{server_data.min_latency}} |
-
-
-
-
-
Connections (clients)
-
-
- | host | port | interest ops | queued# | recved# | sent# |
-{% for s in server_data.sessions %}
- | {{s.host}} | {{s.port}} | {{s.interest_ops}} | {{s.queued}} | {{s.recved}} | {{s.sent}} |
-{% endfor %}
-
-
-
-
-
Environment
-
-
- | Attribute | Value |
-{% for e in server_data.envi %}
- | {{e.0}} | {{e.1}} |
-{% endfor %}
-
-
-
-
-
-
+
+
+
+ | Host |
+ Port |
+ Interest Ops |
+ Queued # |
+ Recved # |
+ Sent # |
+
+
+
+ {% for s in server_data.sessions %}
+
+ | {{s.host}} |
+ {{s.port}} |
+ {{s.interest_ops}} |
+ {{s.queued}} |
+ {{s.recved}} |
+ {{s.sent}} |
+
+ {% endfor %}
+
+
+
+
+
+
Environment
+
+
+
+
+ | Attribute |
+ Value |
+
+
+
+ {% for e in server_data.envi %}
+
+ | {{e.0}} |
+ {{e.1}} |
+
+ {% endfor %}
+
+
+
+
+
+