Merge ~ack/maas:1948965-lxd-check-caps-on-compose into maas:master

Proposed by Alberto Donato
Status: Merged
Approved by: Alberto Donato
Approved revision: 737ef321608a327e19d732809cad77945d737b32
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~ack/maas:1948965-lxd-check-caps-on-compose
Merge into: maas:master
Diff against target: 36 lines (+14/-0)
2 files modified
src/provisioningserver/drivers/pod/lxd.py (+2/-0)
src/provisioningserver/drivers/pod/tests/test_lxd.py (+12/-0)
Reviewer Review Type Date Requested Status
Adam Collard (community) Approve
MAAS Lander unittests Pending
Review via email: mp+411037@code.launchpad.net

Commit message

LP:1948965 check LXD server capabilities on VM compose

To post a comment you must log in.
Revision history for this message
Adam Collard (adam-collard) :
review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

LANDING
-b 1948965-lxd-check-caps-on-compose lp:~ack/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED BUILD
LOG: http://maas-ci.internal:8080/job/maas/job/branch-tester/11398/consoleText

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/provisioningserver/drivers/pod/lxd.py b/src/provisioningserver/drivers/pod/lxd.py
2index c663254..2ef7f8c 100644
3--- a/src/provisioningserver/drivers/pod/lxd.py
4+++ b/src/provisioningserver/drivers/pod/lxd.py
5@@ -437,6 +437,8 @@ class LXDPodDriver(PodDriver):
6 def compose(self, pod_id: int, context: dict, request: RequestedMachine):
7 """Compose a virtual machine."""
8 with self._get_client(pod_id, context) as client:
9+ self._check_required_extensions(client)
10+
11 storage_pools = client.storage_pools.all()
12 default_storage_pool = context.get(
13 "default_storage_pool_id", context.get("default_storage_pool")
14diff --git a/src/provisioningserver/drivers/pod/tests/test_lxd.py b/src/provisioningserver/drivers/pod/tests/test_lxd.py
15index b88cdba..c74af1f 100644
16--- a/src/provisioningserver/drivers/pod/tests/test_lxd.py
17+++ b/src/provisioningserver/drivers/pod/tests/test_lxd.py
18@@ -1452,6 +1452,18 @@ class TestLXDPodDriver(MAASTestCase):
19 yield self.driver.compose(None, self.make_context(), request)
20
21 @inlineCallbacks
22+ def test_compose_checks_required_extensions(self):
23+ self.fake_lxd.host_info["api_extensions"].remove("projects")
24+ error_msg = (
25+ "Please upgrade your LXD host to 4.16 or higher "
26+ "to support the following extensions: projects"
27+ )
28+ with ExpectedException(lxd_module.LXDPodError, error_msg):
29+ yield self.driver.compose(
30+ None, self.make_context(), make_requested_machine()
31+ )
32+
33+ @inlineCallbacks
34 def test_compose_multiple_disks(self):
35 pod_id = factory.make_name("pod_id")
36 request = make_requested_machine(num_disks=2)

Subscribers

People subscribed via source and target branches