diff options
Diffstat (limited to 'abs/core/supplemental-web/grabkey.py')
-rw-r--r-- | abs/core/supplemental-web/grabkey.py | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/abs/core/supplemental-web/grabkey.py b/abs/core/supplemental-web/grabkey.py new file mode 100644 index 0000000..66d630b --- /dev/null +++ b/abs/core/supplemental-web/grabkey.py @@ -0,0 +1,111 @@ +#!/usr/bin/python +#polls the hobbit server for ghost clients. If it finds ghosts it will make a new bb-hosts file +#with the new clients. +#Will not add duplicate clients +#return code of 0 means a new file was written, anything else is an error or no inserts occured +import urllib2 +import string +import sys +import os + +def readkeyfile(): + global keylist + try: + infile = open('/data/home/mythtv/.ssh/authorized_keys', 'r') + except(IOError), e: + keylist='' + else: + keylist = infile.readlines() + infile.close() + + +def grabkey(server): + global numberlines + global mbekey + url="http://" + server + ":1337/serverkey.cgi" + + try: + f = urllib2.urlopen(url) + except urllib2.HTTPError, e: + if e.code != 200: + print 'error find key' + sys.exit(1) + else: + mbekey = f.readlines() + f.close() + numberlines = len(mbekey) + #print mbekey + + +def makenewkeyfile(): + global keylist + global mbekey + global numberlines + global numinserts + numinserts=0 + outlist = [] + for item in keylist: + if item not in outlist: + outlist.append(item) + + for item in mbekey: +# line = item.rstrip() + #nline = "%s #" % (line) + #nline = nline + '\n' + if item not in outlist: + outlist.append(item) + #print "adding: " + item + numinserts = numinserts + 1 + if numinserts > 0: + try: + outfile = open("/data/home/mythtv/.ssh/authorized_keys","w") + except(IOError), e: + os.system('mkdir -p /data/home/mythtv/.ssh') + outfile = open("/data/home/mythtv/.ssh/authorized_keys","w") + for i in outlist: + outfile.write(i + '\n' ) + outfile.close + os.system('chown -R mythtv /data/home/mythtv/.ssh') + os.system('chmod 700 /data/home/mythtv/.ssh/authorized_keys') + + +global infile +global keylist +global numberlines +global numinserts +global mbekey +numinserts = 0 +readkeyfile() + +#print numberlines +#print mbekey + +try: + infile = open('/etc/systemconfig', 'r') +except(IOError), e: + sys.exit(1) +else: + keylist = infile.readlines() + infile.close() +for item in keylist: + if item.startswith("dbhost"): + itemlist=item.split("=") + server=itemlist[1].strip() + server=server.rstrip() + server=server.strip('"') + server=server.rstrip('"') +grabkey(server) + + +if numberlines > 0: + makenewkeyfile() +else: + print "nothing to add" + + +if numinserts < 1: + sys.exit(1) +else: + sys.exit(0) + + |