Skip to content

Commit f708fee

Browse files
stephenfinricolin
authored andcommitted
libvirt: Ignore LibvirtConfigObject kwargs
We were mostly ignoring these except for a few limited examples. Do it for everything. Change-Id: Id55e1a8f3559386e27c5cb6a0fde94a4a69e7ea9 Signed-off-by: Stephen Finucane <[email protected]>
1 parent 8133092 commit f708fee

File tree

3 files changed

+47
-24
lines changed

3 files changed

+47
-24
lines changed

nova/tests/unit/virt/libvirt/test_config.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1535,7 +1535,10 @@ def test_config_graphics(self):
15351535
class LibvirtConfigGuestHostdev(LibvirtConfigBaseTest):
15361536

15371537
def test_config_pci_guest_host_dev(self):
1538-
obj = config.LibvirtConfigGuestHostdev(mode='subsystem', type='pci')
1538+
obj = config.LibvirtConfigGuestHostdev()
1539+
obj.mode = 'subsystem'
1540+
obj.type = 'pci'
1541+
15391542
xml = obj.to_xml()
15401543
expected = """
15411544
<hostdev mode="subsystem" type="pci" managed="yes"/>
@@ -3949,8 +3952,10 @@ def test_config_secret_iscsi(self):
39493952

39503953
class LibvirtConfigGuestVPMEMTest(LibvirtConfigBaseTest):
39513954
def test_config_vpmem(self):
3952-
obj = config.LibvirtConfigGuestVPMEM(
3953-
devpath='/dev/dax0.0', size_kb=4096 * units.Ki, align_kb=2048)
3955+
obj = config.LibvirtConfigGuestVPMEM()
3956+
obj.source_path = '/dev/dax0.0'
3957+
obj.target_size = 4096 * units.Ki
3958+
obj.align_size = 2048
39543959

39553960
xml = obj.to_xml()
39563961
self.assertXmlEqual(xml, """

nova/virt/libvirt/config.py

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,12 @@ class LibvirtConfigObject(object):
4545
def __init__(self, **kwargs):
4646
super(LibvirtConfigObject, self).__init__()
4747

48-
self.root_name = kwargs.get("root_name")
49-
self.ns_prefix = kwargs.get('ns_prefix')
50-
self.ns_uri = kwargs.get('ns_uri')
48+
self.root_name = kwargs.pop("root_name")
49+
self.ns_prefix = kwargs.pop("ns_prefix", None)
50+
self.ns_uri = kwargs.pop("ns_uri", None)
51+
52+
# handle programmer error
53+
assert not kwargs
5154

5255
def _new_node(self, node_name, **kwargs):
5356
if self.ns_uri is None:
@@ -1532,7 +1535,8 @@ def parse_dom(self, xmldoc):
15321535

15331536
class LibvirtConfigGuestDiskEncryptionSecret(LibvirtConfigObject):
15341537
def __init__(self, **kwargs):
1535-
super(LibvirtConfigGuestDiskEncryptionSecret, self).__init__(**kwargs)
1538+
super(LibvirtConfigGuestDiskEncryptionSecret, self).__init__(
1539+
root_name='diskencryptionsecret', **kwargs)
15361540
self.type = None
15371541
self.uuid = None
15381542

