copy requires from master to MasterSlaves

This commit is contained in:
2018-09-29 21:37:39 +02:00
parent 3a1745a885
commit 77e4fff763
3 changed files with 48 additions and 6 deletions

View File

@ -88,7 +88,7 @@ class MasterSlaves(OptionDescription):
master_requires = getattr(master, '_requires', None)
if master_requires:
if self.impl_getrequires():
raise RequirementError(_('master {} in MasterSlaves {} cannot have both requirement'
raise RequirementError(_('master {} have requirement, but MasterSlaves {} too'
'').format(master.impl_getname(),
self.impl_getname()))
master_calproperties = getattr(master, '_calc_properties', None)
@ -96,7 +96,18 @@ class MasterSlaves(OptionDescription):
if properties is not None:
self.validate_properties(name, master_calproperties, frozenset(properties))
setattr(self, '_calc_properties', master_calproperties)
setattr(self, '_requires', master_requires)
setattr(self, '_requires', master_requires)
delattr(master, '_requires')
all_requires = getattr(self, '_requires', None)
if all_requires:
for requires_ in all_requires:
for require in requires_:
for require_opt, values in require[0]:
if require_opt.impl_is_multi():
if require_opt.impl_is_master_slaves():
raise ValueError(_('malformed requirements option "{0}" '
'must not be in slave for "{1}"').format(
require_opt.impl_getname(), self.impl_getname()))
def is_master(self, opt):
master = self._children[0][0]