Wip: To keep or loose ? TOFIX
This commit is contained in:
parent
e7c6330020
commit
02b621b79a
@ -87,6 +87,8 @@ from pprint import pprint
|
||||
|
||||
# Entry point for Ansible starts here with the LookupModule class
|
||||
class LookupModule(LookupBase):
|
||||
|
||||
|
||||
def run(self, terms, variables=None, scope=None, **kwargs):
|
||||
|
||||
self.set_options(direct=kwargs)
|
||||
@ -98,9 +100,8 @@ class LookupModule(LookupBase):
|
||||
|
||||
|
||||
# Prepare Kheops instance
|
||||
self.config_file = self.get_option('config')
|
||||
configs = [
|
||||
self.config_file,
|
||||
self.get_option('config'),
|
||||
kwargs,
|
||||
#{
|
||||
# "instance_log_level": 'DEBUG',
|
||||
@ -115,36 +116,63 @@ class LookupModule(LookupBase):
|
||||
else:
|
||||
templar = self._templar
|
||||
|
||||
# Create scope
|
||||
if process_scope == 'vars':
|
||||
scope = kheops.get_scope_from_host_inventory(variables, scope=None)
|
||||
elif process_scope == 'jinja':
|
||||
scope = kheops.get_scope_from_jinja(variables, self._templar, scope=None)
|
||||
|
||||
# Transform dict to list for lookup/queries
|
||||
ret = []
|
||||
for term in terms:
|
||||
result = kheops.super_lookup(
|
||||
keys=term,
|
||||
scope=scope,
|
||||
_variables=variables,
|
||||
#for term in terms:
|
||||
|
||||
results = kheops.super_lookup_seq(
|
||||
keys=terms,
|
||||
#scope=scope,
|
||||
scope_vars=variables,
|
||||
_templar=templar,
|
||||
jinja2_native=jinja2_native,
|
||||
_process_results='jinja',
|
||||
)
|
||||
|
||||
# Render data with Templar
|
||||
#if process_results == 'jinja':
|
||||
# with templar.set_temporary_context(available_variables=variables):
|
||||
# result = templar.template(result,
|
||||
# preserve_trailing_newlines=True,
|
||||
# convert_data=False, escape_backslashes=False)
|
||||
final = []
|
||||
for result in results:
|
||||
only_key = list(result.keys())
|
||||
if len(only_key) > 0:
|
||||
final.append(result[only_key[0]])
|
||||
|
||||
# if USE_JINJA2_NATIVE and not jinja2_native:
|
||||
# # jinja2_native is true globally but off for the lookup, we need this text
|
||||
# # not to be processed by literal_eval anywhere in Ansible
|
||||
# result = NativeJinjaText(result)
|
||||
return final
|
||||
|
||||
# Return result
|
||||
subkey = list(result.keys())[0]
|
||||
ret.append(result[subkey])
|
||||
try:
|
||||
found_term = list(result[0].keys())
|
||||
if len(found_term) > 0:
|
||||
return result[0][found_term[0]]
|
||||
except Exception as err:
|
||||
print (err)
|
||||
return result[0]
|
||||
|
||||
|
||||
return None
|
||||
|
||||
# Merge results if any
|
||||
#from pprint import pprint
|
||||
#pprint (result)
|
||||
final = None
|
||||
if len(result) > 0:
|
||||
final_keys = list(result[0].keys())
|
||||
#print ("Final key", final_keys)
|
||||
if len(final_keys) > 0:
|
||||
#print ("yeahhhh", final_keys[0], result[0][final_keys[0]])
|
||||
final = result[0][final_keys[0]]
|
||||
if len(final_keys) > 1:
|
||||
print ("Warning, other results are ignored !!!")
|
||||
|
||||
return final
|
||||
|
||||
|
||||
#final = result[0].keys()[0] if len(result) > 0 else None
|
||||
|
||||
#final = {}
|
||||
#for res in result:
|
||||
# pprint (res)
|
||||
# final.update(res)
|
||||
|
||||
#final = result
|
||||
|
||||
ret.append(final)
|
||||
|
||||
return ret
|
||||
|
||||
@ -237,7 +237,7 @@ class Key():
|
||||
|
||||
key = None
|
||||
remap = key
|
||||
namespace = self.default_namespace
|
||||
namespace = ret['namespace']
|
||||
|
||||
# Extract config from string
|
||||
parts = key_def.split(KEY_NS_SEP, 3)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user