From b6fb3906faee03056e4615f070251b8efc5097d9 Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Fri, 12 Oct 2012 15:26:25 -0500
Subject: xymon:  Change the way mtc check is done.  Now program guide  check
 is pulled from the BE instead of the local webpage.    Also move mtc log
 check to match /var/log/$DATE/myth_mtc.log

---
 abs/core/xymon/PKGBUILD            |  9 +++-
 abs/core/xymon/hobbit_myth_data.py | 94 ++++++++++++++++++++------------------
 abs/core/xymon/xymon.install       |  2 +-
 3 files changed, 57 insertions(+), 48 deletions(-)

diff --git a/abs/core/xymon/PKGBUILD b/abs/core/xymon/PKGBUILD
index 91f1256..4c0eaed 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=39
+pkgrel=40
 pkgdesc="Hobbit is a system for monitoring servers and networks. "
 license="GPL"
 arch=('i686' 'x86_64')
@@ -45,6 +45,7 @@ build() {
     ./configure
 
     make PKGBUILD=1|| return 1
+
 }
 
 package_xymonserver(){
@@ -72,6 +73,10 @@ package_xymonserver(){
 
       install -D  -m644 $startdir/src/logrotate-server.xymon $startdir/pkg/xymonserver/etc/logrotate.d/xymon-server
 
+# fix env for mythtb bindingds
+      echo "MYTHCONFDIR=/usr/share/mythtv" >> $startdir/pkg/xymonserver/home/xymon/etc/xymonserver.cfg 
+
+
       #copy in replacment icon set
       DOCDIR=$startdir/pkg/xymonserver/data/srv/httpd/htdocs/xymon
       cp -rp  $DOCDIR/gifs $DOCDIR/gifs.orig
@@ -130,7 +135,7 @@ md5sums=('31923ec126fe1c264fceb459d2175161'
          '0757294eec13771f8e63da23cf066796'
          '622f400fd098cbc43c203e3210a6694e'
          '84442377c6e914b65519076bda4e17a4'
-         '388dbe22d97198af0cd0bf1d18e96ce5'
+         'cd6e52b17f8582614bb52a8157d486c6'
          '67621b6c5a766ac03c5f407bdbdca810'
          '7ad4871af35f82c7824bb682b9325dba'
          '98e9242ae346f729b14cb195786571f2'
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
diff --git a/abs/core/xymon/xymon.install b/abs/core/xymon/xymon.install
index 36bbbaa..3c9680b 100644
--- a/abs/core/xymon/xymon.install
+++ b/abs/core/xymon/xymon.install
@@ -15,7 +15,7 @@ post_install() {
 
 
 	sed -i -e "s/localhost/$hostname/" /home/xymon/server/etc/hosts.cfg
-	#sed -i -e "s/\#/\# func/" /home/xymon/server/etc/hosts.cfg
+	sed -i -e "s/\# bbd/\# bbd func/" /home/xymon/server/etc/hosts.cfg
 	sed -i -e "s/localhost/$hostname/" /home/xymon/server/etc/xymonserver.cfg
 	chown -R nobody /home/xymon
 	chown -R nobody /data/srv/httpd/htdocs/xymon
-- 
cgit v0.12

