Created attachment 1065947 [details] Heat validate command, error, trace Description of problem: Nested Heat templates with local file references fail to validate and create with URL NotFound error. Version-Release number of selected component (if applicable): openstack-heat-common-2015.1.0-4.el7ost.noarch python-heatclient-0.6.0-1.el7ost.noarch Steps to Reproduce: 1. Deploy Undercloud and Overcloud (1 compute, 1 controller is fine) 2. Create a tenant and nested heat template with file refernce (not URL) 3. Validate or create nested heat template Actual results: Fails with trace: heatclient.exc.HTTPNotFound: ERROR: Not found Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/heat/common/context.py", line 300, in wrapped return func(self, ctx, *args, **kwargs) File "/usr/lib/python2.7/site-packages/heat/engine/service.py", line 815, in validate_template ResourceClass = env.get_class(res['Type']) File "/usr/lib/python2.7/site-packages/heat/engine/environment.py", line 513, in get_class return self.registry.get_class(resource_type, resource_name) File "/usr/lib/python2.7/site-packages/heat/engine/environment.py", line 408, in get_class return info.get_class() File "/usr/lib/python2.7/site-packages/heat/engine/environment.py", line 146, in get_class env) File "/usr/lib/python2.7/site-packages/heat/engine/resources/template_resource.py", line 30, in generate_class data = TemplateResource.get_template_file(template_name, ('file',)) File "/usr/lib/python2.7/site-packages/heat/engine/resources/template_resource.py", line 90, in get_template_file raise exception.NotFound(msg_fmt=msg) NotFound: Could not fetch remote template "file:///home/stack/templates/lib/private_network.yaml": Failed to retrieve template: <urlopen error [Errno 2] No such file or directory: '/home/stack/templates/lib/private_network.yaml'> Expected results: Deploys nested stack Additional info: Attaching debug output from heat validate as HOTs
Created attachment 1065959 [details] HOT for EAP 6 web app
Created attachment 1065960 [details] HOT for Neutron private network
I downloaded the template files uploaded, and there's an error in eapws5.yaml, I had to modify the resource definition to match the parameters defined in lib/private_network.yaml: network: type: lib/private_network.yaml properties: public_net_id: { get_param: public_net_id } With that change, heat template-validate works fine with upstream heat - I've yet to test with heat deployed by OSPd but hopefully a useful data-point.
Jacob, can you verify this fixed your issue, please?
Chris, I am still testing. I made the suggested change and hit new errors. Its looks promising, I should know today.
Chris, I implemented the fix but heat template-validate for nested templates still fails. Heat can build the stack from the template, it is only the validate command that fails. [stack@rhos0 ~(demo_member)]$ ls /home/stack/templates/lib/product-service.yaml /home/stack/templates/lib/product-service.yaml [stack@rhos0 ~(demo_member)]$ heat --debug -v template-validate --template-file templates/eapws5_nested.yaml ... heatclient.exc.HTTPNotFound: ERROR: Not found Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/heat/common/context.py", line 300, in wrapped return func(self, ctx, *args, **kwargs) File "/usr/lib/python2.7/site-packages/heat/engine/service.py", line 815, in validate_template ResourceClass = env.get_class(res['Type']) File "/usr/lib/python2.7/site-packages/heat/engine/environment.py", line 513, in get_class return self.registry.get_class(resource_type, resource_name) File "/usr/lib/python2.7/site-packages/heat/engine/environment.py", line 408, in get_class return info.get_class() File "/usr/lib/python2.7/site-packages/heat/engine/environment.py", line 146, in get_class env) File "/usr/lib/python2.7/site-packages/heat/engine/resources/template_resource.py", line 30, in generate_class data = TemplateResource.get_template_file(template_name, ('file',)) File "/usr/lib/python2.7/site-packages/heat/engine/resources/template_resource.py", line 90, in get_template_file raise exception.NotFound(msg_fmt=msg) NotFound: Could not fetch remote template "file:///home/stack/templates/lib/product-service.yaml": Failed to retrieve template: <urlopen error [Errno 2] No such file or directory: '/home/stack/templates/lib/product-service.yaml'>
This bug did not make the OSP 8.0 release. It is being deferred to OSP 10.
This seems obsolete. Please, re-open if could be reproduced.