Bug 2070859
| Summary: | ERROR django.request Internal Server Error: /dashboard/project/stacks/select_template horizon error is shown while deployment heat stack yaml template | ||
|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | alisci <alisci> |
| Component: | openstack-heat-ui | Assignee: | OSP Team <rhos-maint> |
| Status: | CLOSED DUPLICATE | QA Contact: | Ronnie Rasouli <rrasouli> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 16.2 (Train) | CC: | rdopiera |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2022-04-07 14:40:42 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
*** This bug has been marked as a duplicate of bug 2036716 *** |
Description of problem: heat stack fails to be deployed from horizon dashboard if user_data get_file it is defined for OS::Nova::Server resource . the same templates works well if ran from the cli On dash board it is shown the error: Danger: There was an error submitting the form. Please try again. while on horizon logs it shows the following error: 2022-03-31 15:52:03,028 60 ERROR django.request Internal Server Error: /dashboard/project/stacks/select_template Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/django/core/handlers/exception.py", line 35, in inner response = get_response(request) File "/usr/lib/python3.6/site-packages/django/core/handlers/base.py", line 128, in _get_response response = self.process_exception_by_middleware(e, request) File "/usr/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python3.6/site-packages/horizon/decorators.py", line 52, in dec return view_func(request, *args, **kwargs) File "/usr/lib/python3.6/site-packages/horizon/decorators.py", line 36, in dec return view_func(request, *args, **kwargs) File "/usr/lib/python3.6/site-packages/horizon/decorators.py", line 36, in dec return view_func(request, *args, **kwargs) File "/usr/lib/python3.6/site-packages/horizon/decorators.py", line 113, in dec return view_func(request, *args, **kwargs) File "/usr/lib/python3.6/site-packages/horizon/decorators.py", line 84, in dec return view_func(request, *args, **kwargs) File "/usr/lib/python3.6/site-packages/django/views/generic/base.py", line 69, in view return self.dispatch(request, *args, **kwargs) File "/usr/lib/python3.6/site-packages/django/views/generic/base.py", line 89, in dispatch return handler(request, *args, **kwargs) File "/usr/lib/python3.6/site-packages/django/views/generic/edit.py", line 142, in post return self.form_valid(form) File "/usr/lib/python3.6/site-packages/horizon/forms/views.py", line 188, in form_valid exceptions.handle(self.request) File "/usr/lib/python3.6/site-packages/horizon/exceptions.py", line 348, in handle six.reraise(exc_type, exc_value, exc_traceback) File "/usr/lib/python3.6/site-packages/six.py", line 693, in reraise raise value File "/usr/lib/python3.6/site-packages/horizon/forms/views.py", line 185, in form_valid handled = form.handle(self.request, form.cleaned_data) File "/usr/lib/python3.6/site-packages/heat_dashboard/content/stacks/forms.py", line 275, in handle return self.next_view.as_view()(request, **kwargs) File "/usr/lib/python3.6/site-packages/django/views/generic/base.py", line 69, in view return self.dispatch(request, *args, **kwargs) File "/usr/lib/python3.6/site-packages/django/views/generic/base.py", line 89, in dispatch return handler(request, *args, **kwargs) File "/usr/lib/python3.6/site-packages/django/views/generic/edit.py", line 133, in get return self.render_to_response(self.get_context_data()) File "/usr/lib/python3.6/site-packages/horizon/forms/views.py", line 141, in get_context_data context = super(ModalFormView, self).get_context_data(**kwargs) File "/usr/lib/python3.6/site-packages/horizon/forms/views.py", line 74, in get_context_data context = super(ModalFormMixin, self).get_context_data(**kwargs) File "/usr/lib/python3.6/site-packages/horizon/forms/views.py", line 55, in get_context_data context = super(ModalBackdropMixin, self).get_context_data(**kwargs) File "/usr/lib/python3.6/site-packages/django/views/generic/edit.py", line 66, in get_context_data kwargs['form'] = self.get_form() File "/usr/lib/python3.6/site-packages/horizon/forms/views.py", line 176, in get_form return form_class(self.request, **self.get_form_kwargs()) File "/usr/lib/python3.6/site-packages/heat_dashboard/content/stacks/views.py", line 185, in get_form_kwargs kwargs = super(CreateStackView, self).get_form_kwargs() File "/usr/lib/python3.6/site-packages/django/views/generic/edit.py", line 38, in get_form_kwargs 'initial': self.get_initial(), File "/usr/lib/python3.6/site-packages/heat_dashboard/content/stacks/views.py", line 181, in get_initial initial['parameters'] = json.dumps(self.kwargs['parameters']) File "/usr/lib64/python3.6/json/__init__.py", line 231, in dumps return _default_encoder.encode(obj) File "/usr/lib64/python3.6/json/encoder.py", line 199, in encode chunks = self.iterencode(o, _one_shot=True) File "/usr/lib64/python3.6/json/encoder.py", line 257, in iterencode return _iterencode(o, 0) File "/usr/lib64/python3.6/json/encoder.py", line 180, in default o.__class__.__name__) TypeError: Object of type 'bytes' is not JSON serializable Version-Release number of selected component (if applicable): this has been verified on OpenStack 16.2.2 rhosp16-openstack-horizon:16.2_20220209.2 sudo podman exec horizon rpm -qa | grep horizon python3-django-horizon-16.2.3-2.20220124225242.3153a5b.el8ost.noarch the same yaml file works from the cli How reproducible: Steps to Reproduce: I used this yaml file as example to reproduce this issue: heat_template_version: 2018-03-02 description: > reproducer example parameters: user_key: type: string label: ssh_user_key description: Public user ssh key to be injected in the cluster VMs default: stackKey constraints: - custom_constraint: nova.keypair user_net1: type: string label: user_net1 description: Add the required VM network default: net1 constraints: - custom_constraint: neutron.network user_vm_flavor: type: string label: vm_flavor description: Choose a flavor default: m1.tiny constraints: - custom_constraint: nova.flavor default: m1.small user_vm_image: type: string label: vm_image description: Choose an image default: cirros-0.5.2 constraints: - custom_constraint: glance.image resources: my_server: type: OS::Nova::Server properties: name: vm01-heat security_groups: - default networks: - network: { get_param: user_net1 } key_name: { get_param: user_key } image: { get_param: user_vm_image } flavor: { get_param: user_vm_flavor } user_data: { get_file: 'https://raw.githubusercontent.com/hpcugent/openstack-templates/master/heat/scripts/mount_share.py' } Actual results: no stack it is deployed from horizon dashboard while it works from the cli Expected results: stack it is deployed from horizon dashboard as well from the cli Additional info: this issue has been verified on OSP 16.1.7 as well