def print_key(config_path, key, type_name, default=None): config = read_config(config_path) keys = key.split('.') for key in keys: try: config = config[key] except KeyError: if default is not None: print(str(default)) return else: raise exc.ConfigException( 'key %s does not exist in %s' % (key, config_path)) value_types.ensure_type(config, type_name) print(str(config))
def print_key( config_path, key, type_name, default=None, fallback_metadata=None): config = collect_config.collect_config(config_path, fallback_metadata) config = _extract_key(config_path, key, fallback_metadata) if config is None: if default is not None: print(str(default)) return else: raise exc.ConfigException( 'key %s does not exist in %s' % (key, config_path)) value_types.ensure_type(str(config), type_name) if isinstance(config, (dict, list, bool)): print(json.dumps(config)) else: print(str(config))
def print_key( config_path, key, type_name, default=None, fallback_metadata=None): config = collect_config.collect_config(config_path, fallback_metadata) keys = key.split('.') for key in keys: try: config = config[key] except (KeyError, TypeError): if default is not None: print(str(default)) return else: raise exc.ConfigException( 'key %s does not exist in %s' % (key, config_path)) value_types.ensure_type(str(config), type_name) print(str(config))
def test_dsn(self): test_dsn = 'mysql://*****:*****@host/db' self.assertEqual(test_dsn, value_types.ensure_type(test_dsn, 'dsn'))
def test_dsn_sqlite_file(self): test_dsn = 'sqlite:///tmp/foo.db' self.assertEqual(test_dsn, value_types.ensure_type(test_dsn, 'dsn'))
def test_ent_address_ipv6(self): self.assertEqual('::', value_types.ensure_type('::', 'netaddress')) self.assertEqual('2001:db8::2:1', value_types.ensure_type( '2001:db8::2:1', 'netaddress'))
def test_net_address_ipv4(self): self.assertEqual('192.0.2.1', value_types.ensure_type('192.0.2.1', 'netaddress'))
def test_default_empty(self): self.assertEqual('', value_types.ensure_type('', 'default'))
def test_username(self): for test_username in ['guest', 'guest_13-42']: self.assertEqual(test_username, value_types.ensure_type( test_username, 'username'))
def test_net_address_cidr(self): self.assertEqual('192.0.2.0/24', value_types.ensure_type('192.0.2.0/24', 'netaddress'))
def test_raw_empty(self): self.assertEqual('', value_types.ensure_type('', 'raw'))
def test_default(self): self.assertEqual("foobar", value_types.ensure_type("foobar", "default")) self.assertEqual("x86_64", value_types.ensure_type("x86_64", "default"))
def test_int(self): self.assertEqual("123", value_types.ensure_type("123", "int"))
def test_dsn_set_variables(self): test_dsn = 'mysql://*****:*****@host/db?charset=utf8' self.assertEqual(test_dsn, value_types.ensure_type(test_dsn, 'dsn'))
def test_dsn_sqlite_memory(self): test_dsn = 'sqlite://' self.assertEqual(test_dsn, value_types.ensure_type(test_dsn, 'dsn'))
def test_net_address_dns(self): self.assertEqual('host.0domain-name.test', value_types.ensure_type('host.0domain-name.test', 'netaddress'))
def test_swiftdevices_multi(self): test_swiftdevices = 'r1z1-127.0.0.1:%PORT%/d1,r1z1-127.0.0.1:%PORT%/d2' self.assertEqual(test_swiftdevices, value_types.ensure_type( test_swiftdevices, 'swiftdevices'))
def test_net_address_empty(self): self.assertEqual('', value_types.ensure_type('', 'netaddress'))
def test_netdevice_dash(self): self.assertEqual('br-ctlplane', value_types.ensure_type('br-ctlplane', 'netdevice'))
def test_default(self): self.assertEqual("foobar", value_types.ensure_type("foobar", "default"))
def test_netdevice_alias(self): self.assertEqual('eth0:1', value_types.ensure_type('eth0:1', 'netdevice'))