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

23
pass.py
View File

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