Set decoding of path to unicode to raise an exception if non-utf8

Letting it pass would just cause an error later on (no such file found)
so it's better to catch it here and know that we have users dealing with
non-utf8 pathnames than to have to track it down from later on.
This commit is contained in:
Toshio Kuratomi 2016-01-19 05:48:12 -08:00
parent 40373dea4d
commit 94a9ed0ee1

View file

@ -735,11 +735,11 @@ class Inventory(object):
if group and host is None: if group and host is None:
# load vars in dir/group_vars/name_of_group # load vars in dir/group_vars/name_of_group
base_path = os.path.realpath(os.path.join(to_unicode(basedir), "group_vars/%s" % group.name)) base_path = os.path.realpath(os.path.join(to_unicode(basedir, errors='strict'), "group_vars/%s" % group.name))
results = combine_vars(results, self._variable_manager.add_group_vars_file(base_path, self._loader)) results = combine_vars(results, self._variable_manager.add_group_vars_file(base_path, self._loader))
elif host and group is None: elif host and group is None:
# same for hostvars in dir/host_vars/name_of_host # same for hostvars in dir/host_vars/name_of_host
base_path = os.path.realpath(os.path.join(to_unicode(basedir), "host_vars/%s" % host.name)) base_path = os.path.realpath(os.path.join(to_unicode(basedir, errors='strict'), "host_vars/%s" % host.name))
results = combine_vars(results, self._variable_manager.add_host_vars_file(base_path, self._loader)) 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. # all done, results is a dictionary of variables for this particular host.