fix: subconfig with follower
This commit is contained in:
parent
50ff511554
commit
27e8f0c69f
2 changed files with 9 additions and 5 deletions
|
|
@ -410,6 +410,9 @@ def test_groups_with_leader_hidden_in_config():
|
||||||
cfg.option('ip_admin_eth0.ip_admin_eth0').value.get()
|
cfg.option('ip_admin_eth0.ip_admin_eth0').value.get()
|
||||||
with pytest.raises(PropertiesOptionError):
|
with pytest.raises(PropertiesOptionError):
|
||||||
cfg.option('ip_admin_eth0.netmask_admin_eth0', 0).value.get()
|
cfg.option('ip_admin_eth0.netmask_admin_eth0', 0).value.get()
|
||||||
|
cfg.forcepermissive.option('ip_admin_eth0.netmask_admin_eth0').index(0).value.get()
|
||||||
|
with pytest.raises(PropertiesOptionError):
|
||||||
|
cfg.option('ip_admin_eth0.netmask_admin_eth0').index(0).value.get()
|
||||||
assert parse_od_get(cfg.value.get()) == {}
|
assert parse_od_get(cfg.value.get()) == {}
|
||||||
# assert not list_sessions()
|
# assert not list_sessions()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -559,6 +559,7 @@ class _TiramisuOptionOptionDescription:
|
||||||
leadership.option.get_leader(),
|
leadership.option.get_leader(),
|
||||||
None,
|
None,
|
||||||
False,
|
False,
|
||||||
|
config_bag=self._config_bag,
|
||||||
)
|
)
|
||||||
return TiramisuOption(
|
return TiramisuOption(
|
||||||
leader_subconfig.path,
|
leader_subconfig.path,
|
||||||
|
|
@ -581,6 +582,7 @@ class _TiramisuOptionOptionDescription:
|
||||||
follower,
|
follower,
|
||||||
None,
|
None,
|
||||||
False,
|
False,
|
||||||
|
config_bag=self._config_bag,
|
||||||
)
|
)
|
||||||
ret.append(
|
ret.append(
|
||||||
TiramisuOption(
|
TiramisuOption(
|
||||||
|
|
@ -687,6 +689,7 @@ class _TiramisuOptionOption(_TiramisuOptionOptionDescription):
|
||||||
self._subconfig.option,
|
self._subconfig.option,
|
||||||
index,
|
index,
|
||||||
True,
|
True,
|
||||||
|
config_bag=self._config_bag,
|
||||||
)
|
)
|
||||||
return TiramisuOption(self._path, index, self._config_bag, subconfig=subconfig)
|
return TiramisuOption(self._path, index, self._config_bag, subconfig=subconfig)
|
||||||
|
|
||||||
|
|
@ -1080,8 +1083,8 @@ class TiramisuOptionValue(CommonTiramisuOption, _TiramisuODGet):
|
||||||
if uncalculated:
|
if uncalculated:
|
||||||
return self._subconfig.option.impl_getdefault()
|
return self._subconfig.option.impl_getdefault()
|
||||||
if self._subconfig.option.impl_is_follower() and self._subconfig.index is None:
|
if self._subconfig.option.impl_is_follower() and self._subconfig.index is None:
|
||||||
msg = _("please specify index with a follower option ({0}.{1})").format(
|
msg = _("please specify index with a follower option ({0})").format(
|
||||||
self.__class__.__name__, func.__name__
|
self._subconfig.path
|
||||||
)
|
)
|
||||||
raise ConfigError(msg)
|
raise ConfigError(msg)
|
||||||
return self._config_bag.context.get_values().get_default_value(self._subconfig)
|
return self._config_bag.context.get_values().get_default_value(self._subconfig)
|
||||||
|
|
@ -1284,9 +1287,7 @@ class TiramisuOption(
|
||||||
config_bag.nowarnings()
|
config_bag.nowarnings()
|
||||||
else:
|
else:
|
||||||
config_bag.set_permissive()
|
config_bag.set_permissive()
|
||||||
if self._subconfig is not None:
|
return self.__class__(self._path, self._index, config_bag)
|
||||||
self._subconfig.config_bag = config_bag
|
|
||||||
return self.__class__(self._path, self._index, config_bag, subconfig=self._subconfig)
|
|
||||||
raise ConfigError(
|
raise ConfigError(
|
||||||
_("please specify a valid sub function ({0}.{1}) for {2}").format(
|
_("please specify a valid sub function ({0}.{1}) for {2}").format(
|
||||||
self.__class__.__name__, subfunc, self._path
|
self.__class__.__name__, subfunc, self._path
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue