From e1bc87901b78eac47748de1a19e8c3ff9f9793c7 Mon Sep 17 00:00:00 2001 From: James Meyer Date: Sat, 13 Oct 2012 10:52:16 -0500 Subject: xymon-server: hbnotes and dot file. replace . in hostname with _. This was needed because the dot file format does not like . in it --- abs/core/xymon/PKGBUILD | 4 +- abs/core/xymon/hbnotes.py | 258 ++++++++++++++++++++++++---------------------- 2 files changed, 138 insertions(+), 124 deletions(-) diff --git a/abs/core/xymon/PKGBUILD b/abs/core/xymon/PKGBUILD index 4c0eaed..52aabf9 100755 --- a/abs/core/xymon/PKGBUILD +++ b/abs/core/xymon/PKGBUILD @@ -1,7 +1,7 @@ pkgbase=xymon pkgname=(xymonserver xymonclient) pkgver=4.3.5 -pkgrel=40 +pkgrel=41 pkgdesc="Hobbit is a system for monitoring servers and networks. " license="GPL" arch=('i686' 'x86_64') @@ -125,7 +125,7 @@ md5sums=('31923ec126fe1c264fceb459d2175161' '2d88e59ab17114030da514ba3f0a5b64' 'ee608dcafc050d790e28647a670f6b60' 'b2f98ac0df013332deedc1efae0a270d' - 'efa1de1c917b58e00beadf3e386049b5' + 'a652448ebcae3f439c8f23369b69ecf2' '0f70e76a164f648f0a4a01110137cb20' 'f6921f0413215ae174e81306be80d37f' '54ba9d7bff5875150e511c608ffc1e6a' diff --git a/abs/core/xymon/hbnotes.py b/abs/core/xymon/hbnotes.py index b4c39bf..158bcd8 100644 --- a/abs/core/xymon/hbnotes.py +++ b/abs/core/xymon/hbnotes.py @@ -7,61 +7,22 @@ import sys import getopt import socket import os -global ignorehostlist -try: - import ignoreclient - ignorehostlist=ignoreclient.ignorehosts -except: - print "could not find the ignore list" - ignorehostlist="'ignoreme'" +def create_dot_file(): + try: + import ignoreclient + ignorehostlist=ignoreclient.ignorehosts + except: + print "could not find the ignore list" + ignorehostlist="'ignoreme'" -def createdropdown(currenthostype): - dir = "/data/storage/disk0/backup/system_backups" - dropdown=" " - dropdown=''' - Restore database - -
- Backup database
- Optimize database
- ''' - if currenthostype == "Master_backend": - dropdown+='Shutdown All Systems (expect MBE)
\n' - #dropdown+='''Update All Systems - #
- #
- #
''' - - dropdown+='''

\n''' - return dropdown - -def main(argv): db = MySQLdb.connect(host="localhost", user="mythtv", passwd="mythtv", db="mythconverg") - - # create a cursor cursor = db.cursor() -#------------------------------write client-config------------------------------------------------ SQL="SELECT DISTINCT(hostname) from settings where hostname not in(%s)" cursor.execute(SQL %ignorehostlist) result = cursor.fetchall() @@ -77,19 +38,20 @@ def main(argv): dotslavefe=list() tunerdict = {} for row in result: - #print row[0] - #Find the system type + hostname = row[0] + dot_hostname = row[0].replace('.','_') + #Find the system type cursor.execute("select value,data from settings where hostname=%s and value in ('HostSystemType','HostRunFrontend');",(row)) hostvalues=cursor.fetchall() if len(hostvalues) == 2: if hostvalues[1][1] == 'Frontend_only': - frontonly+=","+row[0] - dotfrontend.append(row[0]) + frontonly+=","+dot_hostname + dotfrontend.append(dot_hostname) elif hostvalues[1][1] == 'Standalone': - stand_alone+=","+row[0] - dotMBE="MBE" + " [ label=\"" + row[0] + " \\n Standalone \" shapefile=\"/data/srv/httpd/htdocs/xymon/gifs/be.png\" fontcolor=\"white\" color=blue4 style=filled ] " - dotfrontend.append(row[0]) + stand_alone+=","+dot_hostname + dotMBE="MBE" + " [ label=\"" + dot_hostname + " \\n Standalone \" shapefile=\"/data/srv/httpd/htdocs/xymon/gifs/be.png\" fontcolor=\"white\" color=blue4 style=filled ] " + dotfrontend.append(dot_hostname) cursor.execute("select cardtype,defaultinput from capturecard where hostname=%s;",(row)) tuners=cursor.fetchall() tstring="" @@ -106,12 +68,12 @@ def main(argv): elif hostvalues[1][1] == 'Master_backend': if hostvalues[0][1]=='0': - masterbackend+=","+row[0] - dotMBE="MBE" + " [ label=\"" + row[0] + " \\n Master Backend \" shapefile=\"/data/srv/httpd/htdocs/xymon/gifs/be.png\" fontcolor=\"white\" color=blue4 style=filled ] " + masterbackend+=","+dot_hostname + dotMBE="MBE" + " [ label=\"" + dot_hostname + " \\n Master Backend \" shapefile=\"/data/srv/httpd/htdocs/xymon/gifs/be.png\" fontcolor=\"white\" color=blue4 style=filled ] " else: - masterbacked_w_fe+=","+row[0] - dotMBE="MBE" + " [ label=\"" + row[0] + " \\n Master Backend with frontend \" shapefile=\"/data/srv/httpd/htdocs/xymon/gifs/be.png\" fontcolor=\"white\" color=blue4 style=filled ] " - dotfrontend.append(row[0]) + masterbacked_w_fe+=","+dot_hostname + dotMBE="MBE" + " [ label=\"" + dot_hostname + " \\n Master Backend with frontend \" shapefile=\"/data/srv/httpd/htdocs/xymon/gifs/be.png\" fontcolor=\"white\" color=blue4 style=filled ] " + dotfrontend.append(dot_hostname) cursor.execute("select cardtype,defaultinput from capturecard where hostname=%s;",(row)) tuners=cursor.fetchall() tstring="" @@ -131,31 +93,31 @@ def main(argv): tuners=cursor.fetchall() #slave withoutfe if hostvalues[0][1]=='0': - slave+=","+row[0] - dotslave.append(row[0]) + slave+=","+dot_hostname + dotslave.append(dot_hostname) tstring="" if len(tuners) <= 0: - tunerdict["STUNER"+row[0]]="No Tuners" + tunerdict["STUNER"+dot_hostname]="No Tuners" else: for t in tuners: tstring+=t[0] tstring+=t[1] tstring+='\\n' - tunerdict["STUNER"+row[0]]=tstring + tunerdict["STUNER"+dot_hostname]=tstring else: #slave with fe tstring="" if len(tuners) <= 0: - tunerdict["STUNER"+row[0]]="No Tuners" + tunerdict["STUNER"+dot_hostname]="No Tuners" else: for t in tuners: tstring+=t[0] tstring+=t[1] tstring+='\\n' - tunerdict["STUNER"+row[0]]=tstring - slave_w_fe+=","+row[0] - dotslave.append(row[0]) - dotfrontend.append(row[0]) + tunerdict["STUNER"+dot_hostname]=tstring + slave_w_fe+=","+dot_hostname + dotslave.append(dot_hostname) + dotfrontend.append(dot_hostname) #----------------------------------Create graphviz dot files @@ -166,7 +128,7 @@ def main(argv): dotfile.write("graph [bgcolor=transparent]" + "\n" ) #print tunerdict -#define the nodes + #define the nodes dotfile.write( dotMBE + " \n" ) dotfile.write("tunermbe"+ " [ label= \"" + tunerdict["MBE"] + "\" , shapefile=\"/data/srv/httpd/htdocs/xymon/gifs/tuner.png\" fontcolor=\"white\" color=red ] \n" ) @@ -182,11 +144,7 @@ def main(argv): #adding slave to dot file dotfile.write("SLAVE"+fe + "[ label=\"slave backend \\n " + fe + "\" shapefile=\"/data/srv/httpd/htdocs/xymon/gifs/be.png\" fontcolor=\"white\" color=green ] \n" ) - - - - -#connect up the nodes! + #connect up the nodes! dotfile.write("tunermbe -> MBE [color=\"red\"] \n " ) for fe in dotfrontend: @@ -209,59 +167,51 @@ def main(argv): results=os.popen(cmd,'r') - #-------------------------------------------------- - #hobbitfile="/home/xymon/server/etc/hobbit-clients.cfg" - ###WHY WAS THIS HERE?? - #hobbitfile="/home/xymon/server/etc/tasks.cfg" - #hobbitf=open(hobbitfile,'r') - #hobbitconfig=hobbitf.readlines() - #hobbitf.close() - #hobbitf=open(hobbitfile,'w') - #print "FE",frontonly - #print "MBE",masterbackend - #print "MBEwFW",masterbacked_w_fe - #print "SLAVEwFW",slave_w_fe - #print "SLAVE",slave - #print "STD",stand_alone - #for line in hobbitconfig: - #if line.startswith("HOST"): - #cline=line.split("=") - #if cline[1].startswith("_FRONTEND_"): - #pline="HOST=" - #pline+=frontonly.strip() - #hobbitf.write(pline + "\n") - #elif cline[1].startswith("_MASTERBACKEND_"): - #pline="HOST=" - #pline+=masterbackend.strip() - ##print pline - #hobbitf.write(pline+ "\n") - #elif cline[1].startswith("_MASTERFRONTEND_"): - #pline="HOST=" - #pline+=masterbacked_w_fe.strip() - ##print pline - #hobbitf.write(pline+ "\n") - #elif cline[1].startswith("_SLAVEBACKEND_"): - #pline="HOST=" - #pline+=slave.strip() - ##print pline - #hobbitf.write(pline+ "\n") - #elif cline[1].startswith("_SLAVEFE_"): - #pline="HOST=" - #pline+=slave_w_fe.strip() - ##print pline - #hobbitf.write(pline+ "\n") - #else: - ##print line - #hobbitf.write(line) - #else: - ##print line - #hobbitf.write(line) -#-----------------------------------------------------------END CLIENT CONFIG - # execute SQL statement +def createdropdown(currenthostype): + dir = "/data/storage/disk0/backup/system_backups" + dropdown=" " + dropdown=''' + Restore database + +
+ Backup database
+ Optimize database
+ ''' + if currenthostype == "Master_backend": + dropdown+='Shutdown All Systems (expect MBE)
\n' + #dropdown+='''Update All Systems + #
+ #
+ #
''' + + dropdown+='''

\n''' + return dropdown + + +def create_notes(): + db = MySQLdb.connect(host="localhost", user="mythtv", passwd="mythtv", db="mythconverg") + # create a cursor + cursor = db.cursor() cursor.execute("SELECT DISTINCT(hostname) from settings") result = cursor.fetchall() @@ -448,5 +398,69 @@ function Do_it () string=('') file.write(string) + +def main(argv): + create_dot_file() + create_notes() + + +#------------------------------write client-config------------------------------------------------ + + + #-------------------------------------------------- + #hobbitfile="/home/xymon/server/etc/hobbit-clients.cfg" + + ###WHY WAS THIS HERE?? + #hobbitfile="/home/xymon/server/etc/tasks.cfg" + #hobbitf=open(hobbitfile,'r') + #hobbitconfig=hobbitf.readlines() + #hobbitf.close() + #hobbitf=open(hobbitfile,'w') + #print "FE",frontonly + #print "MBE",masterbackend + #print "MBEwFW",masterbacked_w_fe + #print "SLAVEwFW",slave_w_fe + #print "SLAVE",slave + #print "STD",stand_alone + + #for line in hobbitconfig: + #if line.startswith("HOST"): + #cline=line.split("=") + #if cline[1].startswith("_FRONTEND_"): + #pline="HOST=" + #pline+=frontonly.strip() + #hobbitf.write(pline + "\n") + #elif cline[1].startswith("_MASTERBACKEND_"): + #pline="HOST=" + #pline+=masterbackend.strip() + ##print pline + #hobbitf.write(pline+ "\n") + #elif cline[1].startswith("_MASTERFRONTEND_"): + #pline="HOST=" + #pline+=masterbacked_w_fe.strip() + ##print pline + #hobbitf.write(pline+ "\n") + #elif cline[1].startswith("_SLAVEBACKEND_"): + #pline="HOST=" + #pline+=slave.strip() + ##print pline + #hobbitf.write(pline+ "\n") + #elif cline[1].startswith("_SLAVEFE_"): + #pline="HOST=" + #pline+=slave_w_fe.strip() + ##print pline + #hobbitf.write(pline+ "\n") + #else: + ##print line + #hobbitf.write(line) + #else: + ##print line + #hobbitf.write(line) + +#-----------------------------------------------------------END CLIENT CONFIG + + # execute SQL statement + + if __name__ == "__main__": main(sys.argv[1:]) -- cgit v0.12