summaryrefslogtreecommitdiffstats
path: root/abs/mv-core/hobbitmon/hobbitadd.py
diff options
context:
space:
mode:
Diffstat (limited to 'abs/mv-core/hobbitmon/hobbitadd.py')
-rwxr-xr-xabs/mv-core/hobbitmon/hobbitadd.py87
1 files changed, 87 insertions, 0 deletions
diff --git a/abs/mv-core/hobbitmon/hobbitadd.py b/abs/mv-core/hobbitmon/hobbitadd.py
new file mode 100755
index 0000000..b8ae15d
--- /dev/null
+++ b/abs/mv-core/hobbitmon/hobbitadd.py
@@ -0,0 +1,87 @@
+#!/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
+
+
+def readbb():
+ global bblist
+ try:
+ infile = open('/data/srv/hobbit/etc/bb-hosts', 'r')
+ except(IOError), e:
+ print "couldn't open bb-hosts file"
+ sys.exit(1)
+ else:
+ bblist = infile.readlines()
+ infile.close()
+
+
+def findghosts():
+ global infile
+ global bblist
+ global ghostitems
+ global numberitems
+ try:
+ f = urllib2.urlopen("http://localhost/hobbit/hobbit-cgi/hobbit-ghosts.sh?SORT=name&MAXAGE=300&TEXT")
+ except urllib2.HTTPError, e:
+ if e.code != 200:
+ print 'error find ghost list'
+ sys.exit(1)
+ else:
+ ghostitems = f.readlines()
+ f.close()
+ numberitems = len(ghostitems)
+
+
+def makenewbb():
+ global bblist
+ global ghostitems
+ global numberitems
+ global numinserts
+ numinserts=0
+ outlist = []
+ for item in bblist:
+ if item not in outlist:
+ outlist.append(item)
+
+ for item in ghostitems:
+ line = item.rstrip()
+ nline = "%s #func" % (line)
+ nline = nline + '\n'
+ if nline not in outlist:
+ outlist.append(nline)
+ print "adding: " + nline
+ numinserts = numinserts + 1
+ if numinserts > 0:
+ outfile = open("/data/srv/hobbit/etc/bb-hosts","w")
+ #outfile = open("/tmp/new-bb","w")
+ for i in outlist:
+ outfile.write(i + '\n' )
+ outfile.close
+
+
+global infile
+global bblist
+global ghostitems
+global numberitems
+global numinserts
+
+readbb()
+findghosts()
+print numberitems
+if numberitems > 0:
+ makenewbb()
+else:
+ print "nothing to add"
+
+
+if numinserts < 1:
+ sys.exit(1)
+else:
+ sys.exit(0)
+
+