Make sure the basedir is unicode

Fixes #10773
This commit is contained in:
James Cammarata 2015-07-12 16:39:27 -04:00
parent ba92965670
commit f40b66d841
3 changed files with 5 additions and 3 deletions

View file

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

View file

@ -129,7 +129,7 @@ class RoleDefinition(Base, Become, Conditional, Taggable):
return (role_name, role_path) return (role_name, role_path)
else: else:
# we always start the search for roles in the base directory of the playbook # 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 # also search in the configured roles path
if C.DEFAULT_ROLES_PATH: if C.DEFAULT_ROLES_PATH:

View file

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