Пример #1
0
    def setup_zookeeper(self):
        """!
        @brief Instantiate the Zookeeper client, if enabled.
        """
        if not self.env['EVA_ZOOKEEPER']:
            self.logger.warning('ZooKeeper not configured.')
            return

        self.logger.info('Setting up Zookeeper connection to %s', self.env['EVA_ZOOKEEPER'])
        tokens = self.env['EVA_ZOOKEEPER'].strip().split(u'/')
        server_string = tokens[0]
        base_path = os.path.join('/', os.path.join(*tokens[1:]), str(eva.zookeeper_group_id(self.group_id)))
        self.zookeeper = kazoo.client.KazooClient(
            hosts=server_string,
            randomize_hosts=True,
        )
        self.logger.info('Using ZooKeeper, base path "%s"', base_path)
        self.zookeeper.start()
        self.zookeeper.EVA_BASE_PATH = base_path
        self.zookeeper.ensure_path(self.zookeeper.EVA_BASE_PATH)
Пример #2
0
 def test_zookeeper_group_id(self):
     self.assertEqual(eva.zookeeper_group_id(u'/this/~isaán/\000ID'), 'this.~isan..id')
     with self.assertRaises(eva.exceptions.InvalidGroupIdException):
         eva.zookeeper_group_id(u'áćé')
     with self.assertRaises(eva.exceptions.InvalidGroupIdException):
         eva.zookeeper_group_id('zookeeper')