Fix logic error in parent attribute retrieval for blocks/roles (v2)

This commit is contained in:
James Cammarata 2015-05-12 15:08:35 -05:00
parent dcb54d9657
commit 4d999f8fe0

View file

@ -274,15 +274,20 @@ class Block(Base, Become, Conditional, Taggable):
value = parent_value
if self._role and (not value or extend):
parent_value = getattr(self._role, attr)
if extend:
value = self._extend_value(value, parent_value)
else:
value = parent_value
if len(self._dep_chain) and (not value or extend):
reverse_dep_chain = self._dep_chain[:]
reverse_dep_chain.reverse()
for dep in reverse_dep_chain:
dep_value = getattr(dep, attr)
if extend:
value = self._extend_value(value, parent_value)
value = self._extend_value(value, dep_value)
else:
value = parent_value
value = dep_value
if value and not extend:
break