From 2fc173a76b7ba097561955aa39db5407e539e5f7 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Sun, 14 Oct 2012 18:31:08 +0200 Subject: [PATCH] new script showing server status --- scripts/servers | 37 +++++++++++++++++++++++++++++++++++++ 1 files changed, 37 insertions(+), 0 deletions(-) create mode 100755 scripts/servers diff --git a/scripts/servers b/scripts/servers new file mode 100755 index 0000000..0a1da1e --- /dev/null +++ b/scripts/servers @@ -0,0 +1,37 @@ +#!/usr/bin/env python + +from electrum import Interface, DEFAULT_SERVERS +import time, Queue + +servers = DEFAULT_SERVERS +interfaces = map ( lambda server: Interface({'server':server} ), servers ) +results = [] + +for i in interfaces: + if i.is_connected: + i.start() + i.send([('blockchain.numblocks.subscribe',[])]) + else: + servers.remove(i.server) + +while servers: + for i in interfaces: + try: + r = i.responses.get(False) + except Queue.Empty: + continue + + if r.get('method') == 'blockchain.numblocks.subscribe': + results.append((i.host, r.get('result'))) + servers.remove(i.server) + +from collections import defaultdict +d = defaultdict(int) +for e in results: + d[e[1]] += 1 +v = d.values() +numblocks = d.keys()[v.index(max(v))] + +for s,n in results: + print "%30s %d "%(s, n), "ok" if abs(n-numblocks)<2 else "lagging" + -- 1.7.1