mirror of
https://github.com/ansible/awx.git
synced 2026-01-17 04:31:21 -03:30
Add function to walk the extra_vars and render the results
This commit is contained in:
parent
e9a1582b70
commit
2034eac620
@ -528,9 +528,13 @@ class CredentialType(CommonModelNameNotUnique):
|
||||
|
||||
if 'INVENTORY_UPDATE_ID' not in env:
|
||||
# awx-manage inventory_update does not support extra_vars via -e
|
||||
extra_vars = {}
|
||||
for var_name, tmpl in self.injectors.get('extra_vars', {}).items():
|
||||
extra_vars[var_name] = sandbox_env.from_string(tmpl).render(**namespace)
|
||||
def build_extra_vars(node):
|
||||
if isinstance(node, dict):
|
||||
return {k: build_extra_vars(v) for k, v in node.items()}
|
||||
elif isinstance(node, list):
|
||||
return [build_extra_vars(x) for x in node]
|
||||
else:
|
||||
return sandbox_env.from_string(node).render(**namespace)
|
||||
|
||||
def build_extra_vars_file(vars, private_dir):
|
||||
handle, path = tempfile.mkstemp(dir=os.path.join(private_dir, 'env'))
|
||||
@ -540,6 +544,7 @@ class CredentialType(CommonModelNameNotUnique):
|
||||
os.chmod(path, stat.S_IRUSR)
|
||||
return path
|
||||
|
||||
extra_vars = build_extra_vars(self.injectors.get('extra_vars', {}))
|
||||
if extra_vars:
|
||||
path = build_extra_vars_file(extra_vars, private_data_dir)
|
||||
container_path = to_container_path(path, private_data_dir)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user