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
ee5e1665
Commit
ee5e1665
authored
Jun 04, 2015
by
James Cammarata
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixing ansible_*_interpreter use
Fixes ansible/ansible-modules-core#1459
parent
f3f3fb7c
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
38 additions
and
43 deletions
+38
-43
lib/ansible/executor/module_common.py
+10
-15
lib/ansible/plugins/action/__init__.py
+4
-4
lib/ansible/plugins/action/assemble.py
+4
-4
lib/ansible/plugins/action/async.py
+3
-3
lib/ansible/plugins/action/copy.py
+6
-6
lib/ansible/plugins/action/fetch.py
+1
-1
lib/ansible/plugins/action/normal.py
+1
-1
lib/ansible/plugins/action/patch.py
+2
-2
lib/ansible/plugins/action/script.py
+2
-2
lib/ansible/plugins/action/synchronize.py
+1
-1
lib/ansible/plugins/action/template.py
+2
-2
lib/ansible/plugins/action/unarchive.py
+2
-2
No files found.
lib/ansible/executor/module_common.py
View file @
ee5e1665
...
@@ -31,6 +31,7 @@ from ansible import __version__
...
@@ -31,6 +31,7 @@ from ansible import __version__
from
ansible
import
constants
as
C
from
ansible
import
constants
as
C
from
ansible.errors
import
AnsibleError
from
ansible.errors
import
AnsibleError
from
ansible.parsing.utils.jsonify
import
jsonify
from
ansible.parsing.utils.jsonify
import
jsonify
from
ansible.utils.unicode
import
to_bytes
REPLACER
=
"#<<INCLUDE_ANSIBLE_MODULE_COMMON>>"
REPLACER
=
"#<<INCLUDE_ANSIBLE_MODULE_COMMON>>"
REPLACER_ARGS
=
"
\"
<<INCLUDE_ANSIBLE_MODULE_ARGS>>
\"
"
REPLACER_ARGS
=
"
\"
<<INCLUDE_ANSIBLE_MODULE_ARGS>>
\"
"
...
@@ -113,7 +114,7 @@ def _find_snippet_imports(module_data, module_path, strip_comments):
...
@@ -113,7 +114,7 @@ def _find_snippet_imports(module_data, module_path, strip_comments):
# ******************************************************************************
# ******************************************************************************
def
modify_module
(
module_path
,
module_args
,
strip_comments
=
False
):
def
modify_module
(
module_path
,
module_args
,
task_vars
=
dict
(),
strip_comments
=
False
):
"""
"""
Used to insert chunks of code into modules before transfer rather than
Used to insert chunks of code into modules before transfer rather than
doing regular python imports. This allows for more efficient transfer in
doing regular python imports. This allows for more efficient transfer in
...
@@ -158,7 +159,6 @@ def modify_module(module_path, module_args, strip_comments=False):
...
@@ -158,7 +159,6 @@ def modify_module(module_path, module_args, strip_comments=False):
(
module_data
,
module_style
)
=
_find_snippet_imports
(
module_data
,
module_path
,
strip_comments
)
(
module_data
,
module_style
)
=
_find_snippet_imports
(
module_data
,
module_path
,
strip_comments
)
#module_args_json = jsonify(module_args)
module_args_json
=
json
.
dumps
(
module_args
)
module_args_json
=
json
.
dumps
(
module_args
)
encoded_args
=
repr
(
module_args_json
.
encode
(
'utf-8'
))
encoded_args
=
repr
(
module_args_json
.
encode
(
'utf-8'
))
...
@@ -166,14 +166,11 @@ def modify_module(module_path, module_args, strip_comments=False):
...
@@ -166,14 +166,11 @@ def modify_module(module_path, module_args, strip_comments=False):
module_data
=
module_data
.
replace
(
REPLACER_VERSION
,
repr
(
__version__
))
module_data
=
module_data
.
replace
(
REPLACER_VERSION
,
repr
(
__version__
))
module_data
=
module_data
.
replace
(
REPLACER_COMPLEX
,
encoded_args
)
module_data
=
module_data
.
replace
(
REPLACER_COMPLEX
,
encoded_args
)
# FIXME: we're not passing around an inject dictionary anymore, so
if
module_style
==
'new'
:
# this needs to be fixed with whatever method we use for vars
facility
=
C
.
DEFAULT_SYSLOG_FACILITY
# like this moving forward
if
'ansible_syslog_facility'
in
task_vars
:
#if module_style == 'new':
facility
=
task_vars
[
'ansible_syslog_facility'
]
# facility = C.DEFAULT_SYSLOG_FACILITY
module_data
=
module_data
.
replace
(
'syslog.LOG_USER'
,
"syslog.
%
s"
%
facility
)
# if 'ansible_syslog_facility' in inject:
# facility = inject['ansible_syslog_facility']
# module_data = module_data.replace('syslog.LOG_USER', "syslog.%s" % facility)
lines
=
module_data
.
split
(
b
"
\n
"
,
1
)
lines
=
module_data
.
split
(
b
"
\n
"
,
1
)
shebang
=
None
shebang
=
None
...
@@ -183,11 +180,9 @@ def modify_module(module_path, module_args, strip_comments=False):
...
@@ -183,11 +180,9 @@ def modify_module(module_path, module_args, strip_comments=False):
interpreter
=
args
[
0
]
interpreter
=
args
[
0
]
interpreter_config
=
'ansible_
%
s_interpreter'
%
os
.
path
.
basename
(
interpreter
)
interpreter_config
=
'ansible_
%
s_interpreter'
%
os
.
path
.
basename
(
interpreter
)
# FIXME: more inject stuff here...
if
interpreter_config
in
task_vars
:
#from ansible.utils.unicode import to_bytes
interpreter
=
to_bytes
(
task_vars
[
interpreter_config
],
errors
=
'strict'
)
#if interpreter_config in inject:
lines
[
0
]
=
shebang
=
b
"#!{0} {1}"
.
format
(
interpreter
,
b
" "
.
join
(
args
[
1
:]))
# interpreter = to_bytes(inject[interpreter_config], errors='strict')
# lines[0] = shebang = b"#!{0} {1}".format(interpreter, b" ".join(args[1:]))
lines
.
insert
(
1
,
ENCODING_STRING
)
lines
.
insert
(
1
,
ENCODING_STRING
)
else
:
else
:
...
...
lib/ansible/plugins/action/__init__.py
View file @
ee5e1665
...
@@ -67,7 +67,7 @@ class ActionBase:
...
@@ -67,7 +67,7 @@ class ActionBase:
self
.
_supports_check_mode
=
True
self
.
_supports_check_mode
=
True
def
_configure_module
(
self
,
module_name
,
module_args
):
def
_configure_module
(
self
,
module_name
,
module_args
,
task_vars
=
dict
()
):
'''
'''
Handles the loading and templating of the module code through the
Handles the loading and templating of the module code through the
modify_module() function.
modify_module() function.
...
@@ -86,7 +86,7 @@ class ActionBase:
...
@@ -86,7 +86,7 @@ class ActionBase:
"run 'git submodule update --init --recursive' to correct this problem."
%
(
module_name
))
"run 'git submodule update --init --recursive' to correct this problem."
%
(
module_name
))
# insert shared code and arguments into the module
# insert shared code and arguments into the module
(
module_data
,
module_style
,
module_shebang
)
=
modify_module
(
module_path
,
module_args
)
(
module_data
,
module_style
,
module_shebang
)
=
modify_module
(
module_path
,
module_args
,
task_vars
=
task_vars
)
return
(
module_style
,
module_shebang
,
module_data
)
return
(
module_style
,
module_shebang
,
module_data
)
...
@@ -314,7 +314,7 @@ class ActionBase:
...
@@ -314,7 +314,7 @@ class ActionBase:
filtered_lines
.
write
(
line
+
'
\n
'
)
filtered_lines
.
write
(
line
+
'
\n
'
)
return
filtered_lines
.
getvalue
()
return
filtered_lines
.
getvalue
()
def
_execute_module
(
self
,
module_name
=
None
,
module_args
=
None
,
tmp
=
None
,
persist_files
=
False
,
delete_remote_tmp
=
True
):
def
_execute_module
(
self
,
module_name
=
None
,
module_args
=
None
,
tmp
=
None
,
task_vars
=
dict
(),
persist_files
=
False
,
delete_remote_tmp
=
True
):
'''
'''
Transfer and run a module along with its arguments.
Transfer and run a module along with its arguments.
'''
'''
...
@@ -338,7 +338,7 @@ class ActionBase:
...
@@ -338,7 +338,7 @@ class ActionBase:
debug
(
"in _execute_module (
%
s,
%
s)"
%
(
module_name
,
module_args
))
debug
(
"in _execute_module (
%
s,
%
s)"
%
(
module_name
,
module_args
))
(
module_style
,
shebang
,
module_data
)
=
self
.
_configure_module
(
module_name
=
module_name
,
module_args
=
module_args
)
(
module_style
,
shebang
,
module_data
)
=
self
.
_configure_module
(
module_name
=
module_name
,
module_args
=
module_args
,
task_vars
=
task_vars
)
if
not
shebang
:
if
not
shebang
:
raise
AnsibleError
(
"module is missing interpreter line"
)
raise
AnsibleError
(
"module is missing interpreter line"
)
...
...
lib/ansible/plugins/action/assemble.py
View file @
ee5e1665
...
@@ -87,7 +87,7 @@ class ActionModule(ActionBase):
...
@@ -87,7 +87,7 @@ class ActionModule(ActionBase):
return
dict
(
failed
=
True
,
msg
=
"src and dest are required"
)
return
dict
(
failed
=
True
,
msg
=
"src and dest are required"
)
if
boolean
(
remote_src
):
if
boolean
(
remote_src
):
return
self
.
_execute_module
(
tmp
=
tmp
)
return
self
.
_execute_module
(
tmp
=
tmp
,
task_vars
=
task_vars
)
elif
self
.
_task
.
_role
is
not
None
:
elif
self
.
_task
.
_role
is
not
None
:
src
=
self
.
_loader
.
path_dwim_relative
(
self
.
_task
.
_role
.
_role_path
,
'files'
,
src
)
src
=
self
.
_loader
.
path_dwim_relative
(
self
.
_task
.
_role
.
_role_path
,
'files'
,
src
)
else
:
else
:
...
@@ -109,7 +109,7 @@ class ActionModule(ActionBase):
...
@@ -109,7 +109,7 @@ class ActionModule(ActionBase):
resultant
=
file
(
path
)
.
read
()
resultant
=
file
(
path
)
.
read
()
# FIXME: diff needs to be moved somewhere else
# FIXME: diff needs to be moved somewhere else
#if self.runner.diff:
#if self.runner.diff:
# dest_result = self._execute_module(module_name='slurp', module_args=dict(path=dest), tmp=tmp, persist_files=True)
# dest_result = self._execute_module(module_name='slurp', module_args=dict(path=dest), t
ask_vars=task_vars, t
mp=tmp, persist_files=True)
# if 'content' in dest_result:
# if 'content' in dest_result:
# dest_contents = dest_result['content']
# dest_contents = dest_result['content']
# if dest_result['encoding'] == 'base64':
# if dest_result['encoding'] == 'base64':
...
@@ -140,7 +140,7 @@ class ActionModule(ActionBase):
...
@@ -140,7 +140,7 @@ class ActionModule(ActionBase):
# res = self.runner._execute_module(conn, tmp, 'copy', module_args_tmp, inject=inject)
# res = self.runner._execute_module(conn, tmp, 'copy', module_args_tmp, inject=inject)
# res.diff = dict(after=resultant)
# res.diff = dict(after=resultant)
# return res
# return res
res
=
self
.
_execute_module
(
module_name
=
'copy'
,
module_args
=
new_module_args
,
tmp
=
tmp
)
res
=
self
.
_execute_module
(
module_name
=
'copy'
,
module_args
=
new_module_args
,
t
ask_vars
=
task_vars
,
t
mp
=
tmp
)
#res.diff = dict(after=resultant)
#res.diff = dict(after=resultant)
return
res
return
res
else
:
else
:
...
@@ -153,4 +153,4 @@ class ActionModule(ActionBase):
...
@@ -153,4 +153,4 @@ class ActionModule(ActionBase):
)
)
)
)
return
self
.
_execute_module
(
module_name
=
'file'
,
module_args
=
new_module_args
,
tmp
=
tmp
)
return
self
.
_execute_module
(
module_name
=
'file'
,
module_args
=
new_module_args
,
t
ask_vars
=
task_vars
,
t
mp
=
tmp
)
lib/ansible/plugins/action/async.py
View file @
ee5e1665
...
@@ -42,12 +42,12 @@ class ActionModule(ActionBase):
...
@@ -42,12 +42,12 @@ class ActionModule(ActionBase):
env_string
=
self
.
_compute_environment_string
()
env_string
=
self
.
_compute_environment_string
()
# configure, upload, and chmod the target module
# configure, upload, and chmod the target module
(
module_style
,
shebang
,
module_data
)
=
self
.
_configure_module
(
module_name
=
module_name
,
module_args
=
self
.
_task
.
args
)
(
module_style
,
shebang
,
module_data
)
=
self
.
_configure_module
(
module_name
=
module_name
,
module_args
=
self
.
_task
.
args
,
task_vars
=
task_vars
)
self
.
_transfer_data
(
remote_module_path
,
module_data
)
self
.
_transfer_data
(
remote_module_path
,
module_data
)
self
.
_remote_chmod
(
tmp
,
'a+rx'
,
remote_module_path
)
self
.
_remote_chmod
(
tmp
,
'a+rx'
,
remote_module_path
)
# configure, upload, and chmod the async_wrapper module
# configure, upload, and chmod the async_wrapper module
(
async_module_style
,
shebang
,
async_module_data
)
=
self
.
_configure_module
(
module_name
=
'async_wrapper'
,
module_args
=
dict
())
(
async_module_style
,
shebang
,
async_module_data
)
=
self
.
_configure_module
(
module_name
=
'async_wrapper'
,
module_args
=
dict
()
,
task_vars
=
task_vars
)
self
.
_transfer_data
(
async_module_path
,
async_module_data
)
self
.
_transfer_data
(
async_module_path
,
async_module_data
)
self
.
_remote_chmod
(
tmp
,
'a+rx'
,
async_module_path
)
self
.
_remote_chmod
(
tmp
,
'a+rx'
,
async_module_path
)
...
@@ -57,7 +57,7 @@ class ActionModule(ActionBase):
...
@@ -57,7 +57,7 @@ class ActionModule(ActionBase):
async_jid
=
str
(
random
.
randint
(
0
,
999999999999
))
async_jid
=
str
(
random
.
randint
(
0
,
999999999999
))
async_cmd
=
" "
.
join
([
str
(
x
)
for
x
in
[
async_module_path
,
async_jid
,
async_limit
,
remote_module_path
,
argsfile
]])
async_cmd
=
" "
.
join
([
str
(
x
)
for
x
in
[
async_module_path
,
async_jid
,
async_limit
,
remote_module_path
,
argsfile
]])
result
=
self
.
_low_level_execute_command
(
cmd
=
async_cmd
,
tmp
=
None
)
result
=
self
.
_low_level_execute_command
(
cmd
=
async_cmd
,
t
ask_vars
=
task_vars
,
t
mp
=
None
)
# clean up after
# clean up after
if
tmp
and
"tmp"
in
tmp
and
not
C
.
DEFAULT_KEEP_REMOTE_FILES
:
if
tmp
and
"tmp"
in
tmp
and
not
C
.
DEFAULT_KEEP_REMOTE_FILES
:
...
...
lib/ansible/plugins/action/copy.py
View file @
ee5e1665
...
@@ -191,7 +191,7 @@ class ActionModule(ActionBase):
...
@@ -191,7 +191,7 @@ class ActionModule(ActionBase):
# FIXME: runner shouldn't have the diff option there
# FIXME: runner shouldn't have the diff option there
#if self.runner.diff and not raw:
#if self.runner.diff and not raw:
# diff = self._get_diff_data(tmp, dest_file, source_full)
# diff = self._get_diff_data(tmp, dest_file, source_full
, task_vars
)
#else:
#else:
# diff = {}
# diff = {}
diff
=
{}
diff
=
{}
...
@@ -236,7 +236,7 @@ class ActionModule(ActionBase):
...
@@ -236,7 +236,7 @@ class ActionModule(ActionBase):
)
)
)
)
module_return
=
self
.
_execute_module
(
module_name
=
'copy'
,
module_args
=
new_module_args
,
delete_remote_tmp
=
delete_remote_tmp
)
module_return
=
self
.
_execute_module
(
module_name
=
'copy'
,
module_args
=
new_module_args
,
task_vars
=
task_vars
,
delete_remote_tmp
=
delete_remote_tmp
)
module_executed
=
True
module_executed
=
True
else
:
else
:
...
@@ -260,7 +260,7 @@ class ActionModule(ActionBase):
...
@@ -260,7 +260,7 @@ class ActionModule(ActionBase):
)
)
# Execute the file module.
# Execute the file module.
module_return
=
self
.
_execute_module
(
module_name
=
'file'
,
module_args
=
new_module_args
,
delete_remote_tmp
=
delete_remote_tmp
)
module_return
=
self
.
_execute_module
(
module_name
=
'file'
,
module_args
=
new_module_args
,
task_vars
=
task_vars
,
delete_remote_tmp
=
delete_remote_tmp
)
module_executed
=
True
module_executed
=
True
if
not
module_return
.
get
(
'checksum'
):
if
not
module_return
.
get
(
'checksum'
):
...
@@ -304,8 +304,8 @@ class ActionModule(ActionBase):
...
@@ -304,8 +304,8 @@ class ActionModule(ActionBase):
f
.
close
()
f
.
close
()
return
content_tempfile
return
content_tempfile
def
_get_diff_data
(
self
,
tmp
,
destination
,
source
):
def
_get_diff_data
(
self
,
tmp
,
destination
,
source
,
task_vars
):
peek_result
=
self
.
_execute_module
(
module_name
=
'file'
,
module_args
=
dict
(
path
=
destination
,
diff_peek
=
True
),
persist_files
=
True
)
peek_result
=
self
.
_execute_module
(
module_name
=
'file'
,
module_args
=
dict
(
path
=
destination
,
diff_peek
=
True
),
task_vars
=
task_vars
,
persist_files
=
True
)
if
'failed'
in
peek_result
and
peek_result
[
'failed'
]
or
peek_result
.
get
(
'rc'
,
0
)
!=
0
:
if
'failed'
in
peek_result
and
peek_result
[
'failed'
]
or
peek_result
.
get
(
'rc'
,
0
)
!=
0
:
return
{}
return
{}
...
@@ -318,7 +318,7 @@ class ActionModule(ActionBase):
...
@@ -318,7 +318,7 @@ class ActionModule(ActionBase):
#elif peek_result['size'] > utils.MAX_FILE_SIZE_FOR_DIFF:
#elif peek_result['size'] > utils.MAX_FILE_SIZE_FOR_DIFF:
# diff['dst_larger'] = utils.MAX_FILE_SIZE_FOR_DIFF
# diff['dst_larger'] = utils.MAX_FILE_SIZE_FOR_DIFF
else
:
else
:
dest_result
=
self
.
_execute_module
(
module_name
=
'slurp'
,
module_args
=
dict
(
path
=
destination
),
tmp
=
tmp
,
persist_files
=
True
)
dest_result
=
self
.
_execute_module
(
module_name
=
'slurp'
,
module_args
=
dict
(
path
=
destination
),
t
ask_vars
=
task_vars
,
t
mp
=
tmp
,
persist_files
=
True
)
if
'content'
in
dest_result
:
if
'content'
in
dest_result
:
dest_contents
=
dest_result
[
'content'
]
dest_contents
=
dest_result
[
'content'
]
if
dest_result
[
'encoding'
]
==
'base64'
:
if
dest_result
[
'encoding'
]
==
'base64'
:
...
...
lib/ansible/plugins/action/fetch.py
View file @
ee5e1665
...
@@ -61,7 +61,7 @@ class ActionModule(ActionBase):
...
@@ -61,7 +61,7 @@ class ActionModule(ActionBase):
# use slurp if sudo and permissions are lacking
# use slurp if sudo and permissions are lacking
remote_data
=
None
remote_data
=
None
if
remote_checksum
in
(
'1'
,
'2'
)
or
self
.
_connection_info
.
become
:
if
remote_checksum
in
(
'1'
,
'2'
)
or
self
.
_connection_info
.
become
:
slurpres
=
self
.
_execute_module
(
module_name
=
'slurp'
,
module_args
=
dict
(
src
=
source
),
tmp
=
tmp
)
slurpres
=
self
.
_execute_module
(
module_name
=
'slurp'
,
module_args
=
dict
(
src
=
source
),
t
ask_vars
=
task_vars
,
t
mp
=
tmp
)
if
slurpres
.
get
(
'rc'
)
==
0
:
if
slurpres
.
get
(
'rc'
)
==
0
:
if
slurpres
[
'encoding'
]
==
'base64'
:
if
slurpres
[
'encoding'
]
==
'base64'
:
remote_data
=
base64
.
b64decode
(
slurpres
[
'content'
])
remote_data
=
base64
.
b64decode
(
slurpres
[
'content'
])
...
...
lib/ansible/plugins/action/normal.py
View file @
ee5e1665
...
@@ -24,6 +24,6 @@ class ActionModule(ActionBase):
...
@@ -24,6 +24,6 @@ class ActionModule(ActionBase):
def
run
(
self
,
tmp
=
None
,
task_vars
=
dict
()):
def
run
(
self
,
tmp
=
None
,
task_vars
=
dict
()):
#vv("REMOTE_MODULE %s %s" % (module_name, module_args), host=conn.host)
#vv("REMOTE_MODULE %s %s" % (module_name, module_args), host=conn.host)
return
self
.
_execute_module
(
tmp
)
return
self
.
_execute_module
(
tmp
,
task_vars
=
task_vars
)
lib/ansible/plugins/action/patch.py
View file @
ee5e1665
...
@@ -36,7 +36,7 @@ class ActionModule(ActionBase):
...
@@ -36,7 +36,7 @@ class ActionModule(ActionBase):
elif
remote_src
:
elif
remote_src
:
# everything is remote, so we just execute the module
# everything is remote, so we just execute the module
# without changing any of the module arguments
# without changing any of the module arguments
return
self
.
_execute_module
()
return
self
.
_execute_module
(
task_vars
=
task_vars
)
if
self
.
_task
.
_role
is
not
None
:
if
self
.
_task
.
_role
is
not
None
:
src
=
self
.
_loader
.
path_dwim_relative
(
self
.
_task
.
_role
.
_role_path
,
'files'
,
src
)
src
=
self
.
_loader
.
path_dwim_relative
(
self
.
_task
.
_role
.
_role_path
,
'files'
,
src
)
...
@@ -63,4 +63,4 @@ class ActionModule(ActionBase):
...
@@ -63,4 +63,4 @@ class ActionModule(ActionBase):
)
)
)
)
return
self
.
_execute_module
(
'patch'
,
module_args
=
new_module_args
)
return
self
.
_execute_module
(
'patch'
,
module_args
=
new_module_args
,
task_vars
=
task_vars
)
lib/ansible/plugins/action/script.py
View file @
ee5e1665
...
@@ -42,7 +42,7 @@ class ActionModule(ActionBase):
...
@@ -42,7 +42,7 @@ class ActionModule(ActionBase):
# do not run the command if the line contains creates=filename
# do not run the command if the line contains creates=filename
# and the filename already exists. This allows idempotence
# and the filename already exists. This allows idempotence
# of command executions.
# of command executions.
result
=
self
.
_execute_module
(
module_name
=
'stat'
,
module_args
=
dict
(
path
=
creates
),
tmp
=
tmp
,
persist_files
=
True
)
result
=
self
.
_execute_module
(
module_name
=
'stat'
,
module_args
=
dict
(
path
=
creates
),
t
ask_vars
=
task_vars
,
t
mp
=
tmp
,
persist_files
=
True
)
stat
=
result
.
get
(
'stat'
,
None
)
stat
=
result
.
get
(
'stat'
,
None
)
if
stat
and
stat
.
get
(
'exists'
,
False
):
if
stat
and
stat
.
get
(
'exists'
,
False
):
return
dict
(
skipped
=
True
,
msg
=
(
"skipped, since
%
s exists"
%
creates
))
return
dict
(
skipped
=
True
,
msg
=
(
"skipped, since
%
s exists"
%
creates
))
...
@@ -52,7 +52,7 @@ class ActionModule(ActionBase):
...
@@ -52,7 +52,7 @@ class ActionModule(ActionBase):
# do not run the command if the line contains removes=filename
# do not run the command if the line contains removes=filename
# and the filename does not exist. This allows idempotence
# and the filename does not exist. This allows idempotence
# of command executions.
# of command executions.
result
=
self
.
_execute_module
(
module_name
=
'stat'
,
module_args
=
dict
(
path
=
removes
),
tmp
=
tmp
,
persist_files
=
True
)
result
=
self
.
_execute_module
(
module_name
=
'stat'
,
module_args
=
dict
(
path
=
removes
),
t
ask_vars
=
task_vars
,
t
mp
=
tmp
,
persist_files
=
True
)
stat
=
result
.
get
(
'stat'
,
None
)
stat
=
result
.
get
(
'stat'
,
None
)
if
stat
and
not
stat
.
get
(
'exists'
,
False
):
if
stat
and
not
stat
.
get
(
'exists'
,
False
):
return
dict
(
skipped
=
True
,
msg
=
(
"skipped, since
%
s does not exist"
%
removes
))
return
dict
(
skipped
=
True
,
msg
=
(
"skipped, since
%
s does not exist"
%
removes
))
...
...
lib/ansible/plugins/action/synchronize.py
View file @
ee5e1665
...
@@ -170,7 +170,7 @@ class ActionModule(ActionBase):
...
@@ -170,7 +170,7 @@ class ActionModule(ActionBase):
self
.
_task
.
args
[
'ssh_args'
]
=
constants
.
ANSIBLE_SSH_ARGS
self
.
_task
.
args
[
'ssh_args'
]
=
constants
.
ANSIBLE_SSH_ARGS
# run the module and store the result
# run the module and store the result
result
=
self
.
_execute_module
(
'synchronize'
)
result
=
self
.
_execute_module
(
'synchronize'
,
task_vars
=
task_vars
)
return
result
return
result
lib/ansible/plugins/action/template.py
View file @
ee5e1665
...
@@ -152,7 +152,7 @@ class ActionModule(ActionBase):
...
@@ -152,7 +152,7 @@ class ActionModule(ActionBase):
# res.diff = dict(before=dest_contents, after=resultant)
# res.diff = dict(before=dest_contents, after=resultant)
# return res
# return res
result
=
self
.
_execute_module
(
module_name
=
'copy'
,
module_args
=
new_module_args
)
result
=
self
.
_execute_module
(
module_name
=
'copy'
,
module_args
=
new_module_args
,
task_vars
=
task_vars
)
if
result
.
get
(
'changed'
,
False
):
if
result
.
get
(
'changed'
,
False
):
result
[
'diff'
]
=
dict
(
before
=
dest_contents
,
after
=
resultant
)
result
[
'diff'
]
=
dict
(
before
=
dest_contents
,
after
=
resultant
)
return
result
return
result
...
@@ -180,5 +180,5 @@ class ActionModule(ActionBase):
...
@@ -180,5 +180,5 @@ class ActionModule(ActionBase):
#if self.runner.noop_on_check(task_vars):
#if self.runner.noop_on_check(task_vars):
# new_module_args['CHECKMODE'] = True
# new_module_args['CHECKMODE'] = True
return
self
.
_execute_module
(
module_name
=
'file'
,
module_args
=
new_module_args
)
return
self
.
_execute_module
(
module_name
=
'file'
,
module_args
=
new_module_args
,
task_vars
=
task_vars
)
lib/ansible/plugins/action/unarchive.py
View file @
ee5e1665
...
@@ -47,7 +47,7 @@ class ActionModule(ActionBase):
...
@@ -47,7 +47,7 @@ class ActionModule(ActionBase):
# and the filename already exists. This allows idempotence
# and the filename already exists. This allows idempotence
# of command executions.
# of command executions.
module_args_tmp
=
"path=
%
s"
%
creates
module_args_tmp
=
"path=
%
s"
%
creates
result
=
self
.
_execute_module
(
module_name
=
'stat'
,
module_args
=
dict
(
path
=
creates
))
result
=
self
.
_execute_module
(
module_name
=
'stat'
,
module_args
=
dict
(
path
=
creates
)
,
task_vars
=
task_vars
)
stat
=
result
.
get
(
'stat'
,
None
)
stat
=
result
.
get
(
'stat'
,
None
)
if
stat
and
stat
.
get
(
'exists'
,
False
):
if
stat
and
stat
.
get
(
'exists'
,
False
):
return
dict
(
skipped
=
True
,
msg
=
(
"skipped, since
%
s exists"
%
creates
))
return
dict
(
skipped
=
True
,
msg
=
(
"skipped, since
%
s exists"
%
creates
))
...
@@ -110,5 +110,5 @@ class ActionModule(ActionBase):
...
@@ -110,5 +110,5 @@ class ActionModule(ActionBase):
# module_args += " CHECKMODE=True"
# module_args += " CHECKMODE=True"
# execute the unarchive module now, with the updated args
# execute the unarchive module now, with the updated args
return
self
.
_execute_module
(
module_args
=
new_module_args
)
return
self
.
_execute_module
(
module_args
=
new_module_args
,
task_vars
=
task_vars
)
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