Package import fails with murano dashboard

Bug #1707527 reported by Ellen Batbouta
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Murano
Fix Released
Critical
zhurong

Bug Description

On Friday, July 27th, I pulled down the latest upstream code. Now, I am unable to import a package using the Murano dashboard. I am able to import a package using the CLI. So there is a work around. Here is the error I get when using the dashboard to import a package;

2017-07-30 18:10:31.555046 ERROR django.request Internal Server Error: /dashboard/app-catalog/packages/upload
2017-07-30 18:10:31.555103 Traceback (most recent call last):
2017-07-30 18:10:31.555124 File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py", line 41, in inner
2017-07-30 18:10:31.555130 response = get_response(request)
2017-07-30 18:10:31.555136 File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
2017-07-30 18:10:31.555143 response = self._get_response(request)
2017-07-30 18:10:31.555149 File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 187, in _get_response
2017-07-30 18:10:31.555155 response = self.process_exception_by_middleware(e, request)
2017-07-30 18:10:31.555161 File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 185, in _get_response
2017-07-30 18:10:31.555167 response = wrapped_callback(request, *callback_args, **callback_kwargs)
2017-07-30 18:10:31.555173 File "/opt/stack/horizon/horizon/decorators.py", line 36, in dec
2017-07-30 18:10:31.555178 return view_func(request, *args, **kwargs)
2017-07-30 18:10:31.555184 File "/opt/stack/horizon/horizon/decorators.py", line 52, in dec
2017-07-30 18:10:31.555190 return view_func(request, *args, **kwargs)
2017-07-30 18:10:31.555195 File "/opt/stack/horizon/horizon/decorators.py", line 36, in dec
2017-07-30 18:10:31.555201 return view_func(request, *args, **kwargs)
2017-07-30 18:10:31.555341 File "/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py", line 68, in view
2017-07-30 18:10:31.555359 return self.dispatch(request, *args, **kwargs)
2017-07-30 18:10:31.555365 File "/usr/local/lib/python2.7/dist-packages/formtools/wizard/views.py", line 244, in dispatch
2017-07-30 18:10:31.555381 response = super(WizardView, self).dispatch(request, *args, **kwargs)
2017-07-30 18:10:31.555387 File "/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py", line 88, in dispatch
2017-07-30 18:10:31.555393 return handler(request, *args, **kwargs)
2017-07-30 18:10:31.555398 File "/usr/local/lib/python2.7/dist-packages/formtools/wizard/views.py", line 299, in post
2017-07-30 18:10:31.555404 self.storage.set_step_data(self.steps.current, self.process_step(form))
2017-07-30 18:10:31.555410 File "/opt/stack/murano-dashboard/muranodashboard/packages/views.py", line 478, in process_step
2017-07-30 18:10:31.555416 step_data['dependencies'] = []
2017-07-30 18:10:31.555440 File "/usr/local/lib/python2.7/dist-packages/django/http/request.py", line 434, in __setitem__
2017-07-30 18:10:31.555448 self._assert_mutable()
2017-07-30 18:10:31.555454 File "/usr/local/lib/python2.7/dist-packages/django/http/request.py", line 431, in _assert_mutable
2017-07-30 18:10:31.555459 raise AttributeError("This QueryDict instance is immutable")
2017-07-30 18:10:31.555465 AttributeError: This QueryDict instance is immutable
2017-07-30 18:10:39.688978 DEBUG:muranodashboard.api:Murano::Client <Url: http://172.16.35.10:8082>

Changed in murano:
importance: Undecided → Critical
status: New → Confirmed
milestone: none → pike-rc1
status: Confirmed → Incomplete
Revision history for this message
Kirill Zaitsev (kzaitsev) wrote :

The code in question dates back to 2015. So it's not smth in the code, but rather around it. maybe a new formtools library release?
Can you please post a pip-freeze of your environment? (i.e. a list of python packages installed/used)

Revision history for this message
Ellen Batbouta (ellen-batbouta) wrote :
Download full text (7.2 KiB)

Here is the output from the pip freeze command on the control node of my devstack deployment:

 sudo pip freeze
