Steps To Reproduce:
1. Clone repo from https://github.com/murano-project/murano-app-incubator.
2. Create ZIP archive with io.murano.apps.java.HelloWorldCluster application.
3. Upload this application to Murano (and don't upload other applications such as Tomcat/PostgreSQL).
4. Create new environment and try to add HelloWorldCluster application to this new environment.
Expected Result:
Error message about non existed application dependencies: PostgreSQL application, Tomcat Single application and Tomcat Cluster application. We should show the error message with the detailed description about broken dependencies and with name of non existed dependencies.
Observed Result:
Error in horizon dashboard: "Danger: An error occurred. Please try again later."
in dashboard logs we can see the following traceback:
Traceback (most recent call last):
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 137, in get_response
response = response.render()
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/response.py", line 105, in render
self.content = self.rendered_content
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/response.py", line 82, in rendered_content
content = template.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 140, in render
return self._render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 123, in render
return compiled_parent._render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 62, in render
result = block.nodelist.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 305, in render
return nodelist.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 506, in render
output = self.nodelist.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 155, in render
return self.render_template(self.template, context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 137, in render_template
output = template.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 140, in render
return self._render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 196, in render
nodelist.append(node.render(context))
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 155, in render
return self.render_template(self.template, context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 137, in render_template
output = template.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 140, in render
return self._render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 305, in render
return nodelist.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/template/debug.py", line 91, in render
output = force_text(output)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/utils/encoding.py", line 100, in force_text
s = s.__unicode__()
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/forms/forms.py", line 425, in __str__
return self.as_widget()
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/django/forms/forms.py", line 475, in as_widget
return widget.render(name, self.value(), attrs=attrs)
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/horizon/forms/fields.py", line 171, in render
add_item_url = self.get_add_item_url()
File "/home/murano/murano/murano-dashboard/.tox/venv/local/lib/python2.7/site-packages/horizon/forms/fields.py", line 178, in get_add_item_url
return self.add_item_link()
File "/home/murano/murano/murano-dashboard/muranodashboard/dynamic_ui/fields.py", line 704, in _make_link
return json.dumps([_reverse(cls) for cls in fqns])
File "/home/murano/murano/murano-dashboard/muranodashboard/dynamic_ui/fields.py", line 701, in _reverse
raise KeyError(msg.format(_fqn))
KeyError: "Application with FQN='io.murano.apps.PostgreSql' doesn't exist"
RPM package murano-dashboard has been built for project openstack/ murano- dashboard mira7.git. 974a477. fc58f5b
Package version == 2014.2, package release == fuel6.0.
Changeset: https:/ /review. fuel-infra. org/1086 murano- dashboard ci/fuel- 6.0/2014. 2
project: openstack/
branch: openstack-
author: Ekaterina Chernova
committer: Ekaterina Chernova
subject: Show detailed information about absent package
status: patchset-created
Files placed on repository: dashboard- 2014.2- fuel6.0. mira7.git. 974a477. fc58f5b. noarch. rpm
murano-
NOTE: Changeset is not merged, created temporary package repository. osci-obs. vm.mirantis. net:82/ centos- fuel-6. 0-stable- 1086/centos
RPM repository URL: http://