introduce short name

This commit is contained in:
andreas
2010-08-21 12:19:22 +00:00
parent b4e9b73465
commit 77e6a707ef
+17 -11
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
# $Id: hbd,v 1.18 2010/04/02 11:09:05 andreas Exp $ # $Id: hbd,v 1.19 2010/08/21 12:19:22 andreas Exp $
# Wait for heartbeat messages and act on them (or their absence) # Wait for heartbeat messages and act on them (or their absence)
# #
import time, os, string, sys, socket, atexit, select, SocketServer, getopt, signal, cPickle import time, os, string, sys, socket, atexit, select, SocketServer, getopt, signal, cPickle
@@ -42,6 +42,11 @@ def handler(signum, frame):
up=0 up=0
# sys.exit(0) # sys.exit(0)
def shortname(name):
r=string.split(name,'.')
return r[0]
class NullDevice: class NullDevice:
def write(self, s): def write(self, s):
pass pass
@@ -53,7 +58,7 @@ class Host:
def __init__(self, name, addr): def __init__(self, name, addr):
global num global num
self.name=name self.name=shotname(name)
self.addr=addr self.addr=addr
self.num=num self.num=num
self.lastbeat=time.time() self.lastbeat=time.time()
@@ -97,22 +102,23 @@ def dur(sec):
# #
# #
def addhost(name, addr): def addhost(name, addr):
if hosts.has_key(name): sname=shortname(name)
del htab[hosts[name].addr] if hosts.has_key(sname):
hosts[name].addr=addr del htab[hosts[sname].addr]
hosts[sname].addr=addr
if visual: if visual:
displayaddr(name) displayaddr(sname)
htab[addr]=name htab[addr]=sname
log("%s, changed address to %s" % (name, addr)) log("%s, changed address to %s" % (sname, addr))
else: else:
hosts[name]=Host(name, addr) hosts[sname]=Host(sname, addr)
s=hosts.keys() s=hosts.keys()
s.sort() s.sort()
x=0 x=0
for n in s: for n in s:
hosts[n].num=x hosts[n].num=x
x+=1 x+=1
htab[addr]=name htab[addr]=sname
if visual: if visual:
display() display()
@@ -306,7 +312,7 @@ def readsock():
elif key == 'interval': elif key == 'interval':
interval=int(val) interval=int(val)
elif key == 'name': elif key == 'name':
name=val name=sortname(val)
elif key == 'msg': elif key == 'msg':
msg=val msg=val
elif key == 'service': elif key == 'service':