summaryrefslogtreecommitdiff
path: root/lib/ansible/plugins/action/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/plugins/action/__init__.py')
-rw-r--r--lib/ansible/plugins/action/__init__.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/ansible/plugins/action/__init__.py b/lib/ansible/plugins/action/__init__.py
index d1b034d763..40fdd670fc 100644
--- a/lib/ansible/plugins/action/__init__.py
+++ b/lib/ansible/plugins/action/__init__.py
@@ -165,14 +165,21 @@ class ActionBase(with_metaclass(ABCMeta, object)):
# Check to determine if PowerShell modules are supported, and apply
# some fixes (hacks) to module name + args.
if mod_type == '.ps1':
- # win_stat, win_file, and win_copy are not just like their
+ # FIXME: This should be temporary and moved to an exec subsystem plugin where we can define the mapping
+ # for each subsystem.
+ win_collection = 'ansible.windows'
+
+ # async_status, win_stat, win_file, win_copy, and win_ping are not just like their
# python counterparts but they are compatible enough for our
# internal usage
- if module_name in ('stat', 'file', 'copy') and self._task.action != module_name:
- module_name = 'win_%s' % module_name
+ if module_name in ('stat', 'file', 'copy', 'ping') and self._task.action != module_name:
+ module_name = '%s.win_%s' % (win_collection, module_name)
+ elif module_name in ['async_status']:
+ module_name = '%s.%s' % (win_collection, module_name)
# Remove extra quotes surrounding path parameters before sending to module.
- if module_name in ('win_stat', 'win_file', 'win_copy', 'slurp') and module_args and hasattr(self._connection._shell, '_unquote'):
+ if module_name.split('.')[-1] in ['win_stat', 'win_file', 'win_copy', 'slurp'] and module_args and \
+ hasattr(self._connection._shell, '_unquote'):
for key in ('src', 'dest', 'path'):
if key in module_args:
module_args[key] = self._connection._shell._unquote(module_args[key])