bytes when passing to os.path.* and opening the file, text at other times

Fixes #15644
This commit is contained in:
Toshio Kuratomi 2016-04-29 22:19:12 -07:00
commit b8a988e922
2 changed files with 6 additions and 5 deletions

View file

@ -34,7 +34,7 @@ from ansible.inventory.dir import InventoryDirectory, get_file_parser
from ansible.inventory.group import Group
from ansible.inventory.host import Host
from ansible.plugins import vars_loader
from ansible.utils.unicode import to_unicode
from ansible.utils.unicode import to_unicode, to_bytes
from ansible.utils.vars import combine_vars
from ansible.parsing.utils.addresses import parse_address
@ -742,11 +742,11 @@ class Inventory(object):
if group and host is None:
# load vars in dir/group_vars/name_of_group
base_path = os.path.abspath(os.path.join(to_unicode(basedir, errors='strict'), "group_vars/%s" % group.name))
base_path = to_unicode(os.path.abspath(os.path.join(to_bytes(basedir), "group_vars/%s" % to_bytes(group.name))), errors='strict')
results = combine_vars(results, self._variable_manager.add_group_vars_file(base_path, self._loader))
elif host and group is None:
# same for hostvars in dir/host_vars/name_of_host
base_path = os.path.abspath(os.path.join(to_unicode(basedir, errors='strict'), "host_vars/%s" % host.name))
base_path = to_unicode(os.path.abspath(os.path.join(to_bytes(basedir), "host_vars/%s" % to_bytes(host.name))), errors='strict')
results = combine_vars(results, self._variable_manager.add_host_vars_file(base_path, self._loader))
# all done, results is a dictionary of variables for this particular host.