remove some try/except + consistency not works with submulti

This commit is contained in:
2016-01-03 13:23:15 +01:00
parent cc6b4ad7c4
commit e8764f6173
13 changed files with 273 additions and 259 deletions

View File

@ -111,15 +111,32 @@ class OptionDescription(BaseOption, StorageOptionDescription):
#cannot set multi option as OptionDescription requires
else:
option._set_readonly(True)
is_multi = option.impl_is_multi()
for func, all_cons_opts, params in option._get_consistencies():
all_cons_opts[0]._valid_consistencies(all_cons_opts[1:])
option._valid_consistencies(all_cons_opts[1:])
if is_multi:
is_slave = option.impl_is_master_slaves()
if not is_slave:
raise ValueError(_('malformed consistency option {0} '
'must be a master/slaves').format(
option.impl_getname()))
masterslaves = option.impl_get_master_slaves()
for opt in all_cons_opts:
if is_multi:
if not opt.impl_is_master_slaves():
raise ValueError(_('malformed consistency option {0} '
'must not be a multi for {1}').format(
option.impl_getname(), opt.impl_getname()))
elif masterslaves != opt.impl_get_master_slaves():
raise ValueError(_('malformed consistency option {0} '
'must be in same master/slaves for {1}').format(
option.impl_getname(), opt.impl_getname()))
_consistencies.setdefault(opt,
[]).append((func,
all_cons_opts,
params))
is_slave = None
if option.impl_is_multi():
if is_multi:
all_requires = option.impl_getrequires()
if all_requires != tuple():
for requires in all_requires: