[Bug 2039226] Re: cannot import name 'ugettext_lazy' from 'django.utils.translation'
OpenStack Infra
2039226 at bugs.launchpad.net
Tue Nov 21 12:24:51 UTC 2023
Reviewed: https://review.opendev.org/c/openstack/charm-openstack-dashboard/+/898246
Committed: https://opendev.org/openstack/charm-openstack-dashboard/commit/16c5a026419e5c23ab4e7777cec8deb15c25ee6f
Submitter: "Zuul (22348)"
Branch: master
commit 16c5a026419e5c23ab4e7777cec8deb15c25ee6f
Author: Corey Bryant <corey.bryant at canonical.com>
Date: Fri Oct 13 14:57:46 2023 -0400
Add local_settings.py template for Bobcat
This fixes issues found in testing with Django 4 in mantic.
ugettext_lazy was deprecated in Django 3.0 and removed in
Django 4.0. Switch to gettext_lazy.
Switch to PyMemcacheCache backend as the Django MemcachedCache
backend was removed in Django 4.1 in favor of the PyMemcacheCache
or PyLibMCCache backend. This depends on a new openstack-dashboard
package version that will be provided in an SRU for bug #2039225.
Closes-Bug: #2039226
Closes-Bug: #2039225
Change-Id: Ia8e4f6f5f50d58268e4c6fa80c9f9c65a56a26ea
** Changed in: charm-openstack-dashboard
Status: In Progress => Fix Committed
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to Ubuntu Cloud Archive.
https://bugs.launchpad.net/bugs/2039226
Title:
cannot import name 'ugettext_lazy' from 'django.utils.translation'
Status in OpenStack Dashboard Charm:
Fix Committed
Status in Ubuntu Cloud Archive:
Fix Released
Status in Ubuntu Cloud Archive bobcat series:
Fix Committed
Status in Magnum UI:
New
Status in watcher-dashboard:
New
Status in magnum-ui package in Ubuntu:
Fix Released
Status in watcher-dashboard package in Ubuntu:
Fix Released
Status in magnum-ui source package in Mantic:
Fix Committed
Status in watcher-dashboard source package in Mantic:
Fix Released
Bug description:
On Ubuntu Mantic, the dashboard fails to load and the apache error log
shows:
[Thu Oct 12 20:33:48.383727 2023] [wsgi:error] [pid 52899:tid 140293563209408] ERROR:root:cannot import name 'ugettext_lazy' from 'django.utils.translation' (/usr/lib/python3/dist-packages/django/utils/translation/__init__.py)
[Thu Oct 12 20:33:48.383757 2023] [wsgi:error] [pid 52899:tid 140293563209408] Traceback (most recent call last):
[Thu Oct 12 20:33:48.383764 2023] [wsgi:error] [pid 52899:tid 140293563209408] File "/usr/lib/python3/dist-packages/openstack_dashboard/utils/settings.py", line 58, in import_submodules
[Thu Oct 12 20:33:48.383769 2023] [wsgi:error] [pid 52899:tid 140293563209408] submodule = import_module(name)
[Thu Oct 12 20:33:48.383773 2023] [wsgi:error] [pid 52899:tid 140293563209408] ^^^^^^^^^^^^^^^^^^^
[Thu Oct 12 20:33:48.383777 2023] [wsgi:error] [pid 52899:tid 140293563209408] File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
[Thu Oct 12 20:33:48.383787 2023] [wsgi:error] [pid 52899:tid 140293563209408] return _bootstrap._gcd_import(name[level:], package, level)
[Thu Oct 12 20:33:48.383791 2023] [wsgi:error] [pid 52899:tid 140293563209408] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[Thu Oct 12 20:33:48.383795 2023] [wsgi:error] [pid 52899:tid 140293563209408] File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
[Thu Oct 12 20:33:48.383799 2023] [wsgi:error] [pid 52899:tid 140293563209408] File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
[Thu Oct 12 20:33:48.383803 2023] [wsgi:error] [pid 52899:tid 140293563209408] File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
[Thu Oct 12 20:33:48.383807 2023] [wsgi:error] [pid 52899:tid 140293563209408] File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
[Thu Oct 12 20:33:48.383811 2023] [wsgi:error] [pid 52899:tid 140293563209408] File "<frozen importlib._bootstrap_external>", line 940, in exec_module
[Thu Oct 12 20:33:48.383814 2023] [wsgi:error] [pid 52899:tid 140293563209408] File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
[Thu Oct 12 20:33:48.383818 2023] [wsgi:error] [pid 52899:tid 140293563209408] File "/usr/lib/python3/dist-packages/openstack_dashboard/enabled/_1370_project_container_infra_panel_group.py", line 14, in <module>
[Thu Oct 12 20:33:48.383823 2023] [wsgi:error] [pid 52899:tid 140293563209408] from django.utils.translation import ugettext_lazy as _
It looks like the charm template needs updating to work with Django
4.x in Mantic.
See upstream commit in horizon:
commit cd7c1b5110fe1f64cd9dfbeb1072b37912d0efee
Author: Akihiro Motoki <amotoki at gmail.com>
Date: Wed Jan 26 22:42:15 2022 +0900
Address RemovedInDjango40Warning (2)
django.utils.translation.ugettext(), ugettext_lazy(), ugettext_noop(),
ungettext(), and ungettext_lazy() are deprecated in favor of the
functions that they’re aliases for: django.utils.translation.gettext(),
gettext_lazy(), gettext_noop(), ngettext(), and ngettext_lazy().
https://docs.djangoproject.com/en/4.0/releases/3.0/#id3
Change-Id: I77878f84e9d10cf6a136dada81eabf4e18676250
== Ubuntu SRU Details ==
[Impact]
magnum dashboard can't be used with Django 4.x.
[Test Case]
Deploy openstack with magnum + magnum-ui. Ensure dashboard is functional and no errors in /var/log/apache/error.log.
[Regression Potential]
This is a pretty simple change to aliased functions and regression testing mentioned above should be good enough to ensure behavior is as expected. Currently the dashboard doesn't work on Mantic where Django is at 4.2.4. This package is backported to the Bobcat cloud archive on Jammy where Django is at 3.2.12 and will need testing there, however should be fine considering these functions were deprecated in Django 3.0.
To manage notifications about this bug go to:
https://bugs.launchpad.net/charm-openstack-dashboard/+bug/2039226/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list