Merge ~newell-jensen/maas:2.3-lp1742703 into maas:2.3

Proposed by Newell Jensen
Status: Merged
Approved by: Newell Jensen
Approved revision: 7681f30afaf64d6cb7515395448c0b2f564a53ec
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~newell-jensen/maas:2.3-lp1742703
Merge into: maas:2.3
Diff against target: 52 lines (+16/-1)
2 files modified
src/provisioningserver/drivers/pod/tests/test_virsh.py (+5/-1)
src/provisioningserver/drivers/pod/virsh.py (+11/-0)
Reviewer Review Type Date Requested Status
MAAS Lander Needs Fixing
Newell Jensen (community) Approve
Review via email: mp+342259@code.launchpad.net

Commit message

Backport ed3ae8bcfc3ee0cd98ac4b37c7ea9659deff7da8

LP: #1742703 -- Set virsh pod VMs to autostart when created.

To post a comment you must log in.
Revision history for this message
Newell Jensen (newell-jensen) wrote :

Self approved back port.

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

UNIT TESTS
-b 2.3-lp1742703 lp:~newell-jensen/maas/+git/maas into -b 2.3 lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci-jenkins.internal:8080/job/maas/job/branch-tester/2145/console
COMMIT: 7681f30afaf64d6cb7515395448c0b2f564a53ec

review: Needs Fixing

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/provisioningserver/drivers/pod/tests/test_virsh.py b/src/provisioningserver/drivers/pod/tests/test_virsh.py
2index 473bc60..7f8f6a5 100644
3--- a/src/provisioningserver/drivers/pod/tests/test_virsh.py
4+++ b/src/provisioningserver/drivers/pod/tests/test_virsh.py
5@@ -1006,6 +1006,8 @@ class TestVirshSSH(MAASTestCase):
6 mock_run = self.patch(virsh.VirshSSH, "run")
7 mock_attach_disk = self.patch(virsh.VirshSSH, "attach_local_volume")
8 mock_attach_nic = self.patch(virsh.VirshSSH, "attach_interface")
9+ mock_set_machine_autostart = self.patch(
10+ virsh.VirshSSH, "set_machine_autostart")
11 mock_configure_pxe = self.patch(virsh.VirshSSH, "configure_pxe_boot")
12 mock_discovered = self.patch(virsh.VirshSSH, "get_discovered_machine")
13 mock_discovered.return_value = sentinel.discovered
14@@ -1017,7 +1019,9 @@ class TestVirshSSH(MAASTestCase):
15 self.assertThat(
16 mock_attach_nic, MockCalledOnceWith(ANY, 'maas'))
17 self.assertThat(
18- mock_configure_pxe, MockCalledOnceWith(ANY))
19+ mock_set_machine_autostart, MockCalledOnceWith(request.hostname))
20+ self.assertThat(
21+ mock_configure_pxe, MockCalledOnceWith(request.hostname))
22 self.assertThat(
23 mock_discovered, MockCalledOnceWith(ANY, request=request))
24 self.assertEquals(sentinel.discovered, observed)
25diff --git a/src/provisioningserver/drivers/pod/virsh.py b/src/provisioningserver/drivers/pod/virsh.py
26index 238e2a5..b366e74 100644
27--- a/src/provisioningserver/drivers/pod/virsh.py
28+++ b/src/provisioningserver/drivers/pod/virsh.py
29@@ -533,6 +533,14 @@ class VirshSSH(pexpect.spawn):
30 discovered_machine.interfaces = interfaces
31 return discovered_machine
32
33+ def set_machine_autostart(self, machine):
34+ """Set machine to autostart."""
35+ output = self.run(['autostart', machine]).strip()
36+ if output.startswith("error:"):
37+ maaslog.error("%s: Failed to set autostart", machine)
38+ return False
39+ return True
40+
41 def configure_pxe_boot(self, machine):
42 """Given the specified machine, reads the XML dump and determines
43 if the boot order needs to be changed. The boot order needs to be
44@@ -760,6 +768,9 @@ class VirshSSH(pexpect.spawn):
45 for _ in request.interfaces:
46 self.attach_interface(request.hostname, best_network)
47
48+ # Set machine to autostart.
49+ self.set_machine_autostart(request.hostname)
50+
51 # Setup the domain to PXE boot.
52 self.configure_pxe_boot(request.hostname)
53

Subscribers

People subscribed via source and target branches