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)
|