コード例 #1
0
 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
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
ファイル: wsgi.py プロジェクト: vdombrovski/oio-sds
 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
コード例 #5
0
 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}
コード例 #6
0
 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')