|
|
|
@ -148,21 +148,20 @@ class DataLoader:
|
|
|
|
|
:return: Returns a byte string of the file contents
|
|
|
|
|
'''
|
|
|
|
|
if not file_name or not isinstance(file_name, (binary_type, text_type)):
|
|
|
|
|
raise AnsibleParserError("Invalid filename: '%s'" % str(file_name))
|
|
|
|
|
raise AnsibleParserError("Invalid filename: '%s'" % to_native(file_name))
|
|
|
|
|
|
|
|
|
|
b_file_name = to_bytes(self.path_dwim(file_name))
|
|
|
|
|
# This is what we really want but have to fix unittests to make it pass
|
|
|
|
|
# if not os.path.exists(b_file_name) or not os.path.isfile(b_file_name):
|
|
|
|
|
if not self.path_exists(b_file_name) or not self.is_file(b_file_name):
|
|
|
|
|
if not self.path_exists(b_file_name):
|
|
|
|
|
raise AnsibleFileNotFound("Unable to retrieve file contents", file_name=file_name)
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
with open(b_file_name, 'rb') as f:
|
|
|
|
|
data = f.read()
|
|
|
|
|
return self._decrypt_if_vault_data(data, b_file_name)
|
|
|
|
|
|
|
|
|
|
except (IOError, OSError) as e:
|
|
|
|
|
raise AnsibleParserError("an error occurred while trying to read the file '%s': %s" % (file_name, str(e)), orig_exc=e)
|
|
|
|
|
raise AnsibleParserError("an error occurred while trying to read the file '%s': %s" % (file_name, to_native(e)), orig_exc=e)
|
|
|
|
|
|
|
|
|
|
def get_basedir(self):
|
|
|
|
|
''' returns the current basedir '''
|
|
|
|
|