summaryrefslogtreecommitdiffstats
path: root/abs/core/xymon/hobbit_myth_data.py
blob: 618e2ac0c55ab693eb7c53a2837844f9c45ea6d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#!/usr/bin/python2
# checks for the number of days of guide data left
# make sure myth_mtc ran ok


import urllib2
import string
import time , datetime
import sys,os
from MythTV import MythDB,MythLog


#0=green
#1=yellow
#2=red



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']
if os.environ['BBDISP']:
    #print os.environ['BBDISP']
    BBDISP=os.environ['BBDISP']
if os.environ['MACHINE']:
    #print os.environ['MACHINE']
    MACHINE=os.environ['MACHINE']

#MACHINE='a'
#BB='b'
#BBDISP='12'


def set_color_code (current_color, new_color):
    if new_color > current_color:
        color = new_color
    else:
        color = current_color
    return color

def set_color(color_code):
    color = "unknown"
    if color_code == 0 :
        color = "green"
    elif color_code == 1 :
        color = "yellow"
    elif color_code == 2 :
        color = "red"
    
    return color
    
    



def check_mtc(mtc_file):
    line=''
    try:
        infile = open(mtc_file, 'r')
    except(IOError), e:
        print "couldn't open %s file" %mtc_file
        return False
    else:
        mtc = infile.read()
        infile.close()
        if "Finished Maintenance" in mtc:
            return True
        else:
            return False

def find_data_left():
    days_left = 0
    today = datetime.datetime.today()
    try:
        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)
date = (now.strftime('%Y-%m-%d')) 
#2013-12-03
mtc_file = "/var/log/%s/%s_myth_mtc.log" %(date,os.uname()[1])

mtc=check_mtc(mtc_file)
num_days=find_data_left()


current_color=0

if mtc:
    current_color = set_color_code(current_color,0)
    msg="\n Maintenance completed successfully. \n       Log file: %s\n    " %mtc_file
else:
    current_color = set_color_code(current_color,2)
    msg='''
 ** Maintenance did NOT complete sucessfully. **
    
    The system may have been busy.
    See the log for more information.
    Log file: %s  \n''' %mtc_file

if num_days ==  1 :
    current_color = set_color_code(current_color,1)
    msg+="\n ** Only 1 day of guide data left **"
elif num_days == 0 :
    current_color = set_color_code(current_color,2)
    msg+="\n ** No guide data available **"

elif num_days == -100 :
    current_color = set_color_code(current_color,2)
    msg+="\n ** Could not connect to database ** "

elif num_days == "Undetermined" :
    current_color = set_color_code(current_color,1)
    msg+="\n ** Could not determine how many days of guide data are available ** "    

else:
    data_check = True
    current_color = set_color_code(current_color,0)
    msg+="\n %s days of guide data" %(num_days)

if os.path.isfile("/data/storage/disk0/backup/system_backups/remote_backup_failed.txt"):
    current_color = set_color_code(current_color,1)
    msg+="\n\n ** Remote backup jobs are queued **"
else:
    msg+="\n\n No remote backup jobs queued"




BBLINE = msg
BBCOLOR = set_color(current_color)

LINE = "status " + MACHINE  + ".myth_mtc" + " " + BBCOLOR +  " " + DATE + " " + BBLINE
cmd = BB + ' ' + BBDISP + ' "' + LINE + '"'
os.system(cmd)
#print cmd
#print BBLINE
#print BBCOLOR



sys.exit(0)