Karbor dashboard "no module named icalendar.cal" error

Bug #1787040 reported by Eric Miller
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
karbor-dashboard
Fix Released
Undecided
Unassigned
kolla-ansible
Triaged
Medium
Unassigned

Bug Description

Kolla-Ansible version 6.1.0 (with respective Kolla 6.1.0)
Images from source, built very recently (August 12th, 2018?)

After selecting Karbor as an installation option in globals.yml, the installation succeeds, but loading the Horizon interface results in an error: no module named icalendar.cal

I included the Traceback window contents below.

Eric

(URL redacted)

Environment:

Request Method: GET
Request URL: http://xxxxxxxxxxxxxxxxxxxxxxxxxx/

Django Version: 1.11.9
Python Version: 2.7.5
Installed Applications:
['openstack_dashboard.dashboards.project',
 'magnum_ui',
 'neutron_lbaas_dashboard',
 'heat_dashboard',
 'trove_dashboard',
 'designatedashboard',
 'openstack_dashboard.dashboards.admin',
 'openstack_dashboard.dashboards.identity',
 'openstack_dashboard.dashboards.settings',
 'disaster_recovery',
 'karbor_dashboard',
 'neutron_fwaas_dashboard',
 'openstack_dashboard',
 'django.contrib.contenttypes',
 'django.contrib.auth',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.humanize',
 'django_pyscss',
 'openstack_dashboard.django_pyscss_fix',
 'compressor',
 'horizon',
 'openstack_auth']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'horizon.middleware.OperationLogMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'horizon.middleware.HorizonMiddleware',
 'horizon.themes.ThemeMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'openstack_dashboard.contrib.developer.profiler.middleware.ProfilerClientMiddleware',
 'openstack_dashboard.contrib.developer.profiler.middleware.ProfilerMiddleware')

Traceback:

File "/var/lib/kolla/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  131. response = middleware_method(request, response)

File "/var/lib/kolla/venv/lib/python2.7/site-packages/django/middleware/locale.py" in process_response
  36. i18n_patterns_used, prefixed_default_language = is_language_prefix_patterns_used(urlconf)

File "/var/lib/kolla/venv/lib/python2.7/site-packages/django/utils/lru_cache.py" in wrapper
  100. result = user_function(*args, **kwds)

File "/var/lib/kolla/venv/lib/python2.7/site-packages/django/conf/urls/i18n.py" in is_language_prefix_patterns_used
  29. for url_pattern in get_resolver(urlconf).url_patterns:

File "/var/lib/kolla/venv/lib/python2.7/site-packages/django/utils/functional.py" in __get__
  35. res = instance.__dict__[self.name] = self.func(instance)

File "/var/lib/kolla/venv/lib/python2.7/site-packages/django/urls/resolvers.py" in url_patterns
  405. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)

File "/var/lib/kolla/venv/lib/python2.7/site-packages/django/utils/functional.py" in __get__
  35. res = instance.__dict__[self.name] = self.func(instance)

File "/var/lib/kolla/venv/lib/python2.7/site-packages/django/urls/resolvers.py" in urlconf_module
  398. return import_module(self.urlconf_name)

File "/usr/lib64/python2.7/importlib/__init__.py" in import_module
  37. __import__(name)

File "/var/lib/kolla/venv/lib/python2.7/site-packages/openstack_dashboard/urls.py" in <module>
  42. url(r'', include(horizon.urls)),

File "/var/lib/kolla/venv/lib/python2.7/site-packages/django/conf/urls/__init__.py" in include
  51. patterns = getattr(urlconf_module, 'urlpatterns', urlconf_module)

File "/var/lib/kolla/venv/lib/python2.7/site-packages/django/utils/functional.py" in inner
  238. self._setup()

File "/var/lib/kolla/venv/lib/python2.7/site-packages/django/utils/functional.py" in _setup
  386. self._wrapped = self._setupfunc()

File "/var/lib/kolla/venv/lib/python2.7/site-packages/horizon/base.py" in url_patterns
  836. return self._urls()[0]

File "/var/lib/kolla/venv/lib/python2.7/site-packages/horizon/base.py" in _urls
  870. include(dash._decorated_urls)))

File "/var/lib/kolla/venv/lib/python2.7/site-packages/horizon/base.py" in _decorated_urls
  547. include(panel._decorated_urls)))

File "/var/lib/kolla/venv/lib/python2.7/site-packages/horizon/base.py" in _decorated_urls
  319. urlpatterns = self._get_default_urlpatterns()

File "/var/lib/kolla/venv/lib/python2.7/site-packages/horizon/base.py" in _get_default_urlpatterns
  121. urls_mod = import_module('.urls', package_string)

File "/usr/lib64/python2.7/importlib/__init__.py" in import_module
  37. __import__(name)

File "/var/lib/kolla/venv/lib/python2.7/site-packages/karbor_dashboard/triggers/urls.py" in <module>
  16. from karbor_dashboard.triggers import views

File "/var/lib/kolla/venv/lib/python2.7/site-packages/karbor_dashboard/triggers/views.py" in <module>
  26. from karbor_dashboard.triggers import forms

File "/var/lib/kolla/venv/lib/python2.7/site-packages/karbor_dashboard/triggers/forms.py" in <module>
  23. from karbor_dashboard.triggers import utils

File "/var/lib/kolla/venv/lib/python2.7/site-packages/karbor_dashboard/triggers/utils.py" in <module>
  17. from icalendar.cal import Component

Exception Type: ImportError at /
Exception Value: No module named icalendar.cal

Revision history for this message
Eduardo Gonzalez (egonzalez90) wrote :

Hi, as I understand this bug, is a bug in karbor-dashboard requirements. They need to add icalendar into their requirements.txt file.

I'll add karbor-dashboard as affected package so they can fix/opinate about this.

Regards

Changed in kolla-ansible:
status: New → Triaged
importance: Undecided → Medium
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to karbor-dashboard (master)

Reviewed: https://review.openstack.org/591923
Committed: https://git.openstack.org/cgit/openstack/karbor-dashboard/commit/?id=8d2e52f72ee00676119e065d6b4e688983d3689a
Submitter: Zuul
Branch: master

commit 8d2e52f72ee00676119e065d6b4e688983d3689a
Author: Eduardo Gonzalez <email address hidden>
Date: Wed Aug 15 08:46:12 2018 +0200

    Add icalendar into requirements

    icalendar package is required to karbor-dashboard to work.
    It is imported and used at
    https://github.com/openstack/karbor-dashboard/blob/bfcecfee68e43f903c00354bc7fd759dc71c04b1/karbor_dashboard/triggers/utils.py#L18

    If package is not included, horizon fails to start, this dependency
    should be fixed in karbor-dashboard side rather than in deployment
    tools/packagers.

    Change-Id: I7eb826ee6f08366f0aa934342e0cdf0eaaa0bae0
    Closes-Bug: #1787040

Changed in karbor-dashboard:
status: New → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/karbor-dashboard 1.2.0

This issue was fixed in the openstack/karbor-dashboard 1.2.0 release.

Revision history for this message
alpha23 (alpha23) wrote :

This is still present in the kolla/centos-source-horizon:rocky image, 65c00f5af1ca, from 8 weeks ago. This defect was fixed in the dashboard ~70 weeks ago. Why is the fix not in the centos/source image?

Revision history for this message
Mark Goddard (mgoddard) wrote :

Kolla pins versions of direct dependencies in images. If karbor-dashboard did not create a release on the stable/rocky branch including this fix, we will not pick it up.

We are looking at changing the policy to just track the stable branches from Ussuri, but will probably not apply that to older releases.

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.