Changeset 71 for trunk


Ignore:
Timestamp:
04/15/05 11:03:19 (19 years ago)
Author:
bastiaans
Message:

daemon/togad.py:

  • Added XML Error Handler
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/daemon/togad.py

    r70 r71  
    22
    33import xml.sax
    4 from xml.sax.handler import ContentHandler
     4import xml.sax.handler
    55import socket
    66import sys
     
    154154                return 0
    155155
    156 class TorqueXMLHandler( ContentHandler ):
     156class TorqueXMLHandler( xml.sax.handler.ContentHandler ):
    157157        """Parse Torque's jobinfo XML from our plugin"""
    158158
     
    192192                                        #if name == '
    193193
    194 class GangliaXMLHandler( ContentHandler ):
     194class GangliaXMLHandler( xml.sax.handler.ContentHandler ):
    195195        """Parse Ganglia's XML"""
    196196
     
    287287                return 0
    288288
     289class XMLErrorHandler( xml.sax.handler.ErrorHandler ):
     290
     291        def error( self, exception ):
     292                """Recoverable error"""
     293
     294                debug_msg( 0, 'Recoverable error ' + str( exception ) )
     295
     296        def fatalError( self, exception ):
     297                """Non-recoverable error"""
     298
     299                exception_str = str( exception )
     300
     301                # Ignore 'no element found' errors
     302                if exception_str.find( 'no element found' ) != -1:
     303                        debug_msg( 1, 'No XML data found: probably socket not (re)connected.' )
     304                        return 0
     305
     306                debug_msg( 0, 'Non-recoverable error ' + str( exception ) )
     307                sys.exit( 1 )
     308
     309        def warning( self, exception ):
     310                """Warning"""
     311
     312                debug_msg( 0, 'Warning ' + str( exception ) )
     313
    289314class GangliaXMLGatherer:
    290315        """Setup a connection and file object to Ganglia's XML"""
     
    337362
    338363                if self.s:
     364                        self.s.shutdown( 2 )
    339365                        self.s.close()
    340                         self.s.shutdown( 2 )
    341366                        self.s = None
    342367
     
    378403                self.myXMLGatherer = GangliaXMLGatherer( ARCHIVE_XMLSOURCE.split( ':' )[0], ARCHIVE_XMLSOURCE.split( ':' )[1] )
    379404                self.myXMLSource = self.myXMLGatherer.getFileObject()
    380                 #self.myParser = make_parser()   
    381405                while( 1 ):
    382406                        print 'parse'
    383                         xml.sax.parse( self.getFileObject(), TorqueXMLHandler() )
     407                        self.myXMLGatherer.makeFileDescriptor()
     408                        self.myXMLSource = self.myXMLGatherer.getFileObject()
     409                        xml.sax.parse( self.myXMLSource, TorqueXMLHandler(), XMLErrorHandler() )
    384410                        print 'sleep'
    385411                        time.sleep( 1 )
Note: See TracChangeset for help on using the changeset viewer.