Make sure the basedir is unicode

Fixes #10773
pull/12438/head
James Cammarata 9 years ago
parent ba92965670
commit f40b66d841

@ -31,6 +31,7 @@ from ansible.parsing.splitter import unquote
from ansible.parsing.yaml.loader import AnsibleLoader
from ansible.parsing.yaml.objects import AnsibleBaseYAMLObject, AnsibleUnicode
from ansible.utils.path import unfrackpath
from ansible.utils.unicode import to_unicode
class DataLoader():
@ -175,7 +176,7 @@ class DataLoader():
''' sets the base directory, used to find files when a relative path is given '''
if basedir is not None:
self._basedir = basedir
self._basedir = to_unicode(basedir)
def path_dwim(self, given):
'''

@ -129,7 +129,7 @@ class RoleDefinition(Base, Become, Conditional, Taggable):
return (role_name, role_path)
else:
# we always start the search for roles in the base directory of the playbook
role_search_paths = [os.path.join(self._loader.get_basedir(), 'roles'), './roles', './']
role_search_paths = [os.path.join(self._loader.get_basedir(), u'roles'), u'./roles', u'./']
# also search in the configured roles path
if C.DEFAULT_ROLES_PATH:

@ -29,6 +29,7 @@ import sys
from ansible import constants as C
from ansible.utils.display import Display
from ansible.utils.unicode import to_unicode
from ansible import errors
MODULE_CACHE = {}
@ -38,7 +39,7 @@ _basedirs = []
def push_basedir(basedir):
# avoid pushing the same absolute dir more than once
basedir = os.path.realpath(basedir)
basedir = to_unicode(os.path.realpath(basedir))
if basedir not in _basedirs:
_basedirs.insert(0, basedir)

Loading…
Cancel
Save