Busy access for importing remote definition file can be failed

Bug #2006796 reported by Yasufumi Ogawa
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
TOSCA Parser
New
Undecided
Yasufumi Ogawa

Bug Description

toscaparser supports nested importing of definitions from local or remote while instantiating a tosca template. However, importing from remote can be failed and ended up in "Bad Gateway" error if the server is busy. Here is am example of log using tosca template in Tacker.

2023-02-06 06:53:59,581 ERROR [tacker.api.vnflcm.v1.controller]
The pre-parsed input failed validation with the following error(s):

        URLException: Failed to reach server "https://forge.etsi.org/rep/nfv/SOL001/raw/v2.6.1/etsi_nfv_sol001_common_types.yaml". Reason is: Bad Gateway.
                File /usr/lib/python3.8/runpy.py, line 194, in _run_module_as_main
                        return _run_code(code, main_globals, None,
                File /usr/lib/python3.8/runpy.py, line 87, in _run_code
                        exec(code, run_globals)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/stestr/subunit_runner/run.py, line 93, in <module>
                        main()
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/stestr/subunit_runner/run.py, line 87, in main
                        program.TestProgram(
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/stestr/subunit_runner/program.py, line 185, in __init__
                        self.runTests()
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/stestr/subunit_runner/program.py, line 226, in runTests
                        self.result = testRunner.run(self.test)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/stestr/subunit_runner/run.py, line 52, in run
                        test(result)
                File /usr/lib/python3.8/unittest/suite.py, line 84, in __call__
                        return self.run(*args, **kwds)
                File /usr/lib/python3.8/unittest/suite.py, line 122, in run
                        test(result)
                File /usr/lib/python3.8/unittest/suite.py, line 84, in __call__
                        return self.run(*args, **kwds)
                File /usr/lib/python3.8/unittest/suite.py, line 122, in run
                        test(result)
                File /usr/lib/python3.8/unittest/suite.py, line 84, in __call__
                        return self.run(*args, **kwds)
                File /usr/lib/python3.8/unittest/suite.py, line 122, in run
                        test(result)
                File /usr/lib/python3.8/unittest/case.py, line 736, in __call__
                        return self.run(*args, **kwds)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/testtools/testcase.py, line 654, in run
                        return run_test.run(result)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/testtools/runtest.py, line 80, in run
                        return self._run_one(actual_result)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/testtools/runtest.py, line 94, in _run_one
                        return self._run_prepared_result(ExtendedToOriginalDecorator(result))
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/testtools/runtest.py, line 108, in _run_prepared_result
                        self._run_core()
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/testtools/runtest.py, line 145, in _run_core
                        if self.exception_caught == self._run_user(
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/testtools/runtest.py, line 193, in _run_user
                        return fn(*args, **kwargs)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/testtools/testcase.py, line 702, in _run_test_method
                        return self._get_test_method()()
                File /usr/lib/python3.8/unittest/mock.py, line 1325, in patched
                        return func(*newargs, **newkeywargs)
                File /home/zuul/src/opendev.org/openstack/tacker/tacker/tests/unit/vnflcm/test_controller.py, line 3013, in test_scale_out_cnf_err_over_max_scale_level
                        resp = req.get_response(self.app)
File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/webob/request.py, line 1313, in send
                        status, headers, app_iter = self.call_application(
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/webob/request.py, line 1278, in call_application
                        app_iter = application(self.environ, start_response)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/webob/dec.py, line 143, in __call__
                        return resp(environ, start_response)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/webob/dec.py, line 143, in __call__
                        return resp(environ, start_response)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/routes/middleware.py, line 153, in __call__
                        response = self.app(environ, start_response)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/webob/dec.py, line 143, in __call__
                        return resp(environ, start_response)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/webob/dec.py, line 129, in __call__
                        resp = self.call_func(req, *args, **kw)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/webob/dec.py, line 193, in call_func
                        return self.func(req, *args, **kwargs)
                File /home/zuul/src/opendev.org/openstack/tacker/tacker/wsgi.py, line 984, in __call__
                        action_result = self.dispatch(request, action, args)
                File /home/zuul/src/opendev.org/openstack/tacker/tacker/wsgi.py, line 1025, in dispatch
                        return controller_method(request=request, **action_args)
                File /home/zuul/src/opendev.org/openstack/tacker/tacker/api/validation/__init__.py, line 49, in wrapper
                        return func(*args, **kwargs)
                File /home/zuul/src/opendev.org/openstack/tacker/tacker/wsgi.py, line 108, in wrapped
                        return f(*args, **kwargs)
                File /home/zuul/src/opendev.org/openstack/tacker/tacker/api/vnflcm/v1/controller.py, line 1370, in scale
                        return self._scale(context, vnf_instance, vnf_info, body)
                File /home/zuul/src/opendev.org/openstack/tacker/tacker/api/vnflcm/v1/controller.py, line 105, in inner
                        return f(self, context, vnf_instance, *args, **kw)
                File /home/zuul/src/opendev.org/openstack/tacker/tacker/api/vnflcm/v1/controller.py, line 160, in inner
                        return f(self, context, vnf_instance, vnf, *args, **kw)
                File /home/zuul/src/opendev.org/openstack/tacker/tacker/api/vnflcm/v1/controller.py, line 1255, in _scale
                        max_level = self._get_scale_max_level_from_vnfd(
                File /home/zuul/src/opendev.org/openstack/tacker/tacker/api/vnflcm/v1/controller.py, line 1191, in _get_scale_max_level_from_vnfd
                        tosca = tosca_template.ToscaTemplate(parsed_params={}, a_file=False,
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/toscaparser/tosca_template.py, line 103, in __init__
                        self.topology_template = self._topology_template()
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/toscaparser/tosca_template.py, line 119, in _topology_template
                        self._get_all_custom_defs(),
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/toscaparser/tosca_template.py, line 181, in _get_all_custom_defs
                        import_defs = self._get_all_custom_defs(
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/toscaparser/tosca_template.py, line 175, in _get_all_custom_defs
                        custom_defs, nested_imports = self._get_custom_types(
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/toscaparser/tosca_template.py, line 211, in _get_custom_types
                        custom_service = toscaparser.imports.\
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/toscaparser/imports.py, line 56, in __init__
                        self._validate_and_load_imports()
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/toscaparser/imports.py, line 98, in _validate_and_load_imports
                        full_file_name, custom_type = self._load_import_template(
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/toscaparser/imports.py, line 200, in _load_import_template
                        return file_name, YAML_LOADER(file_name, False)
                File /home/zuul/src/opendev.org/openstack/tacker/.tox/py38/lib/python3.8/site-packages/toscaparser/utils/yamlparser.py, line 45, in load_yaml
                        ExceptionCollector.appendException(URLException(what=msg))

Revision history for this message
Yasufumi Ogawa (yasufum) wrote :
summary: - Busy access for importing definition file can be failed
+ Busy access for importing remote definition file can be failed
Yasufumi Ogawa (yasufum)
Changed in tosca-parser:
assignee: nobody → Yasufumi Ogawa (yasufum)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tosca-parser 2.9.0

This issue was fixed in the openstack/tosca-parser 2.9.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.