@@ -1552,7 +1556,8 @@ class LibvirtConfigGuestDiskEncryption(LibvirtConfigObject):
15521556
"""
15531557

15541558
def __init__(self, **kwargs):
1555-
super(LibvirtConfigGuestDiskEncryption, self).__init__(**kwargs)
1559+
super(LibvirtConfigGuestDiskEncryption, self).__init__(
1560+
root_name='diskencryption', **kwargs)
15561561
self.format = None
15571562
self.secret = None
15581563

@@ -1575,7 +1580,8 @@ def format_dom(self):
15751580
class LibvirtConfigGuestDiskMirror(LibvirtConfigObject):
15761581

15771582
def __init__(self, **kwargs):
1578-
super(LibvirtConfigGuestDiskMirror, self).__init__(**kwargs)
1583+
super(LibvirtConfigGuestDiskMirror, self).__init__(
1584+
root_name='diskmirror', **kwargs)
15791585
self.ready = None
15801586

15811587
def parse_dom(self, xmldoc):
@@ -1585,6 +1591,8 @@ def parse_dom(self, xmldoc):
15851591
class LibvirtConfigGuestIDMap(LibvirtConfigObject):
15861592

15871593
def __init__(self, **kwargs):
1594+
if 'root_name' not in kwargs:
1595+
kwargs['root_name'] = 'id'
15881596
super(LibvirtConfigGuestIDMap, self).__init__(**kwargs)
15891597
self.start = 0
15901598
self.target = 0
@@ -2168,13 +2176,14 @@ def __init__(self, **kwargs):
21682176

21692177
class LibvirtConfigGuestHostdev(LibvirtConfigGuestDevice):
21702178
def __init__(self, **kwargs):
2171-
super(LibvirtConfigGuestHostdev, self).\
2172-
__init__(root_name="hostdev", **kwargs)
2173-
self.mode = kwargs.get('mode')
2174-
self.type = kwargs.get('type')
2179+
super(LibvirtConfigGuestHostdev, self).__init__(
2180+
root_name="hostdev", **kwargs,
2181+
)
2182+
self.mode = None
2183+
self.type = None
21752184
# managed attribute is only used by PCI devices but mediated devices
21762185
# need to say managed=no
2177-
self.managed = kwargs.get('managed', 'yes')
2186+
self.managed = "yes"
21782187

21792188
def format_dom(self):
21802189
dev = super(LibvirtConfigGuestHostdev, self).format_dom()
@@ -2194,8 +2203,11 @@ def parse_dom(self, xmldoc):
21942203
class LibvirtConfigGuestHostdevPCI(LibvirtConfigGuestHostdev):
21952204
def __init__(self, **kwargs):
21962205
super(LibvirtConfigGuestHostdevPCI, self).\
2197-
__init__(mode='subsystem', type='pci',
2198-
**kwargs)
2206+
__init__(**kwargs)
2207+
2208+
self.mode = 'subsystem'
2209+
self.type = 'pci'
2210+
21992211
# These are returned from libvirt as hexadecimal strings with 0x prefix
22002212
# even if they have a different meaningful range: domain 16 bit,
22012213
# bus 8 bit, slot 5 bit, and function 3 bit
@@ -2252,10 +2264,14 @@ def parse_dom(self, xmldoc):
22522264

22532265
class LibvirtConfigGuestHostdevMDEV(LibvirtConfigGuestHostdev):
22542266
def __init__(self, **kwargs):
2255-
super(LibvirtConfigGuestHostdevMDEV, self).__init__(
2256-
mode='subsystem', type='mdev', managed='no', **kwargs)
2267+
super(LibvirtConfigGuestHostdevMDEV, self).__init__(**kwargs)
2268+
2269+
self.mode = 'subsystem'
2270+
self.type = 'mdev'
2271+
self.managed = 'no'
2272+
22572273
# model attribute is only supported by mediated devices
2258-
self.model = kwargs.get('model', 'vfio-pci')
2274+
self.model = 'vfio-pci'
22592275
self.uuid = None
22602276

22612277
def format_dom(self):
@@ -3585,11 +3601,11 @@ def __init__(self, **kwargs):
35853601

35863602
self.model = "nvdimm"
35873603
self.access = "shared"
3588-
self.source_path = kwargs.get("devpath", "")
3589-
self.align_size = kwargs.get("align_kb", 0)
3604+
self.source_path = ""
3605+
self.align_size = 0
35903606
self.pmem = True
35913607

3592-
self.target_size = kwargs.get("size_kb", 0)
3608+
self.target_size = 0
35933609
self.target_node = 0
35943610
self.label_size = 2 * units.Ki
35953611

nova/virt/libvirt/driver.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7017,8 +7017,10 @@ def _guest_add_vpmems(self, guest, vpmems):
70177017
size_kb = vpmem.size // units.Ki
70187018
align_kb = vpmem.align // units.Ki
70197019

7020-
vpmem_config = vconfig.LibvirtConfigGuestVPMEM(
7021-
devpath=vpmem.devpath, size_kb=size_kb, align_kb=align_kb)
7020+
vpmem_config = vconfig.LibvirtConfigGuestVPMEM()
7021+
vpmem_config.source_path = vpmem.devpath
7022+
vpmem_config.target_size = size_kb
7023+
vpmem_config.align_size = align_kb
70227024

70237025
# max memory size needs contain vpmem size
70247026
guest.max_memory_size += size_kb

0 commit comments

Comments
 (0)