Merge ~newell-jensen/maas:lp1690781 into maas:master

Proposed by Newell Jensen
Status: Merged
Approved by: Newell Jensen
Approved revision: df1d697a5af7dcadbaf2897ca60e1f92a445dec6
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~newell-jensen/maas:lp1690781
Merge into: maas:master
Diff against target: 37 lines (+6/-6)
2 files modified
src/provisioningserver/drivers/pod/tests/test_virsh.py (+1/-1)
src/provisioningserver/drivers/pod/virsh.py (+5/-5)
Reviewer Review Type Date Requested Status
Blake Rouse (community) Approve
Review via email: mp+370026@code.launchpad.net

Commit message

LP: #1690781 -- virsh command returns an error string without raising an exception. Check returned string for error to try qemu emulator.

To post a comment you must log in.
Revision history for this message
Blake Rouse (blake-rouse) wrote :

Looks good.

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/tests/test_virsh.py b/src/provisioningserver/drivers/pod/tests/test_virsh.py
2index 8b32a48..18eb2d8 100644
3--- a/src/provisioningserver/drivers/pod/tests/test_virsh.py
4+++ b/src/provisioningserver/drivers/pod/tests/test_virsh.py
5@@ -1776,7 +1776,7 @@ class TestVirshSSH(MAASTestCase):
6 def test_get_domain_capabilities_for_qemu(self):
7 conn = self.configure_virshssh('')
8 self.patch(virsh.VirshSSH, "run").side_effect = [
9- factory.make_exception(),
10+ 'error: message from virsh',
11 SAMPLE_CAPABILITY_QEMU,
12 ]
13 self.assertEqual({
14diff --git a/src/provisioningserver/drivers/pod/virsh.py b/src/provisioningserver/drivers/pod/virsh.py
15index 4d47632..9ca1f7a 100644
16--- a/src/provisioningserver/drivers/pod/virsh.py
17+++ b/src/provisioningserver/drivers/pod/virsh.py
18@@ -1055,14 +1055,14 @@ class VirshSSH(pexpect.spawn):
19
20 Determines the type and emulator of the domain to use.
21 """
22- try:
23- # Test for KVM support first.
24- xml = self.run(['domcapabilities', '--virttype', 'kvm'])
25- emulator_type = 'kvm'
26- except Exception:
27+ # Test for KVM support first.
28+ xml = self.run(['domcapabilities', '--virttype', 'kvm'])
29+ if xml.startswith('error'):
30 # Fallback to qemu support. Fail if qemu not supported.
31 xml = self.run(['domcapabilities', '--virttype', 'qemu'])
32 emulator_type = 'qemu'
33+ else:
34+ emulator_type = 'kvm'
35
36 # XXX newell 2017-05-18 bug=1690781
37 # Check to see if the XML output was an error.

Subscribers

People subscribed via source and target branches