--- checkStation/checkStation.py 2005/05/15 08:35:00 1.1.1.1
+++ checkStation/checkStation.py 2005/05/15 12:12:15 1.5
@@ -6,8 +6,11 @@ import os
import os.path
import time
-module_list=['33335','22222','ff']
-grepString="DragThing"
+module_list=['11150','11220','11240','11340','12010','13110','13210','13310','13500','20610','21210','21600','22310','23110','24110','24212','24231','24241','24251','24321','24341','24411','24421','24431','24441','24511','24521','30511','31111','31120','31131','31142','31151','31161','31171','31221','31231','31252','31305','31410','32010','33100']
+
+# station non checked: 31211
+
+grepString="firefox-bin"
def zptFile(self, path, orphaned=False):
"""returns a page template file from the product"""
@@ -30,29 +33,49 @@ def getLastLine(lines):
def checkFormat(line,formats):
"""checke formats"""
+
splitted=line.split("GET")
splitted=splitted[1].split()
+
splitted2=splitted[0].split("/")
- if splitted2[4][0:3] in formats:
+ try:
+ if splitted2[4][0:3] in formats:
return True
- else:
+ else:
+ return False
+ except:
return False
-
+def getIP(line):
+ """ip aus pound log line"""
+ splitted=line.split()
+ try:
+ return splitted[5]
+ except:
+ return 0
+
def cmpLine(line):
- """gibt minuten differenz der letzen beiden eintraege"""
+ """gibt minuten zwischen letztem Eintrag und localtime"""
+ # Z2.log
+ ## tmp=line.split("[")
+## tmp=tmp[1].split("]")
- tmp=line.split("[")
- tmp=tmp[1].split("]")
+## timestr=tmp[0]
+
+##
+
+ #pound log
+ tmp=line.split()
+ timestr=tmp[2]
- timestr=tmp[0]
split=timestr.split(":")
- time1=int(split[1])*60+int(split[2])
+ time1=int(split[0])*60+int(split[1])
localtime=time.asctime(time.localtime())
+
split=localtime.split(":")
time2=int(split[0].split()[3])*60+int(split[1])
@@ -64,16 +87,25 @@ class checkStation(SimpleItem):
meta_type="check Media Stations"
- def asctime(self):
- return time.asctime(tm)
-
+ manage_options=SimpleItem.manage_options+(
+ {'label':'Overview Stations','action':'overviewStations'},
+ {'label':'change check','action':'changeCheckStationForm'},
+ {'label':'checkRebootDead','action':'checkRebootDead'},
+ {'label':'Reboot Overview','action':'rebootOverview'},
+ )
+ def asctime(self,tm):
+ try:
+ return time.asctime(tm)
+ except:
+ return "never"
+
def __init__(self, id, path):
"""init"""
self.path=path #pfad fuer logfile
self.id=id
self.modulOverview={}
- def checkStation(self,nr,time=5,formats=["VID"]):
+ def checkStation(self,nr,time=10,formats=["VID","BRA","ZOG"]):
"""check station with nr nr"""
txt=[]
@@ -88,18 +120,19 @@ class checkStation(SimpleItem):
return True,"",0
cmpT=cmpLine(line)
-
+ ip=getIP(line)
+
if not checkFormat(line,formats):
# teste ob letzte Zeile vom format in formats
- return True,line,cmpT
+ return True,line,cmpT,ip
if cmpT > time:
- return False,line,cmpT
+ return False,line,cmpT,ip
else:
- return True,line,cmpT
+ return True,line,cmpT,ip
def getModuls(self):
"""getModuls"""
@@ -113,9 +146,10 @@ class checkStation(SimpleItem):
ips={"22222":"127.0.0.1","33335":"127.0.0.2"}
- def rebootStation(self,modul):
+ def rebootStation(self,ip):
"""neustart"""
- ip=self.ips[modul]
+ retStr=""
+ #ip=self.ips[modul]
str="""ssh root@%s "ps -xa | grep %s" """
rets=os.popen(str%(ip,grepString)).readlines()
@@ -125,23 +159,26 @@ class checkStation(SimpleItem):
if ret.find("grep") <= 0:
process=ret.split()[0]
str="""ssh root@%s kill -9 %s """
- rets=os.popen(str%(ip,process)).readlines()
- print "WW",str%(ip,process)
+ os.popen(str%(ip,process)).readlines()
+ retStr+=str%(ip,process) + "
"
+ return retStr
- def checkRebootDead(self,timer=5):
+ def checkRebootDead(self,timer=10):
"""checks and reboots non responding firefox"""
self.lastCheck=time.localtime()
+ ret="
" for modul in self.getModuls(): - checked=self.checkStation(modul,time=timer,formats=["VID"]) + checked=self.checkStation(modul,time=timer) if not checked[0]: - self.rebootStation(modul) + ret+=self.rebootStation(checked[3]) if not hasattr(self,'modulOverview'): setattr(self,'modulOverview',{}) self.modulOverview[modul]=time.localtime() - + + return ret def rebootOverview(self): """give Overview"""