diff options
Diffstat (limited to 'abs/mv-core/hobbitmon/hbnotes.py')
-rwxr-xr-x | abs/mv-core/hobbitmon/hbnotes.py | 344 |
1 files changed, 0 insertions, 344 deletions
diff --git a/abs/mv-core/hobbitmon/hbnotes.py b/abs/mv-core/hobbitmon/hbnotes.py deleted file mode 100755 index 5300e88..0000000 --- a/abs/mv-core/hobbitmon/hbnotes.py +++ /dev/null @@ -1,344 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# import MySQL module - -import MySQLdb -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 createdropdown(): - dropdown=''' - <input name="param2" type="radio" value="Restore" />Restore database </> - <select name="param1"> - ''' - dir = "/data/database_backup" - files = os.listdir(dir) - for file in os.listdir(dir): - if (file.endswith(".tgz")): - dropdown+='<option value="' + file + '">' + file + '</option> ' - dropdown+='</select> <br><input name="param2" type="radio" value="Backup" checked="checked" />Backup database<br /> ' - dropdown+='<input name="param2" type="radio" value="Optimize" />Optimize database<br /> ' - dropdown+='<input name="param2" type="radio" value="ShutdownAll" />Shutdown All Systems (expect MBE)<br /> ' - dropdown+='''<input name="param2" type="radio" value="UpdateAll" />Update All Systems </> <select name="param5"> - <option value="Myth_only">Myth only</option> - <option value="All"> Full System</option> - </select> - </br> - </br> - </br>''' - 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() - frontonly="_FRONTEND_" - masterbackend="_MASTERBACKEND_" - masterbacked_w_fe="_MASTERFE_" - slave_w_fe="_SLAVEFE_" - slave="_SLAVEBACKEND_" - stand_alone="_STANDALONE_" - dotMBE="" - dotfrontend=list() - dotslave=list() - dotslavefe=list() - tunerdict = {} - currenthostype='' - for row in result: - # print row[0] - #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]) - - elif hostvalues[1][1] == 'Standalone': - stand_alone+=","+row[0] - dotMBE="MBE" + " [ label=\"" + row[0] + " \\n Standalone \" shapefile=\"/data/srv/httpd/htdocs/hobbit/gifs/be.png\" fontcolor=\"white\" color=blue4 style=filled ] " - dotfrontend.append(row[0]) - cursor.execute("select cardtype,defaultinput from capturecard where hostname=%s;",(row)) - tuners=cursor.fetchall() - tstring="" - - if len(tuners) == 0: - tunerdict["MBE"]="no tuners \\n" - else: - for t in tuners: - tstring+=t[0] - tstring+=t[1] - tstring+='\\n' - tunerdict["MBE"]=tstring - - elif hostvalues[1][1] == 'Master_backend': - if hostvalues[0][1]=='0': - masterbackend+=","+row[0] - dotMBE=row[0] + "\\n Master Backend" - else: - masterbacked_w_fe+=","+row[0] - dotMBE="MBE" + " [ label=\"" + row[0] + " \\n Master Backend with frontend \" shapefile=\"/data/srv/httpd/htdocs/hobbit/gifs/be.png\" fontcolor=\"white\" color=blue4 style=filled ] " - cursor.execute("select cardtype,defaultinput from capturecard where hostname=%s;",(row)) - tuners=cursor.fetchall() - tstring="" - - if len(tuners) == 0: - tunerdict["MBE"]="no tuners \\n" - else: - for t in tuners: - tstring+=t[0] - tstring+=t[1] - tstring+='\\n' - tunerdict["MBE"]=tstring - dotfrontend.append(row[0]) - - elif hostvalues[1][1] == 'Slave_backend': - if hostvalues[0][1]=='0': - slave+=","+row[0] - dotslave.append(row[0]) - cursor.execute("select cardtype,defaultinput from capturecard where hostname=%s;",(row)) - tuners=cursor.fetchall() - tstring="" - for t in tuners: - tstring+=t[0] - tstring+=t[1] - tstring+='\\n' - tunerdict["STUNER"+row[0]]=tstring - #dotfrontend.append(row[0]) - else: - cursor.execute("select cardtype,defaultinput from capturecard where hostname=%s;",(row)) - tuners=cursor.fetchall() - tstring="" - for t in tuners: - tstring+=t[0] - tstring+=t[1] - tstring+='\\n' - tunerdict["STUNER"+row[0]]=tstring - print tstring - - slave_w_fe+=","+row[0] - dotslave.append(row[0]) - dotfrontend.append(row[0]) - -#----------------------------------Create graphviz dot files - dotfilename="/data/srv/hobbit/server/etc/mythdot" - - dotfile=open(dotfilename,'w') - dotfile.write("digraph G { " + "\n" ) - dotfile.write("graph [bgcolor=transparent]" + "\n" ) - - -#define the nodes - dotfile.write( dotMBE + " \n" ) - - dotfile.write("tunermbe"+ " [ label= \"" + tunerdict["MBE"] + "\" , shapefile=\"/data/srv/httpd/htdocs/hobbit/gifs/tuner.png\" fontcolor=\"white\" color=red ] \n" ) - - for fe in dotfrontend: - dotfile.write("FEND"+fe + "[ label=\"frontend \\n " + fe + "\" ,shapefile=\"/data/srv/httpd/htdocs/hobbit/gifs/tv.png\" , fontcolor=\"white\" , imagescale=\"true\" color=\"gold2\" ] \n" ) - - for fe in dotslave: - cslave="STUNER"+fe - if tunerdict[cslave] != "" : - dotfile.write(cslave+ " [ label= \"" + tunerdict[cslave] + "\" , shape=box ] \n" ) - dotfile.write("SLAVE"+fe + "[ label=\"slave backend \\n " + fe + "\" shapefile=\"/data/srv/httpd/htdocs/hobbit/gifs/be.png\" fontcolor=\"white\" color=green ] \n" ) - - -#connect up the nodes! - dotfile.write("tunermbe -> MBE [color=\"red\"] \n " ) - - for fe in dotfrontend: - dotfile.write("MBE -> FEND" + fe + "[color=\"gold2\"] \n " ) - - for fe in dotslave: - cslave="STUNER"+fe - dotfile.write("SLAVE" + fe + "-> MBE [color=\"green\"] \n " ) - if tunerdict[cslave] != "" : - dotfile.write(cslave + "-> SLAVE"+fe + "\n" ) - - - - dotfile.write("} " + "\n" ) - dotfile.close() - - - cmd="/usr/bin/unflatten -l6 -c3 -f " + dotfilename + " |/usr/bin/dot -Tpng -o/data/srv/httpd/htdocs/hobbit/gifs/network.png " - # cmd="/usr/bin/circo -Tpng -o/data/srv/httpd/htdocs/hobbit/gifs/network.png " + dotfilename - - results=os.popen(cmd,'r') - - #-------------------------------------------------- - hobbitfile="/data/srv/hobbit/server/etc/hobbit-clients.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 - cursor.execute("SELECT DISTINCT(hostname) from settings") - result = cursor.fetchall() - - for row in result: - cursor.execute("select value,data from settings where hostname=%s and value in ('HostSystemType','HostHwuuid');",(row)) - hostvalues=cursor.fetchall() - found_uuid="false" - filename="/data/srv/hobbit/server/www/notes/" - filename+=str(row[0]) - filename+=(".html") - - file = open(filename,'w') - string=''' - <html> - <head> - <style type="text/css">@import "/frame.css";</style> - </head> - ''' - file.write(string) - - - for i in range( 0 , len(hostvalues)): - value=hostvalues[i][0] - data=hostvalues[i][1] - currenthostype='' - currenthostname='' - if value == "HostHwuuid" : - if data != "blank" : - found_uuid="true" - uuid=data - if value == "HostSystemType" : - - currenthostname= str(row[0]).strip() - currenthostype=str(data).strip() - header="<h1>" + currenthostname + "(" + currenthostype + ") </h1>" - file.write(header + '\n') - - - if found_uuid == "true" : - string=str("http://smolt.mythvantage.com/client/show?uuid=") - string+=str(uuid) - file.write("<A href=\"" ) - file.write(string) - file.write("\" >" + str(uuid) + "</A>") - else: - file.write( "uuid not found, please submit a hardware profile" ) - - - - buttonform_top=''' - <div class="content" style="solid #aaa; width:500px; height:350px; overflow:auto; color:#FFF;text-align:left;"> - <form action="/process.py" method="get"> - ''' - - - buttonform_bottom=''' - <input name="param2" type="radio" value="Update" />Update System </> - <select name="param3"> - <option value="Myth_only">Myth only</option> - <option value="All"> Full System</option> - </select> - </br> - <input name="param2" type="radio" value="Kill" />Restart interface: </> - <select name="param6"> - <option value="killX">Full UI</option> - <option value="killmyth">MythFrontend</option> - </select> - </br> - <input name="param2" type="radio" value="Shutdown" />Shutdown System<br /> - <input name="param2" type="radio" value="Reboot" />Reboot System<br /> - <input name="param2" type="radio" value="WOL" />Wake on Lan<br /> - <input name="hiddenparam" type="hidden" value=" - ''' - oldurlform=''' - "/> - <input name="param4" type="hidden" value=" - ''' - - - closetag=''' - "/> - </br> - <input id="submitbutton" type="submit" /> - </form> - </div> - ''' - - if currenthostype == "Master_backend": - mbeoptions=createdropdown() - else: - mbeoptions='' - returnurl="/hobbit/notes/" - returnurl+=str(row[0]) - returnurl+=(".html") - file.write('</br> </br> ') - file.write(buttonform_top) - file.write(mbeoptions) - file.write(buttonform_bottom) - file.write(str(row[0])) - file.write(oldurlform) - file.write(returnurl) - file.write(closetag) - - string=(' </html>') - file.write(string) - -if __name__ == "__main__": - main(sys.argv[1:]) |