From 62eadf6dc4e0915158143dbf94166b819d0c967b Mon Sep 17 00:00:00 2001 From: Rudd-O Date: Mon, 15 May 2017 23:04:31 +0000 Subject: [PATCH] Add ability to specify default value for lookup plugin. --- lookup_plugins/qubes-pass.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lookup_plugins/qubes-pass.py b/lookup_plugins/qubes-pass.py index faeeec0..a229b8a 100644 --- a/lookup_plugins/qubes-pass.py +++ b/lookup_plugins/qubes-pass.py @@ -10,9 +10,12 @@ except ImportError: display = Display() +UNDEFINED = object() + + class LookupModule(LookupBase): - def run(self, args, variables=None, vm=None, create=True, no_symbols=False): + def run(self, args, variables=None, vm=None, create=True, no_symbols=False, default=UNDEFINED): ret = [] @@ -33,7 +36,9 @@ class LookupModule(LookupBase): ret = subprocess.check_output(cmd)[:-1] except subprocess.CalledProcessError as e: if e.returncode == 8: - raise AnsibleError("qubes-pass could not locate password entry %s in store" % entry) + if create or default is UNDEFINED: + raise AnsibleError("qubes-pass could not locate password entry %s in store" % args[0]) + return [default] else: raise AnsibleError("qubes-pass lookup failed: %s" % e)