Commit 2063e10c by Aurélien Bondis

named actions + modules list in utils.py

parent dfaef806
...@@ -107,6 +107,7 @@ class PlayBook(object): ...@@ -107,6 +107,7 @@ class PlayBook(object):
self.inventory = ansible.inventory.Inventory(host_list) self.inventory = ansible.inventory.Inventory(host_list)
self.inventory.subset(subset) self.inventory.subset(subset)
self.modules_list = utils.get_available_modules(self.module_path)
if not self.inventory._is_script: if not self.inventory._is_script:
self.global_vars.update(self.inventory.get_group_variables('all')) self.global_vars.update(self.inventory.get_group_variables('all'))
......
...@@ -17,9 +17,6 @@ ...@@ -17,9 +17,6 @@
from ansible import errors from ansible import errors
from ansible import utils from ansible import utils
import ansible.constants as C
import os
from os import pathsep
class Task(object): class Task(object):
...@@ -43,14 +40,8 @@ class Task(object): ...@@ -43,14 +40,8 @@ class Task(object):
''' constructor loads from a task or handler datastructure ''' ''' constructor loads from a task or handler datastructure '''
# code to allow for saying "modulename: args" versus "action: modulename args" # code to allow for saying "modulename: args" versus "action: modulename args"
modules_list = set()
for path in C.DEFAULT_MODULE_PATH.split(pathsep):
if os.path.exists(path):
modules_list.update(os.listdir(path))
modules_list = list(modules_list)
for x in ds.keys(): for x in ds.keys():
if x in modules_list: if x in play.playbook.modules_list:
ds['action'] = x + " " + ds.get(x, None) ds['action'] = x + " " + ds.get(x, None)
ds.pop(x) ds.pop(x)
elif not x in Task.VALID_KEYS: elif not x in Task.VALID_KEYS:
......
...@@ -675,3 +675,17 @@ def import_plugins(directory): ...@@ -675,3 +675,17 @@ def import_plugins(directory):
if not name.startswith("_"): if not name.startswith("_"):
modules[name] = imp.load_source(name, path) modules[name] = imp.load_source(name, path)
return modules return modules
def get_available_modules(dirname=None):
"""
returns a list of modules available based on current directory
looks in DEFAULT_MODULE_PATH, all subfolders named library and
-M option"""
modules_list = set()
if dirname is None:
dirname = C.DEFAULT_MODULE_PATH
for path in dirname.split(os.pathsep):
if os.path.exists(path):
modules_list.update(os.listdir(path))
modules_list = list(modules_list)
return modules_list
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment