more 2to3 fallout

This commit is contained in:
2019-12-16 19:42:47 +01:00
parent 83a43a1897
commit 17083f186d
2 changed files with 63 additions and 56 deletions
+58 -55
View File
@@ -29,13 +29,15 @@ import zlib
from subprocess import Popen, STDOUT, PIPE
from hbdclass import *
#from hbdclass import *
import hbdclass
SEND_EMAIL=False
SEND_PUSHOVER=True
DEBUG = 3
DEBUG = 2
hbdclass.DEBUG = DEBUG
MAXRECV = 32767
LOGFILE = "/home/andreas/public_html/messages/andreas"
@@ -247,7 +249,7 @@ answer
except:
return "nsupdate: some error occured"
(output, err) = p.communicate(nsup)
(output, err) = p.communicate(nsup.encode())
if output.find('status: NOERROR') >= 0:
return None
return output
@@ -267,11 +269,11 @@ def dur(sec):
def fixsort():
s = list(Host.hosts.keys())
s = list(hbdclass.Host.hosts.keys())
s.sort()
x = 0
for n in s:
Host.hosts[n].num = x
hbdclass.Host.hosts[n].num = x
x += 1
#
@@ -296,18 +298,18 @@ def initlog(logfile):
#
def checkoverdue():
now = time.time()
for h in list(Host.hosts.keys()):
for h in list(hbdclass.Host.hosts.keys()):
pmsg = []
for c in Host.hosts[h].connections:
conn = Host.hosts[h].connections[c]
if conn.state == Connection.down:
for c in hbdclass.Host.hosts[h].connections:
conn = hbdclass.Host.hosts[h].connections[c]
if conn.state == hbdclass.Connection.down:
continue
timeout = Host.hosts[h].interval + grace
if conn.state == Connection.up and (now - conn.lastbeat) > timeout:
conn.newstate(Connection.overdue, now, grace)
timeout = hbdclass.Host.hosts[h].interval + grace
if conn.state == hbdclass.Connection.up and (now - conn.lastbeat) > timeout:
conn.newstate(hbdclass.Connection.overdue, now, grace)
pmsg.append(conn.afam)
if conn.state == Connection.overdue and (now - conn.lastbeat) > DROPOVERDUE:
conn.newstate(Connection.unknown, conn.lastbeat)
if conn.state == hbdclass.Connection.overdue and (now - conn.lastbeat) > DROPOVERDUE:
conn.newstate(hbdclass.Connection.unknown, conn.lastbeat)
if pmsg != []:
if h in watchhosts:
email("overdue", "%s overdue" % " and ".join(pmsg))
@@ -316,7 +318,7 @@ def checkoverdue():
def log(host, m, service=None):
if DEBUG > 0: print(("Log: %s %s" % (host, m)))
if DEBUG > 0: print("Log: %s %s" % (host, m))
now = time.time()
ts = time.strftime("%b %d %H:%M:%S", time.localtime(now))
if service:
@@ -341,7 +343,7 @@ def log(host, m, service=None):
def dnsupdatethread():
while True:
name, addr = Host.dnsQ.get()
name, addr = hbdclass.Host.dnsQ.get()
m = "changed address to %s" % (addr)
err = nsupdate(name, addr)
if err:
@@ -349,7 +351,7 @@ def dnsupdatethread():
email("error: nsupdate failed", "%s: %s" % (name, m))
else:
m += ", DNS updated."
Host.dnsQ.task_done()
hbdclass.Host.dnsQ.task_done()
log(name, m)
#
@@ -377,17 +379,20 @@ def readsock(sock):
addr = addrp[0:2]
name = shortname(msg.get('name', "unknown"))
if not name in Host.hosts: # was: hosts.has_key(name):
host = Host(name)
if not name in hbdclass.Host.hosts: # was: hosts.has_key(name):
host = hbdclass.Host(name)
host.dyn = name in dyndnshosts
if verbose: print(("XX: New host, num now %s" % (len(Host.hosts))))
if verbose: print(("XX: New host, num now %s" % (len(hbdclass.Host.hosts))))
newh=True
else:
host = Host.hosts[name]
host = hbdclass.Host.hosts[name]
newh=False
cid = msg.get('id', 0)
rtt = msg.get('rtt',None)
try:
rtt = float(msg.get('rtt',None))
except:
rtt = None
if msg['ID'] == 'HTB':
host.doesack = msg.get('acks', -1)
@@ -417,9 +422,9 @@ def readsock(sock):
email("address change", "%s %s" % (host.name, res))
pushover("%s %s" % (host.name, res))
if conn.getstate() != Connection.up: # XXX and interval > 0:
if conn.getstate() != hbdclass.Connection.up: # XXX and interval > 0:
lasts = conn.state
d = conn.newstate(Connection.up, now)
d = conn.newstate(hbdclass.Connection.up, now)
m = "%s back after being %s for %s" % (conn.afam, lasts, dur(d))
log(name, m)
if name in watchhosts:
@@ -437,7 +442,7 @@ def readsock(sock):
if name in watchhosts:
email("shutdown", "%s %s shutdown" % (name, conn.afam))
pushover("%s %s shutdown" % (name, conn.afam))
conn.newstate(Connection.down, now)
conn.newstate(hbdclass.Connection.down, now)
if interval > 0:
host.interval = interval
@@ -500,7 +505,7 @@ def updatecode(ucode, uname):
m.update(new_code)
icsum = m.hexdigest()
rmsg = {'csum': icsum, 'code': new_code.encode('base64','strict') }
Host.hosts[uname].cmds.append(('UPD',rmsg))
hbdclass.Host.hosts[uname].cmds.append(('UPD',rmsg))
return fail
#
@@ -538,7 +543,7 @@ class HttpHandler(http.server.BaseHTTPRequestHandler):
self.send_response(code)
self.send_header("Last-Modified", time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime(now)))
# self.send_header("Accept-Ranges","bytes")
# self.send_header("Connection","close")
# self.send_header("hbdclass.Connection","close")
for h in headerdict:
self.send_header(h, headerdict[h])
self.end_headers()
@@ -562,10 +567,8 @@ class HttpHandler(http.server.BaseHTTPRequestHandler):
def buildpage(self):
res=self.buildhead(refresh=60, extras=tcss)
res.append("<H2>Heartbeat status %s</h2>" % VER)
res += ubHost.buildhosttable()
res += ubHost.buildmsgtable(msgs)
res += hbdclass.ubHost.buildhosttable()
res += hbdclass.ubHost.buildmsgtable(msgs)
res.append('<p> %s (%s)</p>' % (time.strftime("%H:%M:%S", time.localtime(now)), os.environ.get('TZ', 'CET-1CDT')))
res.append("</body></html>")
return res
@@ -604,10 +607,10 @@ class HttpHandler(http.server.BaseHTTPRequestHandler):
ucmd=qa.get('c', [None])[0]
if not ucmd or not uname:
code, res=self.builderror(400, 'Argument error', "need h= and c= arguments")
elif uname not in Host.hosts:
elif uname not in hbdclass.Host.hosts:
code, res=self.builderror(400, 'Data error', "h=%s not found" % uname)
else:
Host.hosts[uname].cmds.append(('CMD', {'cmd': urllib.parse.unquote(ucmd)}))
hbdclass.Host.hosts[uname].cmds.append(('CMD', {'cmd': urllib.parse.unquote(ucmd)}))
res=self.buildhead()
res.append("cmd %s queued for host %s" % (uname, ucmd))
@@ -615,12 +618,12 @@ class HttpHandler(http.server.BaseHTTPRequestHandler):
uname=qa.get('h',[None])[0]
if not uname:
code, res=self.builderror(400, 'Argument error', "need h= argument")
if not uname in Host.hosts:
if not uname in hbdclass.Host.hosts:
code, res=self.builderror(400, 'Data error', "h=%s not found" % uname)
else:
log(uname, "dropped")
# for addr in Host.hosts[uname].0i
del Host.hosts[uname]
# for addr in hbdclass.Host.hosts[uname].0i
del hbdclass.Host.hosts[uname]
res=self.buildhead()
res.append("Done")
@@ -628,10 +631,10 @@ class HttpHandler(http.server.BaseHTTPRequestHandler):
uname=qa.get('h',[None])[0]
if not uname:
code, res=self.builderror(400, 'Argument error', "need h= argument")
if not uname in Host.hosts:
if not uname in hbdclass.Host.hosts:
code, res=self.builderror(400, 'Data error', "h=%s not found" % uname)
else:
ll = Host.hosts[uname].registerDns()
ll = hbdclass.Host.hosts[uname].registerDns()
res.append(ll)
log(uname, ll)
@@ -640,7 +643,7 @@ class HttpHandler(http.server.BaseHTTPRequestHandler):
ucode=qa.get('c', [None])[0]
if not ucode or not uname:
code, res=self.builderror(400, 'Argument error', "need h= and c= arguments")
elif uname != 'All' and uname not in Host.hosts:
elif uname != 'All' and uname not in hbdclass.Host.hosts:
code, res=self.builderror(400, 'Data error', "h=%s not found" % uname)
else:
res=self.buildhead()
@@ -648,8 +651,8 @@ class HttpHandler(http.server.BaseHTTPRequestHandler):
names = [uname]
else:
names = []
for n in Host.hosts:
if Host.hosts[n].cver >= 2: # earliest version that supports update
for n in hbdclass.Host.hosts:
if hbdclass.Host.hosts[n].cver >= 2: # earliest version that supports update
names.append(n)
for n in names:
err = updatecode(ucode, n)
@@ -659,8 +662,8 @@ class HttpHandler(http.server.BaseHTTPRequestHandler):
elif qr.path == "/api/0/hosts": # api access to host table
headerdict = {"Content-Type": "application/json; charset=utf-8" }
l=[]
for h in Host.hosts:
l.append(Host.hosts[h].jsons())
for h in hbdclass.Host.hosts:
l.append(hbdclass.Host.hosts[h].jsons())
res=["["+",".join(l)+"]"]
elif qr.path == "/api/0/messages": # api access to host table
@@ -745,7 +748,7 @@ def saveandrestart():
def pickleit():
pickf = open(pickfile, 'wb')
pick = pickle.Pickler(pickf)
pick.dump(Host.hosts)
pick.dump(hbdclass.Host.hosts)
pick.dump(msgs)
pick.dump(lastfm)
pickf.close()
@@ -885,7 +888,7 @@ if 1 and os.path.exists(pickfile):
pickf = open(pickfile, 'rb')
pick = pickle.Unpickler(pickf)
try:
Host.hosts = pick.load()
hbdclass.Host.hosts = pick.load()
msgs = pick.load()
try:
lastfm = pick.load()
@@ -895,14 +898,14 @@ if 1 and os.path.exists(pickfile):
except Exception as e:
print(("load pickled failed: %s" % e))
os.unlink(pickfile)
Connection.htab = {}
for h in list(Host.hosts.keys()):
Host.hosts[h].dyn = h in dyndnshosts
Host.hosts[h].fixup()
hbdclass.Connection.htab = {}
for h in list(hbdclass.Host.hosts.keys()):
hbdclass.Host.hosts[h].dyn = h in dyndnshosts
hbdclass.Host.hosts[h].fixup()
for h in drophosts:
if h in Host.hosts:
del Host.hosts[h]
if verbose: print(("%s pickled hosts loaded" % len(Host.hosts)))
if h in hbdclass.Host.hosts:
del hbdclass.Host.hosts[h]
if verbose: print(("%s pickled hosts loaded" % len(hbdclass.Host.hosts)))
else:
if verbose: print("no pickled data")
@@ -960,7 +963,7 @@ servthread = threading.Thread(target=serv.serve_forever)
servthread.daemon = True
servthread.start()
Host.dnsQ = queue.Queue()
hbdclass.Host.dnsQ = queue.Queue()
dnsT = threading.Thread(target=dnsupdatethread)
dnsT.daemon = True
dnsT.start()
@@ -1010,8 +1013,8 @@ while running:
ts=time.strftime(tsfm[v], time.localtime(now))
if ts != lastfm[v]:
lastfm[v]=ts
for h in list(Host.hosts.keys()):
Host.hosts[h].hdwcounts[v] = [Host.hosts[h].doesack, Host.hosts[h].upcount]
for h in list(hbdclass.Host.hosts.keys()):
hbdclass.Host.hosts[h].hdwcounts[v] = [hbdclass.Host.hosts[h].doesack, hbdclass.Host.hosts[h].upcount]
if now >= rnext and now >= firstcheck:
rnext = now+1