Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
6dd38c2a
Commit
6dd38c2a
authored
Sep 26, 2015
by
James Cammarata
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix parent attribute lookup to be default
Fixes #12526
parent
a1c38a3f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
67 additions
and
53 deletions
+67
-53
lib/ansible/playbook/base.py
+4
-1
lib/ansible/playbook/block.py
+44
-39
lib/ansible/playbook/task.py
+19
-13
No files found.
lib/ansible/playbook/base.py
View file @
6dd38c2a
...
...
@@ -105,7 +105,10 @@ class Base:
if
hasattr
(
self
,
method
):
return
getattr
(
self
,
method
)()
return
self
.
_attributes
[
prop_name
]
value
=
self
.
_attributes
[
prop_name
]
if
value
is
None
and
hasattr
(
self
,
'_get_parent_attribute'
):
value
=
self
.
_get_parent_attribute
(
prop_name
)
return
value
@staticmethod
def
_generic_s
(
prop_name
,
self
,
value
):
...
...
lib/ansible/playbook/block.py
View file @
6dd38c2a
...
...
@@ -271,45 +271,50 @@ class Block(Base, Become, Conditional, Taggable):
Generic logic to get the attribute or parent attribute for a block value.
'''
value
=
self
.
_attributes
[
attr
]
if
self
.
_parent_block
and
(
value
is
None
or
extend
):
parent_value
=
getattr
(
self
.
_parent_block
,
attr
)
if
extend
:
value
=
self
.
_extend_value
(
value
,
parent_value
)
else
:
value
=
parent_value
if
self
.
_task_include
and
(
value
is
None
or
extend
):
parent_value
=
getattr
(
self
.
_task_include
,
attr
)
if
extend
:
value
=
self
.
_extend_value
(
value
,
parent_value
)
else
:
value
=
parent_value
if
self
.
_role
and
(
value
is
None
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
,
dep_value
)
else
:
value
=
dep_value
if
value
is
not
None
and
not
extend
:
break
if
self
.
_play
and
(
value
is
None
or
extend
):
parent_value
=
getattr
(
self
.
_play
,
attr
)
if
extend
:
value
=
self
.
_extend_value
(
value
,
parent_value
)
else
:
value
=
parent_value
value
=
None
try
:
value
=
self
.
_attributes
[
attr
]
if
self
.
_parent_block
and
(
value
is
None
or
extend
):
parent_value
=
getattr
(
self
.
_parent_block
,
attr
)
if
extend
:
value
=
self
.
_extend_value
(
value
,
parent_value
)
else
:
value
=
parent_value
if
self
.
_task_include
and
(
value
is
None
or
extend
):
parent_value
=
getattr
(
self
.
_task_include
,
attr
)
if
extend
:
value
=
self
.
_extend_value
(
value
,
parent_value
)
else
:
value
=
parent_value
if
self
.
_role
and
(
value
is
None
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
,
dep_value
)
else
:
value
=
dep_value
if
value
is
not
None
and
not
extend
:
break
if
self
.
_play
and
(
value
is
None
or
extend
):
parent_value
=
getattr
(
self
.
_play
,
attr
)
if
extend
:
value
=
self
.
_extend_value
(
value
,
parent_value
)
else
:
value
=
parent_value
except
KeyError
:
pass
return
value
...
...
lib/ansible/playbook/task.py
View file @
6dd38c2a
...
...
@@ -363,19 +363,25 @@ class Task(Base, Conditional, Taggable, Become):
'''
Generic logic to get the attribute or parent attribute for a task value.
'''
value
=
self
.
_attributes
[
attr
]
if
self
.
_block
and
(
value
is
None
or
extend
):
parent_value
=
getattr
(
self
.
_block
,
attr
)
if
extend
:
value
=
self
.
_extend_value
(
value
,
parent_value
)
else
:
value
=
parent_value
if
self
.
_task_include
and
(
value
is
None
or
extend
):
parent_value
=
getattr
(
self
.
_task_include
,
attr
)
if
extend
:
value
=
self
.
_extend_value
(
value
,
parent_value
)
else
:
value
=
parent_value
value
=
None
try
:
value
=
self
.
_attributes
[
attr
]
if
self
.
_block
and
(
value
is
None
or
extend
):
parent_value
=
getattr
(
self
.
_block
,
attr
)
if
extend
:
value
=
self
.
_extend_value
(
value
,
parent_value
)
else
:
value
=
parent_value
if
self
.
_task_include
and
(
value
is
None
or
extend
):
parent_value
=
getattr
(
self
.
_task_include
,
attr
)
if
extend
:
value
=
self
.
_extend_value
(
value
,
parent_value
)
else
:
value
=
parent_value
except
KeyError
:
pass
return
value
def
_get_attr_environment
(
self
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment