Merge ~cgrabowski/maas:composing_vm_in_cluster_specifies_cluster_member into maas:master

Proposed by Christian Grabowski
Status: Merged
Approved by: Christian Grabowski
Approved revision: 9b920059fb441c3ae4cd4e2968344203f095dd6a
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~cgrabowski/maas:composing_vm_in_cluster_specifies_cluster_member
Merge into: maas:master
Diff against target: 90 lines (+68/-1)
2 files modified
src/provisioningserver/drivers/pod/lxd.py (+9/-1)
src/provisioningserver/drivers/pod/tests/test_lxd.py (+59/-0)
Reviewer Review Type Date Requested Status
MAAS Lander Approve
Alexsander de Souza Approve
Review via email: mp+409950@code.launchpad.net

Commit message

clustered compose specifies target as current client

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b composing_vm_in_cluster_specifies_cluster_member lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: e56289ca5b6a48187b575fa7352d05b48bd051aa

review: Approve
Revision history for this message
Alexsander de Souza (alexsander-souza) wrote :

+1

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

LANDING
-b composing_vm_in_cluster_specifies_cluster_member lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

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

Revision history for this message
MAAS Lander (maas-lander) wrote :

LANDING
-b composing_vm_in_cluster_specifies_cluster_member lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

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

Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b composing_vm_in_cluster_specifies_cluster_member lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas/job/branch-tester/11255/console
COMMIT: 0dcf24e63267919a7c52143da88fbec90187c0b4

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b composing_vm_in_cluster_specifies_cluster_member lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas/job/branch-tester/11256/console
COMMIT: fc59dc50ba189f6cb6d784bee41f8a7d4e9b8a52

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b composing_vm_in_cluster_specifies_cluster_member lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 9b920059fb441c3ae4cd4e2968344203f095dd6a

review: Approve

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 0b54702..ba53429 100644
3--- a/src/provisioningserver/drivers/pod/lxd.py
4+++ b/src/provisioningserver/drivers/pod/lxd.py
5@@ -454,7 +454,15 @@ class LXDPodDriver(PodDriver):
6 }
7
8 # Create the machine.
9- machine = client.virtual_machines.create(definition, wait=True)
10+ create_kwargs = {"wait": True}
11+ if client.host_info["environment"]["server_clustered"]:
12+ create_kwargs["target"] = client.host_info["environment"][
13+ "server_name"
14+ ]
15+
16+ machine = client.virtual_machines.create(
17+ definition, **create_kwargs
18+ )
19 # Pod hints are updated on the region after the machine is composed.
20 discovered_machine = self._get_discovered_machine(
21 client, machine, storage_pools, request=request
22diff --git a/src/provisioningserver/drivers/pod/tests/test_lxd.py b/src/provisioningserver/drivers/pod/tests/test_lxd.py
23index 7704b94..0afd2ee 100644
24--- a/src/provisioningserver/drivers/pod/tests/test_lxd.py
25+++ b/src/provisioningserver/drivers/pod/tests/test_lxd.py
26@@ -331,6 +331,65 @@ class TestClusteredLXDPodDriver(MAASTestCase):
27 discovered_cluster.pod_addresses,
28 )
29
30+ @inlineCallbacks
31+ def test_compose_specifies_target(self):
32+ request = make_requested_machine()
33+ self.fake_lxd.profiles.exists.return_value = True
34+ mock_storage_pools = Mock()
35+ self.fake_lxd.storage_pools.all.return_value = mock_storage_pools
36+ mock_get_usable_storage_pool = self.patch(
37+ self.driver, "_get_usable_storage_pool"
38+ )
39+ usable_pool = Mock()
40+ usable_pool.name = factory.make_name("pool")
41+ mock_get_usable_storage_pool.return_value = usable_pool
42+ mock_machine = Mock()
43+ self.fake_lxd.virtual_machines.create.return_value = mock_machine
44+ mock_get_discovered_machine = self.patch(
45+ self.driver, "_get_discovered_machine"
46+ )
47+ mock_get_discovered_machine.return_value = sentinel.discovered_machine
48+ definition = {
49+ "name": request.hostname,
50+ "architecture": debian_to_kernel_architecture(
51+ request.architecture
52+ ),
53+ "config": {
54+ "limits.cpu": str(request.cores),
55+ "limits.memory": str(request.memory * 1024 ** 2),
56+ "limits.memory.hugepages": "false",
57+ "security.secureboot": "false",
58+ },
59+ "profiles": ["maas"],
60+ "source": {"type": "none"},
61+ "devices": {
62+ "root": {
63+ "path": "/",
64+ "type": "disk",
65+ "pool": usable_pool.name,
66+ "size": str(request.block_devices[0].size),
67+ "boot.priority": "0",
68+ },
69+ "eth0": {
70+ "name": "eth0",
71+ "type": "nic",
72+ "nictype": "bridged",
73+ "parent": "lxdbr0",
74+ "boot.priority": "1",
75+ },
76+ },
77+ }
78+
79+ discovered_machine, empty_hints = yield self.driver.compose(
80+ None, self.make_context(), request
81+ )
82+ self.fake_lxd.virtual_machines.create.assert_called_once_with(
83+ definition,
84+ wait=True,
85+ target=self.fake_lxd.host_info["environment"]["server_name"],
86+ )
87+ self.fake_lxd.profiles.exists.assert_called_once_with("maas")
88+
89
90 class TestLXDPodDriver(MAASTestCase):
91

Subscribers

People subscribed via source and target branches