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

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

Commit message

LP: #1785755 - Add the serial number of the disk to the VM XML.

Description of the change

Example output from this branch when creating a VM:

    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/099e1d17-9f6b-46e2-b4b6-07fc2814cdc5'/>
      <backingStore/>
      <target dev='vda' bus='virtio'/>
      <serial>099e1d17-9f6b-46e2-b4b6-07fc2814cdc5</serial>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>

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

Looks good.

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

UNIT TESTS
-b lp1785755 lp:~newell-jensen/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 8a2d84b33e400f574edcdf7bef5abf3d0abbb8c1

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 d3141d1..ff616c7 100644
3--- a/src/provisioningserver/drivers/pod/tests/test_virsh.py
4+++ b/src/provisioningserver/drivers/pod/tests/test_virsh.py
5@@ -5,6 +5,7 @@
6
7 __all__ = []
8
9+import os
10 import random
11 from textwrap import dedent
12 from unittest.mock import (
13@@ -1208,7 +1209,8 @@ class TestVirshSSH(MAASTestCase):
14 domain = factory.make_name('domain')
15 pool = factory.make_name('pool')
16 volume_name = factory.make_name('volume')
17- volume_path = factory.make_name('path')
18+ volume_path = factory.make_name('/some/path/to_vol_serial')
19+ serial = os.path.basename(volume_path)
20 device_name = factory.make_name('device')
21 mock_run = self.patch(virsh.VirshSSH, "run")
22 self.patch(
23@@ -1216,7 +1218,8 @@ class TestVirshSSH(MAASTestCase):
24 conn.attach_local_volume(domain, pool, volume_name, device_name)
25 self.assertThat(mock_run, MockCalledOnceWith([
26 'attach-disk', domain, volume_path, device_name,
27- '--targetbus', 'virtio', '--sourcetype', 'file', '--config']))
28+ '--targetbus', 'virtio', '--sourcetype',
29+ 'file', '--config', '--serial', serial]))
30
31 def test_get_networks_list(self):
32 networks = [
33diff --git a/src/provisioningserver/drivers/pod/virsh.py b/src/provisioningserver/drivers/pod/virsh.py
34index dff69a5..f04fb9c 100644
35--- a/src/provisioningserver/drivers/pod/virsh.py
36+++ b/src/provisioningserver/drivers/pod/virsh.py
37@@ -9,6 +9,7 @@ __all__ = [
38 ]
39
40 from collections import namedtuple
41+import os
42 import string
43 from tempfile import NamedTemporaryFile
44 from textwrap import dedent
45@@ -845,9 +846,11 @@ class VirshSSH(pexpect.spawn):
46 def attach_local_volume(self, domain, pool, volume, device):
47 """Attach `volume` in `pool` to `domain` as `device`."""
48 vol_path = self.get_volume_path(pool, volume)
49+ serial = os.path.basename(vol_path)
50 self.run([
51 'attach-disk', domain, vol_path, device,
52- '--targetbus', 'virtio', '--sourcetype', 'file', '--config'])
53+ '--targetbus', 'virtio', '--sourcetype',
54+ 'file', '--config', '--serial', serial])
55
56 def get_network_list(self):
57 """Return the list of available networks."""

Subscribers

People subscribed via source and target branches