Merge remote-tracking branch 'origin/2.1'

This commit is contained in:
2017-06-16 18:25:31 +02:00
3 changed files with 39 additions and 35 deletions

View File

@ -235,22 +235,20 @@ class MasterSlaves(object):
multi = value
return multi
def validate(self, values, opt, value, path, session):
def validate(self, values, opt, index, path, session, setitem):
if self.is_master(opt):
masterlen = len(value)
#for regen slave path
base_path = '.'.join(path.split('.')[:-1]) + '.'
for slave in self.getslaves(opt):
slave_path = base_path + slave.impl_getname()
slavelen = values._p_.get_max_length(slave_path, session)
self.validate_slave_length(masterlen, slavelen, slave.impl_getname(), opt)
self.validate_slave_length(index, slavelen, slave.impl_getname(), opt)
else:
val_len = self.get_length(values, opt, session, slave_path=path)
if isinstance(val_len, Exception):
return val_len
self.validate_slave_length(val_len,
len(value),
opt.impl_getname(), opt, setitem=True)
self.validate_slave_length(val_len, index,
opt.impl_getname(), opt, setitem=setitem)
def get_length(self, values, opt, session, validate=True, slave_path=undefined,
slave_value=undefined, force_permissive=False, master=None,