From 97cb2016d86523ad6efbee2c2975ca287075a2a4 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Tue, 21 Mar 2017 13:11:23 -0400 Subject: [PATCH] keep ansible_local as top level var, always present --- lib/ansible/vars/__init__.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/ansible/vars/__init__.py b/lib/ansible/vars/__init__.py index 06d5edef4c..0cfa4915cf 100644 --- a/lib/ansible/vars/__init__.py +++ b/lib/ansible/vars/__init__.py @@ -287,6 +287,17 @@ class VariableManager: all_vars = combine_vars(all_vars, host_facts) # always return namespaced facts all_vars = combine_vars(all_vars, {'ansible_facts': host_facts}) + + # push local to top namespace, ensure we always have, even if empty + if 'ansible_local' in all_vars['ansible_facts']: + all_vars.update({'ansible_local': all_vars['ansible_facts']['ansible_local']}) + else: + all_vars.update({'ansible_local': {}}) + + # remove possible extra ansible_local from ansible_facts namespace + if 'ansible_local' in all_vars['ansible_facts']: + del all_vars['ansible_facts']['ansible_local'] + except KeyError: pass