def test_buildZooKeeperHosts_multiple(self): hosts = [ zk.ZooKeeperConnectionConfig('127.0.0.1', port=2181, chroot='/test1'), zk.ZooKeeperConnectionConfig('127.0.0.2', port=2182, chroot='/test2') ] self.assertEqual('127.0.0.1:2181/test1,127.0.0.2:2182/test2', zk.buildZooKeeperHosts(hosts))
def test_buildZooKeeperHosts_single(self): hosts = [ zk.ZooKeeperConnectionConfig('127.0.0.1', port=2181, chroot='/test1') ] self.assertEqual('127.0.0.1:2181/test1', zk.buildZooKeeperHosts(hosts))
def setZooKeeperServers(self, zk_cfg): if not zk_cfg: return for server in zk_cfg: z = zk.ZooKeeperConnectionConfig(server['host'], server.get('port', 2181), server.get('chroot', None)) name = z.host + '_' + str(z.port) self.zookeeper_servers[name] = z
def setupZK(self): f = ZookeeperServerFixture() self.useFixture(f) self.zookeeper_host = f.zookeeper_host self.zookeeper_port = f.zookeeper_port kz_fxtr = self.useFixture( ChrootedKazooFixture(self.zookeeper_host, self.zookeeper_port)) self.zookeeper_chroot = kz_fxtr.zookeeper_chroot self.zk = zk.ZooKeeper() host = zk.ZooKeeperConnectionConfig(self.zookeeper_host, self.zookeeper_port, self.zookeeper_chroot) self.zk.connect([host]) self.addCleanup(self.zk.disconnect)
def loadSecureConfig(config, secure_config_path): secure = openConfig(secure_config_path) if not secure: # empty file return # Eliminate any servers defined in the normal config if secure.get('zookeeper-servers', []): config.zookeeper_servers = {} # TODO(Shrews): Support ZooKeeper auth for server in secure.get('zookeeper-servers', []): z = zk.ZooKeeperConnectionConfig(server['host'], server.get('port', 2181), server.get('chroot', None)) name = z.host + '_' + str(z.port) config.zookeeper_servers[name] = z
def loadConfig(config_path): config = openConfig(config_path) # Call driver config reset now to clean global hooks like os_client_config for driver in Drivers.drivers.values(): driver["config"].reset() newconfig = Config() newconfig.db = None newconfig.webapp = { 'port': config.get('webapp', {}).get('port', 8005), 'listen_address': config.get('webapp', {}).get('listen_address', '0.0.0.0') } newconfig.providers = {} newconfig.labels = {} newconfig.elementsdir = config.get('elements-dir') newconfig.imagesdir = config.get('images-dir') newconfig.build_log_dir = config.get('build-log-dir') newconfig.build_log_retention = config.get('build-log-retention', 7) newconfig.provider_managers = {} newconfig.zookeeper_servers = {} newconfig.diskimages = {} for server in config.get('zookeeper-servers', []): z = zk.ZooKeeperConnectionConfig(server['host'], server.get('port', 2181), server.get('chroot', None)) name = z.host + '_' + str(z.port) newconfig.zookeeper_servers[name] = z for diskimage in config.get('diskimages', []): d = DiskImage() d.name = diskimage['name'] newconfig.diskimages[d.name] = d if 'elements' in diskimage: d.elements = u' '.join(diskimage['elements']) else: d.elements = '' # must be a string, as it's passed as env-var to # d-i-b, but might be untyped in the yaml and # interpreted as a number (e.g. "21" for fedora) d.release = str(diskimage.get('release', '')) d.rebuild_age = int(diskimage.get('rebuild-age', 86400)) d.env_vars = diskimage.get('env-vars', {}) if not isinstance(d.env_vars, dict): d.env_vars = {} d.image_types = set(diskimage.get('formats', [])) d.pause = bool(diskimage.get('pause', False)) d.username = diskimage.get('username', 'zuul') for label in config.get('labels', []): l = Label() l.name = label['name'] newconfig.labels[l.name] = l l.max_ready_age = label.get('max-ready-age', 0) l.min_ready = label.get('min-ready', 0) l.pools = [] for provider in config.get('providers', []): p = get_provider_config(provider) p.load(newconfig) newconfig.providers[p.name] = p return newconfig