buildframework/helium/tools/common/python/scripts/filter_metadatalog.py
changeset 587 85df38eb4012
parent 217 0f5e3a7fb6af
equal deleted inserted replaced
217:0f5e3a7fb6af 587:85df38eb4012
    14 #
    14 #
    15 #Contributors:
    15 #Contributors:
    16 #
    16 #
    17 #Description:
    17 #Description:
    18 #===============================================================================
    18 #===============================================================================
       
    19 """ plugin that gets copied to raptor folder so that when raptor (SBS) runs it
       
    20     knows the format of the log files.
       
    21 """
    19 
    22 
    20 import os
    23 import os
    21 import sys
    24 import sys
    22 import raptor
       
    23 import filter_interface
    25 import filter_interface
    24 import re
       
    25 import xml.sax
       
    26 import datetime
       
    27 import time
       
    28 from xml.sax.handler import ContentHandler
       
    29 from xml.dom.minidom import parse, parseString
       
    30 from xml.sax.saxutils import XMLGenerator
       
    31 from xml.sax.xmlreader import AttributesNSImpl
       
    32 import codecs
       
    33 from sbsscanlogmetadata import SBSScanlogMetadata
    26 from sbsscanlogmetadata import SBSScanlogMetadata
    34 from optparse import OptionParser
       
    35 
    27 
       
    28 class FilterMetadataLog(filter_interface.Filter):
       
    29     """filter used by raptor for scanning metadata logs"""
    36 
    30 
    37 
       
    38 
       
    39 """ plugin that gets copied to raptor folder so that wehn raptor (SBS) runs it
       
    40     knows the format of the log files.
       
    41 """
       
    42 class FilterMetadataLog(filter_interface.Filter):
       
    43     """Log scanner for filter logs"""
       
    44     def open(self, raptor_instance):
    31     def open(self, raptor_instance):
    45         """Open a log file for the various I/O methods to write to."""
    32         """Open a log file for the various I/O methods to write to."""
    46         self.raptor = raptor_instance
    33         self.raptor = raptor_instance
    47         self.logFileName = self.raptor.logFileName
    34         self.logFileName = self.raptor.logFileName
    48         self.scanlog = SBSScanlogMetadata()
    35         self.scanlog = SBSScanlogMetadata()
    49 
    36 
    50         # insert the time into the log file name
    37         # insert the time into the log file name
    51         if self.logFileName:
    38         if self.logFileName:
    52             self.logFileName.path = self.logFileName.path.replace("%TIME",
    39             self.logFileName.path = self.logFileName.path.replace("%TIME",
    53                     self.raptor.timestring)
    40                     self.raptor.timestring)
    54     
       
    55             try:
    41             try:
    56                 dirname = str(self.raptor.logFileName.Dir())
    42                 dirname = str(self.raptor.logFileName.Dir())
    57                 if dirname and not os.path.isdir(dirname):
    43                 if dirname and not os.path.isdir(dirname):
    58                     os.makedirs(dirname)
    44                     os.makedirs(dirname)
    59             except Exception, e_error:
    45             except Exception:
    60                 return False
    46                 return False
    61             return  self.scanlog.initialize(self.logFileName)
    47             return  self.scanlog.initialize(self.logFileName)
    62         else:
    48         else:
    63             self.out = sys.stdout
    49             self.out = sys.stdout
    64                 
       
    65         return True
    50         return True
    66 
    51 
    67     def write(self, text):
    52     def write(self, text):
    68         """write the text to the opened file"""
    53         """write the text to the opened file"""
    69         return self.scanlog.write(text)
    54         return self.scanlog.write(text)