diff options
Diffstat (limited to 'abs/core/xymon/hobbit_myth_data.py')
-rw-r--r-- | abs/core/xymon/hobbit_myth_data.py | 94 |
1 files changed, 49 insertions, 45 deletions
diff --git a/abs/core/xymon/hobbit_myth_data.py b/abs/core/xymon/hobbit_myth_data.py index 62a6a49..e870754 100644 --- a/abs/core/xymon/hobbit_myth_data.py +++ b/abs/core/xymon/hobbit_myth_data.py @@ -5,11 +5,16 @@ import urllib2 import string -import time +import time , datetime import sys,os +from MythTV import MythBE,MythDB,MythLog + + BBLINE = '' BBCOLOR="green" DATE = time.strftime("%a %b %d %H:%M:%S %Z %Y", time.localtime(time.time())) + + if os.environ['BB']: #print os.environ['BB'] BB=os.environ['BB'] @@ -17,77 +22,76 @@ if os.environ['BBDISP']: #print os.environ['BBDISP'] BBDISP=os.environ['BBDISP'] if os.environ['MACHINE']: - #print os.environ['MACHINE'] - MACHINE=os.environ['MACHINE'] + #print os.environ['MACHINE'] + MACHINE=os.environ['MACHINE'] -def check_mtc(): +def check_mtc(mtc_file): try: - infile = open('/var/log/mythtv/myth_mtc.log', 'r') + infile = open(mtc_file, 'r') except(IOError), e: - print "couldn't open myth_mtc.log file" + print "couldn't open %s file" %mtc_file return False else: mtc = infile.readlines() - for i in mtc: - line=i infile.close() - if line.split()[0] == "Finished": - return True - else: - return False + for i in mtc: + line=i + if line.split()[0] == "Finished": + return True + else: + return False def find_data_left(): - try: - f = urllib2.urlopen("http://localhost:6544") - except: - print 'error: could not find Masterbackend' - days_left=-100 - return days_left -# except urllib2.HTTPError, e: -# if e.code != 200: -# print 'error: could not find Masterbackend' -# days_left=-100 - else: - MBE_data = f.readlines() - f.close() - - for line in MBE_data: - if line.find("guide data") != -1: - if line.find("no guide data") != -1: - days_left = 0 - else: - line=line.split("(") - line=line[1].split(")") - days_left=line[0].split()[0] - return days_left - - -mtc=check_mtc() + days_left = 0 + today = datetime.datetime.today() + try: + be=MythBE() + db = MythDB() + cursor = db.cursor() + except: + days_left = -100 + return days_left + try: + cmd="select max(starttime) from program ;" + cursor.execute(cmd) + results=cursor.fetchall()[0][0] + days_left = (results - today).days + except: + days_left = "Undetermined " + return days_left + + +now = datetime.datetime.now() +date = "%s-%s-%s" %(now.year, now.month, now.day) +mtc_file = "/var/log/%s/myth_mtc.log" %date + +mtc=check_mtc(mtc_file) num_days=find_data_left() if mtc: BBCOLOR="green" - msg="\n Maintenace script ran ok \n " + msg="\n Maintenance script ran ok \n %s \n " %mtc_file else: BBCOLOR ="yellow" - msg="\n Maintenance script didn't run \n" + msg="\n Maintenance script didn't run. \n %s \n" %mtc_file if num_days == 1 : BBCOLOR="yellow" - msg+="Only 1 day of guide data left" + msg+="\nOnly 1 day of guide data left" elif num_days == 0 : - BBCOLOR="yellow" - msg+="No guide data available" + BBCOLOR="red " + msg+="\nNo guide data available" + elif num_days == -100 : BBCOLOR="red" - msg+="Could not connect to master backend" + msg+="\nCould not connect to database" else: data_check = True BBCOLOR="green" - msg+="%s days of guide data" %(num_days) + msg+="\n %s days of guide data" %(num_days) BBLINE=msg LINE = "status " + MACHINE + ".myth_mtc" + " " + BBCOLOR + " " + DATE + " " + BBLINE |