Changeset 70


Ignore:
Timestamp:
04/15/05 09:46:36 (19 years ago)
Author:
bastiaans
Message:

daemon/togad.py:

  • Rewrote connection handling a bit error occured when gmetad was down
  • Misc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/daemon/togad.py

    r63 r70  
    11#!/usr/bin/env python
    22
    3 from xml.sax import make_parser
     3import xml.sax
    44from xml.sax.handler import ContentHandler
    55import socket
     
    172172                if name == 'METRIC':
    173173
    174                         metricname = attrss.get( 'NAME', "" )
     174                        metricname = attrs.get( 'NAME', "" )
    175175
    176176                        if metricname == 'TOGA-HEARTBEAT':
    177 
    178                                 if not self.heartbeat:
    179                                         self.heartbeat = attrs.get( 'VAL', "" )
    180 
    181                         if metricname.find( 'TOGA-JOB' ) != -1:
     177                                self.heartbeat = attrs.get( 'VAL', "" )
     178
     179                        elif metricname.find( 'TOGA-JOB' ) != -1:
    182180
    183181                                job_id = name.split( 'TOGA-JOB-' )[1]
     
    185183
    186184                                valinfo = val.split( ' ' )
     185                                print valinfo
    187186
    188187                                for myval in valinfo:
     
    190189                                        name = valinfo.split( '=' )[0]
    191190                                        value = valinfo.split( '=' )[1]
     191
     192                                        #if name == '
    192193
    193194class GangliaXMLHandler( ContentHandler ):
     
    290291
    291292        s = None
     293        fd = None
    292294
    293295        def __init__( self, host, port ):
     
    297299                self.port = port
    298300                self.connect()
     301                self.makeFileDescriptor()
    299302
    300303        def connect( self ):
     
    320323                        except socket.error, msg:
    321324
    322                                 self.s.close()
    323                                 self.s = None
     325                                self.disconnect()
    324326                                continue
    325327
     
    336338                if self.s:
    337339                        self.s.close()
     340                        self.s.shutdown( 2 )
    338341                        self.s = None
    339342
     
    343346                self.disconnect()
    344347
     348        def reconnect( self ):
     349                """Reconnect"""
     350
     351                if self.s:
     352                        self.disconnect()
     353
     354                self.connect()
     355
     356        def makeFileDescriptor( self ):
     357                """Make file descriptor that points to our socket connection"""
     358
     359                self.reconnect()
     360
     361                if self.s:
     362                        self.fd = self.s.makefile( 'r' )
     363
    345364        def getFileObject( self ):
    346365                """Connect, and return a file object"""
    347366
    348                 if self.s:
    349                         # Apearantly, only data is received when a connection is made
    350                         # therefor, disconnect and connect
    351                         #
    352                         self.disconnect()
    353                         self.connect()
    354 
    355                 return self.s.makefile( 'r' )
     367                if self.fd:
     368                        return self.fd
    356369
    357370class GangliaXMLProcessor:
     
    364377
    365378                self.myXMLGatherer = GangliaXMLGatherer( ARCHIVE_XMLSOURCE.split( ':' )[0], ARCHIVE_XMLSOURCE.split( ':' )[1] )
    366                 self.myParser = make_parser()   
    367                 self.myHandler = GangliaXMLHandler( self.config )
    368                 self.myParser.setContentHandler( self.myHandler )
     379                self.myXMLSource = self.myXMLGatherer.getFileObject()
     380                #self.myParser = make_parser()   
     381                while( 1 ):
     382                        print 'parse'
     383                        xml.sax.parse( self.getFileObject(), TorqueXMLHandler() )
     384                        print 'sleep'
     385                        time.sleep( 1 )
     386                #self.myHandler = GangliaXMLHandler( self.config )
     387                #self.myHandler = TorqueXMLHandler( )
     388                #self.myParser.setContentHandler( self.myHandler )
    369389
    370390        def daemon( self ):
     
    502522                debug_msg( 7, self.printTime() + ' - parsethread(): started.' )
    503523                debug_msg( 7, self.printTime() + ' - parsethread(): Parsing XML..' )
    504                 ret = self.myParser.parse( self.myXMLGatherer.getFileObject() )
     524                #ret = self.myParser.parse( self.myXMLGatherer.getFileObject() )
    505525                debug_msg( 7, self.printTime() + ' - parsethread(): Done parsing.' )
    506526                debug_msg( 7, self.printTime() + ' - parsethread(): finished.' )
Note: See TracChangeset for help on using the changeset viewer.