adium-theme-ubuntu==0.3.4
alabaster==0.7.10
alembic==0.9.3
amqp==2.2.1
anyjson==0.3.3
aodhclient==0.9.0
appdirs==1.4.3
asn1crypto==0.22.0
astroid==1.3.8
automaton==1.12.0
Babel==2.3.4
backports.ssl-match-hostname==3.5.0.1
bandit==1.4.0
bashate==0.5.1
bcrypt==3.1.3
beautifulsoup4==4.6.0
cachetools==2.0.0
castellan==0.12.0
certifi==2017.4.17
cffi==1.10.0
chardet==3.0.4
-e git+http://ca-gerrit.us.oracle.com/openstack-cinder@b5fc5369a22846c8ba28f61e613b4cbdef5830aa#egg=cinder
cliff==2.8.0
cmd2==0.7.5
colorama==0.3.9
contextlib2==0.5.5
coverage==4.4.1
croniter==0.3.17
cryptography==2.0.2
cursive==0.1.2
ddt==1.1.1
debtcollector==1.17.0
decorator==4.1.2
deprecation==1.0.1
Django==1.11.3
django-appconf==1.0.2
django-babel==0.6.1
django-compressor==2.1.1
django-formtools==2.0
django-nose==1.4.4
django-openstack-auth==3.5.0
django-pyscss==2.0.2
doc8==0.8.0
docker==2.4.2
docker-pycreds==0.2.1
docutils==0.13.1
dogpile.cache==0.6.4
dulwich==0.17.3
enum-compat==0.0.2
enum34==1.1.6
etcd3==0.6.2
etcd3gw==0.1.0
eventlet==0.20.0
extras==1.0.0
fasteners==0.14.1
fixtures==3.0.0
flake8==2.5.5
flake8-docstrings==0.2.1.post1
flake8-import-order==0.11
freezegun==0.3.9
funcsigs==1.0.2
functools32==3.2.3.post2
futures==3.1.1
futurist==1.3.0
gabbi==1.35.0
gitdb2==2.0.2
GitPython==2.1.5
-e git+https://git.openstack.org/openstack/glance.git@1502a2241242c6a1dfbfd1934be3dc9f761efc16#egg=glance
glance-store==0.21.0
google-api-python-client==1.6.2
greenlet==0.4.12
grpcio==1.4.0
hacking==0.12.0
-e git+https://git.openstack.org/openstack/heat@93cbac4ef650dda4573df24c0bda306a1d23c223#egg=heat
-e git+https://git.openstack.org/openstack/horizon.git@1bec07098502ed7fd57a1e66d7b83dd2fc4a76e6#egg=horizon
httplib2==0.10.3
idna==2.5
imagesize==0.7.1
ipaddress==1.0.18
iso8601==0.1.11
Jinja2==2.9.6
jsonpatch==1.16
jsonpath-rw==1.4.0
jsonpath-rw-ext==1.1.2
jsonpointer==1.10
jsonschema==2.6.0
-e git+https://git.openstack.org/openstack/keystone.git@c3b5d2d77b029880521912e43ad963f9b0c5bf99#egg=keystone
keystoneauth1==3.1.0
keystonemiddleware==4.17.0
kombu==4.1.0
linecache2==1.0.0
logilab-common==1.4.1
logutils==0.3.5
lxml==3.8.0
Mako==1.0.7
MarkupSafe==1.0
mccabe==0.2.1
microversion-parse==0.1.4
mock==2.0.0
monotonic==1.3
mox3==0.23.0
msgpack-python==0.4.8
-e git+https://git.openstack.org/openstack/murano@84e50d1442793f2b4edc4bf7dcac6b218e137c65#egg=murano
-e git+https://git.openstack.org/openstack/murano-dashboard.git@8b9a0a2c81f8dc7caae78dd740126ddd51910c0c#egg=murano_dashboard
murano-pkg-check==0.3.0
mysqlclient==1.3.7
netaddr==0.7.19
netifaces==0.10.6
networkx==1.11
-e git+https://git.openstack.org/openstack/neutron.git@e489c50f9ce4eee480b328944fa4704cf9ad41a7#egg=neutron
neutron-lib==1.9.1
nodeenv==1.1.4
nose==1.3.7
nose-exclude==0.5.0
nosehtmloutput==0.0.5
nosexcover==1.0.11
-e git+http://ca-gerrit.us.oracle.com/openstack-nova@0345da6694ec0b4bb4f8749bf85bba6964881577#egg=nova
numpy==1.13.1
oauth2client==4.1.2
oauthlib==2.0.2
openstack.nose-plugin==0.11
openstackdocstheme==1.16.0
openstacksdk==0.9.17
os-api-ref==1.4.0
os-brick==1.15.1
os-client-config==1.28.0
os-collect-config...

Read more...

Revision history for this message
zhurong (zhu-rong) wrote :

This is due to the form_step_data QueryDict became immutable.
AttributeError: This QueryDict instance is immutable

Changed in murano:
status: Incomplete → Confirmed
assignee: nobody → zhurong (zhu-rong)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to murano-dashboard (master)

Fix proposed to branch: master
Review: https://review.openstack.org/489457

Changed in murano:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to murano-dashboard (master)

Reviewed: https://review.openstack.org/489457
Committed: https://git.openstack.org/cgit/openstack/murano-dashboard/commit/?id=d9b0ca1ed8425f567121db73de6863d9532013c7
Submitter: Jenkins
Branch: master

commit d9b0ca1ed8425f567121db73de6863d9532013c7
Author: zhurong <email address hidden>
Date: Tue Aug 1 11:28:02 2017 +0800

    Fix package import fails due to QueryDict immutable

    get_form_step_data QueryDict became immutable. cause the error:
    AttributeError: This QueryDict instance is immutable
    Make a copy for the QueryDict.

    Change-Id: I6bd2908e83d00fec7b3d292d94aef4718fbe22d0
    Closes-Bug: #1707527

Changed in murano:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/murano-dashboard 4.0.0.0rc1

This issue was fixed in the openstack/murano-dashboard 4.0.0.0rc1 release candidate.

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.