Merge ~ack/maas:1905263-lxd-delete-force-2.9 into maas:2.9

Proposed by Alberto Donato
Status: Merged
Approved by: Alberto Donato
Approved revision: fb2e0dace93bfc53b7485cd40d57fc75d9ab2342
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~ack/maas:1905263-lxd-delete-force-2.9
Merge into: maas:2.9
Diff against target: 39 lines (+10/-7)
2 files modified
src/provisioningserver/drivers/pod/lxd.py (+7/-6)
src/provisioningserver/drivers/pod/tests/test_lxd.py (+3/-1)
Reviewer Review Type Date Requested Status
Alberto Donato (community) Approve
Review via email: mp+394315@code.launchpad.net

Commit message

LP: #1905263 - force-stop LXD VMs when decomposing, and wait for them to be stopped before removing

To post a comment you must log in.
Revision history for this message
Alberto Donato (ack) :
review: Approve

There was an error fetching revisions from git servers. Please try again in a few minutes. If the problem persists, contact Launchpad support.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/provisioningserver/drivers/pod/lxd.py b/src/provisioningserver/drivers/pod/lxd.py
index ad9c129..bcb3e68 100644
--- a/src/provisioningserver/drivers/pod/lxd.py
+++ b/src/provisioningserver/drivers/pod/lxd.py
@@ -704,12 +704,13 @@ class LXDPodDriver(PodDriver):
704 def decompose(self, pod_id, context):704 def decompose(self, pod_id, context):
705 """Decompose a virtual machine."""705 """Decompose a virtual machine."""
706 client = yield self.get_client(pod_id, context)706 client = yield self.get_client(pod_id, context)
707 machine = yield deferToThread(707
708 client.virtual_machines.get, context["instance_name"]708 def sync_decompose(instance_name):
709 )709 machine = client.virtual_machines.get(instance_name)
710 # Stop the machine.710 machine.stop(force=True, wait=True)
711 yield deferToThread(machine.stop)711 machine.delete(wait=True)
712 yield deferToThread(machine.delete, wait=True)712
713 yield deferToThread(sync_decompose, context["instance_name"])
713 # Hints are updated on the region for LXDPodDriver.714 # Hints are updated on the region for LXDPodDriver.
714 return DiscoveredPodHints()715 return DiscoveredPodHints()
715716
diff --git a/src/provisioningserver/drivers/pod/tests/test_lxd.py b/src/provisioningserver/drivers/pod/tests/test_lxd.py
index c406763..99f53d9 100644
--- a/src/provisioningserver/drivers/pod/tests/test_lxd.py
+++ b/src/provisioningserver/drivers/pod/tests/test_lxd.py
@@ -1046,7 +1046,9 @@ class TestLXDPodDriver(MAASTestCase):
1046 client.virtual_machines.get.return_value = mock_machine1046 client.virtual_machines.get.return_value = mock_machine
1047 empty_hints = yield driver.decompose(pod_id, context)1047 empty_hints = yield driver.decompose(pod_id, context)
10481048
1049 self.assertThat(mock_machine.stop, MockCalledOnceWith())1049 self.assertThat(
1050 mock_machine.stop, MockCalledOnceWith(force=True, wait=True)
1051 )
1050 self.assertThat(mock_machine.delete, MockCalledOnceWith(wait=True))1052 self.assertThat(mock_machine.delete, MockCalledOnceWith(wait=True))
1051 self.assertThat(1053 self.assertThat(
1052 empty_hints,1054 empty_hints,

Subscribers

People subscribed via source and target branches