Changeset 855


Ignore:
Timestamp:
05/14/13 14:12:49 (11 years ago)
Author:
ramonb
Message:

jobarchived.py:

  • made data source polling interval parsing simpler
  • fixed: close() gmetad.conf after parsing is done
  • added: check if ARCHIVE_DATASOURCES is present in gmetad.conf: fatal error if not found
  • see #163
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/1.0/jobarchived/jobarchived.py

    r829 r855  
    15411541                if line.find( 'data_source' ) != -1 and line[0] != '#':
    15421542
    1543                     source        = { }
    1544                     source['name']    = line.split( '"' )[1]
    1545                     source_words    = line.split( '"' )[2].split( ' ' )
    1546 
    1547                     for word in source_words:
    1548 
    1549                         valid_interval = 1
    1550 
    1551                         for letter in word:
    1552 
    1553                             if letter not in string.digits:
    1554 
    1555                                 valid_interval = 0
    1556 
    1557                         if valid_interval and len(word) > 0:
    1558 
    1559                             source['interval'] = word
    1560                             debug_msg( 9, 'polling interval for %s = %s' %(source['name'], source['interval'] ) )
    1561    
    1562                     # No interval found, use Ganglia's default   
    1563                     if not source.has_key( 'interval' ):
     1543                    source                = { }
     1544                    source['name']        = line.split( '"' )[1]
     1545                    source_value_words    = line.split( '"' )[2].split( ' ' )
     1546
     1547                    check_interval        = source_value_words[0]
     1548
     1549                    try:
     1550
     1551                        source['interval'] = int( check_interval )
     1552                        debug_msg( 9, 'polling interval for %s = %s' %(source['name'], str( source['interval'] ) ) )
     1553                    except ValueError:
     1554
    15641555                        source['interval'] = 15
    15651556                        debug_msg( 9, 'polling interval for %s defaulted to 15' %(source['name']) )
    15661557
    15671558                    self.sources.append( source )
     1559
     1560        readcfg.close()
     1561
     1562    def clusterExists( self, source_name ):
     1563
     1564        for source in self.sources:
     1565
     1566            if source['name'] == source_name:
     1567
     1568                return True
     1569
     1570        return False
    15681571
    15691572    def getInterval( self, source_name ):
     
    19791982        if not os.path.exists( rrd_file ):
    19801983
    1981             interval    = self.config.getInterval( self.cluster )
     1984            interval     = self.config.getInterval( self.cluster )
    19821985            heartbeat    = 8 * int( interval )
    19831986
     
    20622065    """Threading start"""
    20632066
     2067    global ARCHIVE_DATASOURCES
     2068
    20642069    config             = GangliaConfigParser( GMETAD_CONF )
     2070
     2071    for ds in ARCHIVE_DATASOURCES:
     2072
     2073        if not config.clusterExists( ds ):
     2074
     2075            print "FATAL ERROR: Data source with name '%s' not found in %s" %( ds, GMETAD_CONF )
     2076            sys.exit( 1 )
     2077
    20652078    s_timeout          = int( config.getLowestInterval() - 1 )
    20662079
Note: See TracChangeset for help on using the changeset viewer.