Manuel Amador (Rudd-O) f62168c99c Get when not create.
2017-05-07 16:00:46 +00:00

39 lines
987 B
Python

from ansible.errors import AnsibleError
from ansible.plugins.lookup import LookupBase
import subprocess
try:
from __main__ import display
except ImportError:
from ansible.utils.display import Display
display = Display()
class LookupModule(LookupBase):
def run(self, entry, variables=None, vm=None, create=True):
ret = []
cmd = ['qvm-pass']
if vm is not None:
cmd += ['-d', vm]
if create:
cmd += ['get-or-generate']
else:
cmd += ['get']
cmd += ['--', entry]
display.vvvv(u"Password lookup using command %s" % cmd)
try:
ret = subprocess.check_output(cmd)[:-1]
except subprocess.CalledProcessError as e:
if e.retcode == 8:
raise AnsibleError("qubes-pass could not locate password entry %s in store" % entry)
else:
raise AnsibleError("qubes-pass lookup failed: %s" % e)
return ret