Diff for /checkStation/checkStation.py between versions 1.1 and 1.5

version 1.1, 2005/05/15 08:35:00 version 1.5, 2005/05/15 12:12:15
Line 6  import os Line 6  import os
 import os.path  import os.path
 import time  import time
   
 module_list=['33335','22222','ff']  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']
 grepString="DragThing"  
   # station non checked: 31211
   
   grepString="firefox-bin"
   
 def zptFile(self, path, orphaned=False):  def zptFile(self, path, orphaned=False):
     """returns a page template file from the product"""      """returns a page template file from the product"""
Line 30  def getLastLine(lines): Line 33  def getLastLine(lines):
   
 def checkFormat(line,formats):  def checkFormat(line,formats):
     """checke formats"""      """checke formats"""
       
     splitted=line.split("GET")      splitted=line.split("GET")
     splitted=splitted[1].split()      splitted=splitted[1].split()
       
     splitted2=splitted[0].split("/")      splitted2=splitted[0].split("/")
   
       try:
     if splitted2[4][0:3] in formats:      if splitted2[4][0:3] in formats:
         return True          return True
     else:      else:
         return False          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):  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("]")
   
   ##     timestr=tmp[0]
           
     tmp=line.split("[")  ##     
     tmp=tmp[1].split("]")  
       #pound log
       tmp=line.split()
       timestr=tmp[2]
           
     timestr=tmp[0]  
           
     split=timestr.split(":")      split=timestr.split(":")
     time1=int(split[1])*60+int(split[2])      time1=int(split[0])*60+int(split[1])
   
     localtime=time.asctime(time.localtime())      localtime=time.asctime(time.localtime())
       
     split=localtime.split(":")      split=localtime.split(":")
     time2=int(split[0].split()[3])*60+int(split[1])      time2=int(split[0].split()[3])*60+int(split[1])
   
Line 64  class checkStation(SimpleItem): Line 87  class checkStation(SimpleItem):
   
     meta_type="check Media Stations"      meta_type="check Media Stations"
   
     def asctime(self):      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)          return time.asctime(tm)
           except:
           return "never"
                   
     def __init__(self, id, path):      def __init__(self, id, path):
         """init"""          """init"""
Line 73  class checkStation(SimpleItem): Line 105  class checkStation(SimpleItem):
         self.id=id          self.id=id
         self.modulOverview={}          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"""          """check station with nr nr"""
         txt=[]          txt=[]
   
Line 88  class checkStation(SimpleItem): Line 120  class checkStation(SimpleItem):
             return True,"",0              return True,"",0
   
         cmpT=cmpLine(line)          cmpT=cmpLine(line)
           ip=getIP(line)
   
         if not checkFormat(line,formats):          if not checkFormat(line,formats):
             # teste ob letzte Zeile vom format in formats              # teste ob letzte Zeile vom format in formats
   
             return True,line,cmpT              return True,line,cmpT,ip
   
   
         if cmpT > time:          if cmpT > time:
             return False,line,cmpT              return False,line,cmpT,ip
   
         else:          else:
             return True,line,cmpT              return True,line,cmpT,ip
   
     def getModuls(self):      def getModuls(self):
         """getModuls"""          """getModuls"""
Line 113  class checkStation(SimpleItem): Line 146  class checkStation(SimpleItem):
   
     ips={"22222":"127.0.0.1","33335":"127.0.0.2"}      ips={"22222":"127.0.0.1","33335":"127.0.0.2"}
           
     def rebootStation(self,modul):      def rebootStation(self,ip):
         """neustart"""          """neustart"""
         ip=self.ips[modul]          retStr=""
           #ip=self.ips[modul]
   
         str="""ssh root@%s "ps -xa | grep %s" """          str="""ssh root@%s "ps -xa | grep %s" """
         rets=os.popen(str%(ip,grepString)).readlines()          rets=os.popen(str%(ip,grepString)).readlines()
Line 125  class checkStation(SimpleItem): Line 159  class checkStation(SimpleItem):
             if ret.find("grep") <= 0:              if ret.find("grep") <= 0:
                 process=ret.split()[0]                  process=ret.split()[0]
                 str="""ssh root@%s kill -9 %s """                  str="""ssh root@%s kill -9 %s """
                 rets=os.popen(str%(ip,process)).readlines()                  os.popen(str%(ip,process)).readlines()
                 print "WW",str%(ip,process)                  retStr+=str%(ip,process) + "<br>"
           return retStr
                   
     def checkRebootDead(self,timer=5):      def checkRebootDead(self,timer=10):
         """checks and reboots non responding firefox"""          """checks and reboots non responding firefox"""
         self.lastCheck=time.localtime()          self.lastCheck=time.localtime()
           ret="<html><body><p>"
                   
         for modul in self.getModuls():          for modul in self.getModuls():
   
             checked=self.checkStation(modul,time=timer,formats=["VID"])              checked=self.checkStation(modul,time=timer)
             if not checked[0]:              if not checked[0]:
   
                 self.rebootStation(modul)                  ret+=self.rebootStation(checked[3])
                 if not hasattr(self,'modulOverview'):                  if not hasattr(self,'modulOverview'):
                     setattr(self,'modulOverview',{})                      setattr(self,'modulOverview',{})
                 self.modulOverview[modul]=time.localtime()                  self.modulOverview[modul]=time.localtime()
                                   
           return ret
   
     def rebootOverview(self):      def rebootOverview(self):
         """give Overview"""          """give Overview"""

Removed from v.1.1  
changed lines
  Added in v.1.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>