Convert pass lookup plugin to ansible 2

Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
This commit is contained in:
Jan Losinski 2016-11-11 03:30:01 +01:00
parent 7cec9ace31
commit c271d9650c
1 changed files with 14 additions and 9 deletions

21
pass.py
View File

@ -19,27 +19,31 @@ from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import os
import six
import subprocess
from ansible import utils, errors
from ansible.plugins.lookup import LookupBase
from ansible.errors import AnsibleError
class LookupModule(object):
class LookupModule(LookupBase):
COMMAND="pass"
CREDENIAL_DIR="credentials"
def __init__(self, basedir=None, **kwargs):
self.basedir = basedir
#def __init__(self, basedir=None, **kwargs):
# super(LookupModule, self).__init__()
# self.basedir = basedir
def run(self, terms, inject=None, **kwargs):
def run(self, terms, inject=None, variables=None, **kwargs):
candidates = []
basepath = utils.path_dwim(self.basedir, self.CREDENIAL_DIR)
basedir = self.get_basedir(variables)
basepath = self._loader.path_dwim_relative(basedir, "", self.CREDENIAL_DIR)
if basepath:
candidates.append(basepath)
if "playbook_dir" in inject:
if inject is not None and "playbook_dir" in inject:
candidates.append(os.path.join(inject['playbook_dir'], self.CREDENIAL_DIR))
keydir = None
@ -47,9 +51,10 @@ class LookupModule(object):
if os.path.exists(candidate):
keydir = candidate
break
if 'listify_lookup_plugin_terms' in globals():
terms = utils.listify_lookup_plugin_terms(terms, self.basedir, inject)
if isinstance(terms, basestring):
if isinstance(terms, six.string_types):
terms = [ terms ]
ret = []
@ -74,7 +79,7 @@ class LookupModule(object):
command = "%s %s" % (self.COMMAND, term)
p = subprocess.Popen(command,
cwd=self.basedir,
cwd=basedir,
shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,