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
cc6627cd
Commit
cc6627cd
authored
Sep 17, 2015
by
James Cammarata
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove custom json encoder cleaner and strip proxy var stuff out before encoding
Fixes #12349
parent
a431121f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
14 deletions
+15
-14
lib/ansible/executor/task_executor.py
+14
-3
lib/ansible/utils/vars.py
+1
-11
No files found.
lib/ansible/executor/task_executor.py
View file @
cc6627cd
...
...
@@ -35,7 +35,7 @@ from ansible.playbook.task import Task
from
ansible.template
import
Templar
from
ansible.utils.listify
import
listify_lookup_plugin_terms
from
ansible.utils.unicode
import
to_unicode
from
ansible.
utils.vars
import
json_variable_cleaner
from
ansible.
vars.unsafe_proxy
import
UnsafeProxy
from
ansible.utils.debug
import
debug
...
...
@@ -124,10 +124,21 @@ class TaskExecutor:
if
'changed'
not
in
res
:
res
[
'changed'
]
=
False
def
_clean_res
(
res
):
if
isinstance
(
res
,
dict
):
for
k
in
res
.
keys
():
res
[
k
]
=
_clean_res
(
res
[
k
])
elif
isinstance
(
res
,
list
):
for
idx
,
item
in
enumerate
(
res
):
res
[
idx
]
=
_clean_res
(
item
)
elif
isinstance
(
res
,
UnsafeProxy
):
return
res
.
_obj
return
res
debug
(
"dumping result to json"
)
res
ult
=
json
.
dumps
(
res
,
default
=
json_variable_cleaner
)
res
=
_clean_res
(
res
)
debug
(
"done dumping result, returning"
)
return
res
ult
return
res
except
AnsibleError
as
e
:
return
dict
(
failed
=
True
,
msg
=
to_unicode
(
e
,
nonstring
=
'simplerepr'
))
finally
:
...
...
lib/ansible/utils/vars.py
View file @
cc6627cd
...
...
@@ -20,6 +20,7 @@ from __future__ import (absolute_import, division, print_function)
__metaclass__
=
type
import
ast
from
json
import
JSONEncoder
from
collections
import
MutableMapping
from
six
import
iteritems
,
string_types
...
...
@@ -128,14 +129,3 @@ def isidentifier(ident):
return
True
def
json_variable_cleaner
(
obj
):
'''
Used as the default= parameter to json.dumps(), this method helps
clear out UnsafeProxy variables so they can be properly JSON encoded
'''
from
ansible.vars.unsafe_proxy
import
UnsafeProxy
if
isinstance
(
obj
,
UnsafeProxy
):
return
obj
.
_obj
else
:
return
obj
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