diff --git a/tests/test_leadership.py b/tests/test_leadership.py index f41a548..e82ca80 100644 --- a/tests/test_leadership.py +++ b/tests/test_leadership.py @@ -410,6 +410,9 @@ def test_groups_with_leader_hidden_in_config(): cfg.option('ip_admin_eth0.ip_admin_eth0').value.get() with pytest.raises(PropertiesOptionError): 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 not list_sessions() diff --git a/tiramisu/api.py b/tiramisu/api.py index ee8fcc3..c941be8 100644 --- a/tiramisu/api.py +++ b/tiramisu/api.py @@ -559,6 +559,7 @@ class _TiramisuOptionOptionDescription: leadership.option.get_leader(), None, False, + config_bag=self._config_bag, ) return TiramisuOption( leader_subconfig.path, @@ -581,6 +582,7 @@ class _TiramisuOptionOptionDescription: follower, None, False, + config_bag=self._config_bag, ) ret.append( TiramisuOption( @@ -687,6 +689,7 @@ class _TiramisuOptionOption(_TiramisuOptionOptionDescription): self._subconfig.option, index, True, + config_bag=self._config_bag, ) return TiramisuOption(self._path, index, self._config_bag, subconfig=subconfig) @@ -1080,8 +1083,8 @@ class TiramisuOptionValue(CommonTiramisuOption, _TiramisuODGet): if uncalculated: return self._subconfig.option.impl_getdefault() if self._subconfig.option.impl_is_follower() and self._subconfig.index is None: - msg = _("please specify index with a follower option ({0}.{1})").format( - self.__class__.__name__, func.__name__ + msg = _("please specify index with a follower option ({0})").format( + self._subconfig.path ) raise ConfigError(msg) return self._config_bag.context.get_values().get_default_value(self._subconfig) @@ -1284,9 +1287,7 @@ class TiramisuOption( config_bag.nowarnings() else: config_bag.set_permissive() - if self._subconfig is not None: - self._subconfig.config_bag = config_bag - return self.__class__(self._path, self._index, config_bag, subconfig=self._subconfig) + return self.__class__(self._path, self._index, config_bag) raise ConfigError( _("please specify a valid sub function ({0}.{1}) for {2}").format( self.__class__.__name__, subfunc, self._path