<s> """<STR_LIT>""" <EOL> import diamond . collector <EOL> import subprocess <EOL> import os <EOL> from diamond . collector import str_to_bool <EOL> class NagiosStatsCollector ( diamond . collector . Collector ) : <EOL> def get_default_config_help ( self ) : <EOL> config_help = super ( NagiosStatsCollector , <EOL> self ) . get_default_config_help ( ) <EOL> config_help . update ( { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> } ) <EOL> return config_help <EOL> def get_default_config ( self ) : <EOL> """<STR_LIT>""" <EOL> config = super ( NagiosStatsCollector , self ) . get_default_config ( ) <EOL> config . update ( { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:path>' : '<STR_LIT>' <EOL> } ) <EOL> return config <EOL> def collect ( self ) : <EOL> if ( ( not os . access ( self . config [ '<STR_LIT>' ] , os . X_OK ) or <EOL> ( str_to_bool ( self . config [ '<STR_LIT>' ] ) and <EOL> not os . access ( self . config [ '<STR_LIT>' ] , os . X_OK ) ) ) ) : <EOL> return <EOL> command = [ self . config [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' , "<STR_LIT:U+002C>" . join ( self . config [ '<STR_LIT>' ] ) , <EOL> '<STR_LIT>' ] <EOL> if str_to_bool ( self . config [ '<STR_LIT>' ] ) : <EOL> command . insert ( <NUM_LIT:0> , self . config [ '<STR_LIT>' ] ) <EOL> p = subprocess . Popen ( command , <EOL> stdout = subprocess . PIPE ) . communicate ( ) [ <NUM_LIT:0> ] [ : - <NUM_LIT:1> ] <EOL> for i , v in enumerate ( p . split ( "<STR_LIT:\n>" ) ) : <EOL> metric_name = self . config [ '<STR_LIT>' ] [ i ] <EOL> metric_value = int ( v ) <EOL> self . publish ( metric_name , metric_value ) </s>
