diff options
author | xzeck <ajaypnair99@gmail.com> | 2025-01-13 17:51:49 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-13 17:51:49 +0100 |
commit | 40d364985dee5d4afecc478547f765574b3e41d6 (patch) | |
tree | c9eb036591c2ce94476803c22b9e39749e826489 | |
parent | ansible-test - Update utility containers (#84545) (diff) | |
download | ansible-40d364985dee5d4afecc478547f765574b3e41d6.tar.xz ansible-40d364985dee5d4afecc478547f765574b3e41d6.zip |
host_group_vars - fix Python API traceback caused by undefined 'key' variable (#84488)
Fixes:
Traceback (most recent call last):
File "/home/shertel/ansible/lib/ansible/plugins/vars/host_group_vars.py", line 139, in get_vars
FOUND[key] = found_files = loader.find_vars_files(opath, entity_name)
^^^
UnboundLocalError: cannot access local variable 'key' where it is not associated with a value
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/shertel/ansible/lib/ansible/plugins/vars/host_group_vars.py", line 151, in get_vars
raise AnsibleParserError(to_native(e))
ansible.errors.AnsibleParserError: cannot access local variable 'key' where it is not associated with a value
-rw-r--r-- | changelogs/fragments/84384-fix-undefined-key-host-group-vars.yml | 4 | ||||
-rw-r--r-- | lib/ansible/plugins/vars/host_group_vars.py | 16 |
2 files changed, 11 insertions, 9 deletions
diff --git a/changelogs/fragments/84384-fix-undefined-key-host-group-vars.yml b/changelogs/fragments/84384-fix-undefined-key-host-group-vars.yml new file mode 100644 index 0000000000..00f7117d80 --- /dev/null +++ b/changelogs/fragments/84384-fix-undefined-key-host-group-vars.yml @@ -0,0 +1,4 @@ +# Filename: changelogs/fragments/84384-fix-undefined-key-host-group-vars.yml + +bugfixes: + - host_group_vars - fixed defining the 'key' variable if the get_vars method is called with cache=False (https://github.com/ansible/ansible/issues/84384) diff --git a/lib/ansible/plugins/vars/host_group_vars.py b/lib/ansible/plugins/vars/host_group_vars.py index cb5b4b0c2b..7baa76bf28 100644 --- a/lib/ansible/plugins/vars/host_group_vars.py +++ b/lib/ansible/plugins/vars/host_group_vars.py @@ -119,21 +119,19 @@ class VarsModule(BaseVarsPlugin): else: raise AnsibleParserError("Supplied entity must be Host or Group, got %s instead" % (type(entity))) - if cache: - try: - opath = PATH_CACHE[(realpath_basedir, subdir)] - except KeyError: - opath = PATH_CACHE[(realpath_basedir, subdir)] = os.path.join(realpath_basedir, subdir) + try: + opath = PATH_CACHE[(realpath_basedir, subdir)] + except KeyError: + opath = PATH_CACHE[(realpath_basedir, subdir)] = os.path.join(realpath_basedir, subdir) + + key = '%s.%s' % (entity_name, opath) + if cache: if opath in NAK: continue - key = '%s.%s' % (entity_name, opath) if key in FOUND: data = self.load_found_files(loader, data, FOUND[key]) continue - else: - opath = PATH_CACHE[(realpath_basedir, subdir)] = os.path.join(realpath_basedir, subdir) - if os.path.isdir(opath): self._display.debug("\tprocessing dir %s" % opath) FOUND[key] = found_files = loader.find_vars_files(opath, entity_name) |