Look for plugins in the playbook's basedir

This commit is contained in:
Daniel Hokka Zakrisson
2012-09-15 02:02:38 +02:00
parent 036f853d42
commit 1aaf86069a
4 changed files with 17 additions and 1 deletions

View File

@@ -167,6 +167,11 @@ class Runner(object):
for (k,v) in lookup_plugin_list.iteritems():
self.lookup_plugins[k] = v.LookupModule(self)
for (k,v) in utils.import_plugins(os.path.join(self.basedir, 'action_plugins')).iteritems():
self.action_plugins[k] = v.ActionModule(self)
for (k,v) in utils.import_plugins(os.path.join(self.basedir, 'lookup_plugins')).iteritems():
self.lookup_plugins[k] = v.LookupModule(self)
# *****************************************************
def _delete_remote_files(self, conn, files):

View File

@@ -34,11 +34,15 @@ class Connection(object):
def __init__(self, runner):
self.runner = runner
self.modules = None
def connect(self, host, port):
if self.modules is None:
self.modules = modules.copy()
self.modules.update(utils.import_plugins(os.path.join(self.runner.basedir, 'connection_plugins')))
conn = None
transport = self.runner.transport
module = modules.get(transport, None)
module = self.modules.get(transport, None)
if module is None:
raise AnsibleError("unsupported connection type: %s" % transport)
conn = module.Connection(self.runner, host, port)