Changeset 70
- Timestamp:
- 04/15/05 09:46:36 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/daemon/togad.py
r63 r70 1 1 #!/usr/bin/env python 2 2 3 from xml.sax import make_parser 3 import xml.sax 4 4 from xml.sax.handler import ContentHandler 5 5 import socket … … 172 172 if name == 'METRIC': 173 173 174 metricname = attrs s.get( 'NAME', "" )174 metricname = attrs.get( 'NAME', "" ) 175 175 176 176 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: 182 180 183 181 job_id = name.split( 'TOGA-JOB-' )[1] … … 185 183 186 184 valinfo = val.split( ' ' ) 185 print valinfo 187 186 188 187 for myval in valinfo: … … 190 189 name = valinfo.split( '=' )[0] 191 190 value = valinfo.split( '=' )[1] 191 192 #if name == ' 192 193 193 194 class GangliaXMLHandler( ContentHandler ): … … 290 291 291 292 s = None 293 fd = None 292 294 293 295 def __init__( self, host, port ): … … 297 299 self.port = port 298 300 self.connect() 301 self.makeFileDescriptor() 299 302 300 303 def connect( self ): … … 320 323 except socket.error, msg: 321 324 322 self.s.close() 323 self.s = None 325 self.disconnect() 324 326 continue 325 327 … … 336 338 if self.s: 337 339 self.s.close() 340 self.s.shutdown( 2 ) 338 341 self.s = None 339 342 … … 343 346 self.disconnect() 344 347 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 345 364 def getFileObject( self ): 346 365 """Connect, and return a file object""" 347 366 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 356 369 357 370 class GangliaXMLProcessor: … … 364 377 365 378 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 ) 369 389 370 390 def daemon( self ): … … 502 522 debug_msg( 7, self.printTime() + ' - parsethread(): started.' ) 503 523 debug_msg( 7, self.printTime() + ' - parsethread(): Parsing XML..' ) 504 ret = self.myParser.parse( self.myXMLGatherer.getFileObject() )524 #ret = self.myParser.parse( self.myXMLGatherer.getFileObject() ) 505 525 debug_msg( 7, self.printTime() + ' - parsethread(): Done parsing.' ) 506 526 debug_msg( 7, self.printTime() + ' - parsethread(): finished.' )
Note: See TracChangeset
for help on using the changeset viewer.