More specifically, classes wrapped with that decorator fail inside dynamic UI machinery with:
Traceback (most recent call last):
File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run
self.result = application(self.environ, self.start_response)
File "/home/timur/develop/murano/murano-dashboard/.venv/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 72, in __call__
return self.application(environ, start_response)
File "/home/timur/develop/murano/murano-dashboard/.venv/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 255, in __call__
response = self.get_response(request)
File "/home/timur/develop/murano/murano-dashboard/.venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 178, in get_response
response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/home/timur/develop/murano/murano-dashboard/.venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 115, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/timur/develop/murano/murano-dashboard/.venv/local/lib/python2.7/site-packages/horizon/decorators.py", line 38, in dec
return view_func(request, *args, **kwargs)
File "/home/timur/develop/murano/murano-dashboard/.venv/local/lib/python2.7/site-packages/horizon/decorators.py", line 54, in dec
return view_func(request, *args, **kwargs)
File "/home/timur/develop/murano/murano-dashboard/.venv/local/lib/python2.7/site-packages/horizon/decorators.py", line 38, in dec
return view_func(request, *args, **kwargs)
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/catalog/views.py", line 141, in __inner
return func(request, **kwargs)
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/catalog/views.py", line 173, in __inner
return func(request, **kwargs)
File "/home/timur/develop/murano/murano-dashboard/.venv/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 25, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/catalog/views.py", line 195, in deploy
do_redirect=do_redirect, drop_wm_form=drop_wm_form)
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/catalog/views.py", line 141, in __inner
return func(request, **kwargs)
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/catalog/views.py", line 238, in view
forms = initforms(request, kwargs)
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/dynamic_ui/services.py", line 163, in get_app_forms
app = import_app(request, kwargs.get('app_id'))
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/dynamic_ui/services.py", line 149, in import_app
app = _apps[app_id] = Service(app_data, **service)
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/dynamic_ui/services.py", line 75, in __init__
self._add_form(name, field_specs, validators)
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/dynamic_ui/services.py", line 85, in _add_form
class Form(forms.ServiceConfigurationForm):
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/dynamic_ui/forms.py", line 126, in __new__
for field_name, field in _collect_fields(field_specs, name, service):
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/dynamic_ui/forms.py", line 118, in _collect_fields
return [make_field(copy.deepcopy(_spec)) for _spec in field_specs]
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/dynamic_ui/forms.py", line 113, in make_field
cls, kwargs['widget'] = process_widget(TYPES[_type], kwargs)
File "/home/timur/develop/murano/murano-dashboard/muranodashboard/dynamic_ui/forms.py", line 63, in process_widget
widget = kwargs.get('widget') or cls.widget
AttributeError: 'function' object has no attribute 'widget'
Fix proposed to branch: master /review. openstack. org/103502
Review: https:/