def configure(self): self.parser = self.stat_conf.get('parser', 'lines') self.path = self.stat_conf['path'].lstrip('/') self.host = self.stat_conf['host'] self.port = self.stat_conf['port'] self.url = '%s/%s' % (get_addr(self.host, self.port), self.path) if self.parser == 'json': # use json parser (account and rdir style) self._parse_func = self._parse_stats_json else: # default to lines parser (rawx style) self._parse_func = self._parse_stats_lines
def configure(self): for k in ['host', 'port', 'uri']: if k not in self.checker_conf: raise exc.ConfigurationException( 'Missing field "%s" in configuration' % k) self.host = self.checker_conf['host'] self.port = self.checker_conf['port'] self.path = self.checker_conf['uri'] self.name = '%s|http|%s|%s|%s' % \ (self.srv_type, self.host, self.port, self.path) self.url = '%s/%s' % (get_addr(self.host, self.port), self.path)
def __init__(self, conf, service, **kwargs): self.conf = conf self.running = False for k in ['host', 'port', 'type']: if k not in service: raise Exception('Missing field "%s" in service configuration' % k) self.name = '%s|%s|%s' % \ (service['type'], service['host'], service['port']) self.service = service self.rise = int_value(self._load_item_config('rise'), 1) self.fall = int_value(self._load_item_config('fall'), 1) self.check_interval = float_value( self._load_item_config('check_interval'), 1) self.deregister_on_exit = true_value( self._load_item_config('deregister_on_exit', False)) self.logger = get_logger(self.conf) self.pool_manager = get_pool_manager() self.cs = ConscienceClient(self.conf, pool_manager=self.pool_manager, logger=self.logger) # FIXME: explain that self.client = ProxyClient(self.conf, pool_manager=self.pool_manager, no_ns_in_url=True, logger=self.logger) self.last_status = False self.status = False self.failed = False self.service_definition = { 'ns': self.conf['namespace'], 'type': self.service['type'], 'addr': get_addr(self.service['host'], self.service['port']), 'score': 0, 'tags': {} } if self.service.get('location', None): self.service_definition['tags']['tag.loc'] = \ self.service['location'] if self.service.get('slots', None): self.service_definition['tags']['tag.slots'] = \ ','.join(self.service['slots']) self.service_checks = list() self.service_stats = list() self.init_checkers(service) self.init_stats(service)
def load_config(self): bind = get_addr(self.conf.get('bind_addr', '127.0.0.1'), self.conf.get('bind_port', '8000')) self.cfg.set('bind', bind) self.cfg.set('backlog', self.conf.get('backlog', 2048)) self.cfg.set('workers', self.conf.get('workers', 1)) self.cfg.set('threads', self.conf.get('threads', CPU_COUNT)) self.cfg.set('worker_class', self.conf.get('worker_class', 'eventlet')) self.cfg.set('worker_connections', self.conf.get('worker_connections', 1000)) self.cfg.set('syslog_prefix', self.conf.get('syslog_prefix', '')) self.cfg.set('syslog_addr', self.conf.get('log_address', '/dev/log')) self.cfg.set('accesslog', None) self.cfg.set('access_log_format', self.conf.get('access_log_format', self.access_log_fmt)) if self.logger_class: # reactivate after # self.cfg.set('logger_class', self.logger_class) pass
def configure(self): super(MetaStat, self).configure() self.uri = '/forward/stats' service_id = get_addr(self.stat_conf.get('host'), self.stat_conf.get('port')) self.params = {'id': service_id}
def test_get_addr(self): self.assertEqual(get_addr("::1", 12345), '[::1]:12345') self.assertEqual(get_addr("127.0.0.1", 12345), '127.0.0.1:12345') self.assertEqual(get_addr("fe80::0123:4567:89ab:cdef", 12345), '[fe80::0123:4567:89ab:cdef]:12345') self.assertEqual(get_addr("127.0.0.1", "12345"), '127.0.0.1:12345')