Commit f40b66d8 by James Cammarata

Make sure the basedir is unicode

Fixes #10773
parent ba929656
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment