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
|
# Entry point for Ansible starts here with the LookupModule class
|
||||||
class LookupModule(LookupBase):
|
class LookupModule(LookupBase):
|
||||||
|
|
||||||
|
|
||||||
def run(self, terms, variables=None, scope=None, **kwargs):
|
def run(self, terms, variables=None, scope=None, **kwargs):
|
||||||
|
|
||||||
self.set_options(direct=kwargs)
|
self.set_options(direct=kwargs)
|
||||||
@ -98,9 +100,8 @@ class LookupModule(LookupBase):
|
|||||||
|
|
||||||
|
|
||||||
# Prepare Kheops instance
|
# Prepare Kheops instance
|
||||||
self.config_file = self.get_option('config')
|
|
||||||
configs = [
|
configs = [
|
||||||
self.config_file,
|
self.get_option('config'),
|
||||||
kwargs,
|
kwargs,
|
||||||
#{
|
#{
|
||||||
# "instance_log_level": 'DEBUG',
|
# "instance_log_level": 'DEBUG',
|
||||||
@ -115,36 +116,63 @@ class LookupModule(LookupBase):
|
|||||||
else:
|
else:
|
||||||
templar = self._templar
|
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
|
# Transform dict to list for lookup/queries
|
||||||
ret = []
|
ret = []
|
||||||
for term in terms:
|
#for term in terms:
|
||||||
result = kheops.super_lookup(
|
|
||||||
keys=term,
|
results = kheops.super_lookup_seq(
|
||||||
scope=scope,
|
keys=terms,
|
||||||
_variables=variables,
|
#scope=scope,
|
||||||
|
scope_vars=variables,
|
||||||
_templar=templar,
|
_templar=templar,
|
||||||
|
jinja2_native=jinja2_native,
|
||||||
|
_process_results='jinja',
|
||||||
)
|
)
|
||||||
|
|
||||||
# Render data with Templar
|
final = []
|
||||||
#if process_results == 'jinja':
|
for result in results:
|
||||||
# with templar.set_temporary_context(available_variables=variables):
|
only_key = list(result.keys())
|
||||||
# result = templar.template(result,
|
if len(only_key) > 0:
|
||||||
# preserve_trailing_newlines=True,
|
final.append(result[only_key[0]])
|
||||||
# convert_data=False, escape_backslashes=False)
|
|
||||||
|
|
||||||
# if USE_JINJA2_NATIVE and not jinja2_native:
|
return final
|
||||||
# # 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 result
|
try:
|
||||||
subkey = list(result.keys())[0]
|
found_term = list(result[0].keys())
|
||||||
ret.append(result[subkey])
|
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
|
return ret
|
||||||
|
|||||||
@ -237,7 +237,7 @@ class Key():
|
|||||||
|
|
||||||
key = None
|
key = None
|
||||||
remap = key
|
remap = key
|
||||||
namespace = self.default_namespace
|
namespace = ret['namespace']
|
||||||
|
|
||||||
# Extract config from string
|
# Extract config from string
|
||||||
parts = key_def.split(KEY_NS_SEP, 3)
|
parts = key_def.split(KEY_NS_SEP, 3)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user