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)
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')