3.4.0~beta1 maas-region-api fails to start with pylxd 2.3.2~alpha1-420-10-g.72426bf~ubuntu22.04.1

Bug #2019229 reported by Alexander Balderson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MAAS
Fix Committed
High
Alexsander de Souza

Bug Description

When testing in the SQA lab on a Jammy host, we had one group of hosts that was running pylxd 2.3.2~alpha1-420-10-g.72426bf~ubuntu22.04.1 (the older version of python3-pylxd) but the maas-region-api failed to start during apt install because it couldnot import get_session_for_url from pylxd/client.py:

ImportError: cannot import name 'get_session_for_url' from 'pylxd.client' (/usr/lib/python3/dist-packages/pylxd/client.py)

Looking at the debian/control file for MAAS, it requires python3-pylxd >= 2.3.1. It looks like this version requirement isnt always compatible with the the requirements in MAAS.

The service does start when running on python3-pylxd 2.3.2~alpha1-431-10-g.fe37358~ubuntu22.04.1, currently in the archive.

Setting up maas-region-api (1:3.4.0~beta1-14097-g.08ee1439a-0ubuntu1~22.04.1) ...
Traceback (most recent call last):
  File "/usr/sbin/maas-region", line 33, in <module>
    sys.exit(load_entry_point('maas==3.4.0b1', 'console_scripts', 'maas-region')())
  File "/usr/lib/python3/dist-packages/maasserver/region_script.py", line 81, in run
    run_django(is_snap, is_devenv)
  File "/usr/lib/python3/dist-packages/maasserver/region_script.py", line 70, in run_django
    management.execute_from_command_line()
  File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 395, in execute
    django.setup()
  File "/usr/lib/python3/dist-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/lib/python3/dist-packages/django/apps/registry.py", line 114, in populate
    app_config.import_models()
  File "/usr/lib/python3/dist-packages/django/apps/config.py", line 301, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/lib/python3/dist-packages/maasserver/models/__init__.py", line 114, in <module>
    from maasserver.models.bmc import (
  File "/usr/lib/python3/dist-packages/maasserver/models/bmc.py", line 55, in <module>
    from maasserver.models.node import get_default_zone, Machine, Node
  File "/usr/lib/python3/dist-packages/maasserver/models/node.py", line 185, in <module>
    from provisioningserver.drivers.power.registry import (
  File "/usr/lib/python3/dist-packages/provisioningserver/drivers/power/registry.py", line 9, in <module>
    from provisioningserver.drivers.pod.registry import PodDriverRegistry
  File "/usr/lib/python3/dist-packages/provisioningserver/drivers/pod/registry.py", line 10, in <module>
    from provisioningserver.drivers.pod.lxd import LXDPodDriver
  File "/usr/lib/python3/dist-packages/provisioningserver/drivers/pod/lxd.py", line 16, in <module>
    from pylxd.client import get_session_for_url
ImportError: cannot import name 'get_session_for_url' from 'pylxd.client' (/usr/lib/python3/dist-packages/pylxd/client.py)
[0mdpkg: error processing package maas-region-api (--configure):

Related branches

description: updated
Alberto Donato (ack)
Changed in maas:
milestone: none → 3.4.0
status: New → Triaged
Revision history for this message
Christian Grabowski (cgrabowski) wrote :

Hmm it appears that specific commit has `get_session_for_url()` was moved into the Client class https://github.com/lxc/pylxd/blob/72426bf7c5d2b8768cfd1779523c9860cfafd266/pylxd/client.py, however it was moved back as of ba8f06f42f3575526623f3ce78361feeea9be458. Marking as triaged.

Changed in maas:
importance: Undecided → High
Changed in maas:
assignee: nobody → Alexsander de Souza (alexsander-souza)
Changed in maas:
status: Triaged → Fix Committed
Alberto Donato (ack)
Changed in maas:
milestone: 3.4.0 → 3.4.0-beta2
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.