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
d8bf87b0
Commit
d8bf87b0
authored
Apr 17, 2013
by
Michael DeHaan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(A) include errors in inventory scripts should they occur.
(B) allow registration with ignore_errors: True
parent
6544af96
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
3 deletions
+13
-3
lib/ansible/inventory/script.py
+5
-3
lib/ansible/playbook/__init__.py
+8
-0
No files found.
lib/ansible/inventory/script.py
View file @
d8bf87b0
...
...
@@ -24,6 +24,7 @@ from ansible.inventory.host import Host
from
ansible.inventory.group
import
Group
from
ansible
import
utils
from
ansible
import
errors
import
sys
class
InventoryScript
(
object
):
''' Host inventory parser for ansible using external inventory scripts. '''
...
...
@@ -41,9 +42,9 @@ class InventoryScript(object):
raise
errors
.
AnsibleError
(
"problem running
%
s (
%
s)"
%
(
' '
.
join
(
cmd
),
e
))
(
stdout
,
stderr
)
=
sp
.
communicate
()
self
.
data
=
stdout
self
.
groups
=
self
.
_parse
()
self
.
groups
=
self
.
_parse
(
stderr
)
def
_parse
(
self
):
def
_parse
(
self
,
err
):
all_hosts
=
{}
self
.
raw
=
utils
.
parse_json
(
self
.
data
)
...
...
@@ -52,7 +53,8 @@ class InventoryScript(object):
group
=
None
if
'failed'
in
self
.
raw
:
raise
errors
.
AnsibleError
(
"failed to parse executable inventory script results"
)
sys
.
stderr
.
write
(
err
+
"
\n
"
)
raise
errors
.
AnsibleError
(
"failed to parse executable inventory script results:
%
s"
%
self
.
raw
)
for
(
group_name
,
data
)
in
self
.
raw
.
items
():
...
...
lib/ansible/playbook/__init__.py
View file @
d8bf87b0
...
...
@@ -350,6 +350,14 @@ class PlayBook(object):
result
[
'stdout_lines'
]
=
result
[
'stdout'
]
.
splitlines
()
self
.
SETUP_CACHE
[
host
][
task
.
register
]
=
result
# also have to register some failed, but ignored, tasks
if
task
.
ignore_errors
and
task
.
register
:
failed
=
results
.
get
(
'failed'
,
{})
for
host
,
result
in
failed
.
iteritems
():
if
'stdout'
in
result
:
result
[
'stdout_lines'
]
=
result
[
'stdout'
]
.
splitlines
()
self
.
SETUP_CACHE
[
host
][
task
.
register
]
=
result
# flag which notify handlers need to be run
if
len
(
task
.
notify
)
>
0
:
for
host
,
results
in
results
.
get
(
'contacted'
,{})
.
iteritems
():
...
...
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