force_store_value for follower
This commit is contained in:
@ -80,11 +80,6 @@ class CacheOptionDescription(BaseOption):
|
||||
properties = option.impl_getproperties()
|
||||
if 'force_store_value' in properties:
|
||||
if __debug__:
|
||||
if option.impl_is_follower():
|
||||
# problem with index
|
||||
raise ConfigError(_('the follower "{0}" cannot have '
|
||||
'"force_store_value" property').format(
|
||||
option.impl_get_display_name()))
|
||||
if option.issubdyn():
|
||||
raise ConfigError(_('the dynoption "{0}" cannot have '
|
||||
'"force_store_value" property').format(
|
||||
@ -125,17 +120,39 @@ class CacheOptionDescription(BaseOption):
|
||||
values = config_bag.context.cfgimpl_get_values()
|
||||
for subpath, option in self._cache_force_store_values:
|
||||
if not values._p_.hasvalue(subpath):
|
||||
option_bag = OptionBag()
|
||||
option_bag.set_option(option,
|
||||
subpath,
|
||||
None,
|
||||
config_bag)
|
||||
option_bag.properties = frozenset()
|
||||
values._p_.setvalue(subpath,
|
||||
values.getvalue(option_bag),
|
||||
owners.forced,
|
||||
None,
|
||||
False)
|
||||
if option.impl_is_follower():
|
||||
option_bag = OptionBag()
|
||||
leader = option.impl_get_leadership().get_leader()
|
||||
option_bag.set_option(leader,
|
||||
leader.impl_getpath(),
|
||||
None,
|
||||
config_bag)
|
||||
option_bag.properties = frozenset()
|
||||
follower_len = len(values.getvalue(option_bag))
|
||||
for index in range(follower_len):
|
||||
option_bag = OptionBag()
|
||||
option_bag.set_option(option,
|
||||
subpath,
|
||||
index,
|
||||
config_bag)
|
||||
option_bag.properties = frozenset()
|
||||
values._p_.setvalue(subpath,
|
||||
values.getvalue(option_bag),
|
||||
owners.forced,
|
||||
index,
|
||||
False)
|
||||
else:
|
||||
option_bag = OptionBag()
|
||||
option_bag.set_option(option,
|
||||
subpath,
|
||||
None,
|
||||
config_bag)
|
||||
option_bag.properties = frozenset()
|
||||
values._p_.setvalue(subpath,
|
||||
values.getvalue(option_bag),
|
||||
owners.forced,
|
||||
None,
|
||||
False)
|
||||
commit = True
|
||||
|
||||
if commit:
|
||||
|
Reference in New Issue
Block a user