Fix Tosca Parser returns an exception in the output when run on a node
type template tosca-parser now supports for any template or definition file that's under custom_types dir or nested at same level. Closes-Bug: #1524459 Change-Id: Ic32e524b7c4fa9f7b85a57b5552299d34f2ecf2f
This commit is contained in:
parent
b17656cb20
commit
b013a988bb
|
@ -78,8 +78,8 @@ class ImportsLoader(object):
|
|||
if isinstance(import_uri, dict):
|
||||
namespace_prefix = import_uri.get(
|
||||
self.NAMESPACE_PREFIX)
|
||||
|
||||
self._update_custom_def(custom_type, namespace_prefix)
|
||||
if custom_type:
|
||||
self._update_custom_def(custom_type, namespace_prefix)
|
||||
else: # old style of imports
|
||||
custom_type = self._load_import_template(None,
|
||||
import_def)
|
||||
|
@ -183,6 +183,7 @@ class ImportsLoader(object):
|
|||
else:
|
||||
a_file = True
|
||||
main_a_file = os.path.isfile(self.path)
|
||||
|
||||
if main_a_file:
|
||||
if os.path.isfile(file_name):
|
||||
import_template = file_name
|
||||
|
@ -192,6 +193,22 @@ class ImportsLoader(object):
|
|||
file_name)
|
||||
if os.path.isfile(full_path):
|
||||
import_template = full_path
|
||||
else:
|
||||
file_path = file_name.rpartition("/")
|
||||
dir_path = os.path.dirname(os.path.abspath(
|
||||
self.path))
|
||||
if file_path[0] != '' and dir_path.endswith(
|
||||
file_path[0]):
|
||||
import_template = dir_path + "/" +\
|
||||
file_path[2]
|
||||
if not os.path.isfile(import_template):
|
||||
msg = (_('"%(import_template)s" is'
|
||||
'not a valid file')
|
||||
% {'import_template':
|
||||
import_template})
|
||||
log.error(msg)
|
||||
ExceptionCollector.appendException
|
||||
(ValueError(msg))
|
||||
else: # template is pre-parsed
|
||||
if os.path.isabs(file_name):
|
||||
import_template = file_name
|
||||
|
|
Binary file not shown.
|
@ -108,8 +108,8 @@ class CSARPrereqTest(TestCase):
|
|||
"data/CSAR/csar_wordpress_invalid_import_path.zip")
|
||||
csar = CSAR(path)
|
||||
error = self.assertRaises(ImportError, csar.validate)
|
||||
self.assertEqual(_('Import "Definitions/wordpress.yaml" is not '
|
||||
'valid.'), str(error))
|
||||
self.assertEqual(_('Import "Invalid_import_path/wordpress.yaml" is'
|
||||
' not valid.'), str(error))
|
||||
self.assertTrue(csar.temp_dir is None or
|
||||
not os.path.exists(csar.temp_dir))
|
||||
|
||||
|
|
Loading…
Reference in New Issue