Merge "Add support for 'initenv' elements"

This commit is contained in:
Zuul
2019-10-18 10:41:41 +00:00
committed by Gerrit Code Review
2 changed files with 11 additions and 0 deletions

View File

@@ -2340,6 +2340,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
obj.uuid = "b38a3f43-4be2-4046-897f-b67c2f5e0147"
obj.os_type = "exe"
obj.os_init_path = "/sbin/init"
obj.os_init_env["foo"] = "bar"
fs = config.LibvirtConfigGuestFilesys()
fs.source_dir = "/root/lxc"
@@ -2357,6 +2358,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
<os>
<type>exe</type>
<init>/sbin/init</init>
<initenv name="foo">bar</initenv>
</os>
<devices>
<filesystem type="mount">
@@ -2692,6 +2694,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
<boot dev="fd"/>
<bootmenu enable="yes"/>
<smbios mode="sysinfo"/>
<initenv name="foo">bar</initenv>
</os>
</domain>
"""
@@ -2708,6 +2711,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
self.assertEqual('console=xvc0', obj.os_cmdline)
self.assertEqual('root=xvda', obj.os_root)
self.assertEqual('/sbin/init', obj.os_init_path)
self.assertEqual('bar', obj.os_init_env['foo'])
self.assertEqual(['hd', 'cdrom', 'fd'], obj.os_boot_dev)
self.assertTrue(obj.os_bootmenu)
self.assertIsNone(obj.os_smbios)

View File

@@ -2564,6 +2564,7 @@ class LibvirtConfigGuest(LibvirtConfigObject):
self.os_kernel = None
self.os_initrd = None
self.os_cmdline = None
self.os_init_env = {}
self.os_root = None
self.os_init_path = None
self.os_boot_dev = []
@@ -2628,6 +2629,10 @@ class LibvirtConfigGuest(LibvirtConfigObject):
os.append(self._text_node("root", self.os_root))
if self.os_init_path is not None:
os.append(self._text_node("init", self.os_init_path))
for name, value in self.os_init_env.items():
initenv = self._text_node("initenv", value)
initenv.set("name", name)
os.append(initenv)
for boot_dev in self.os_boot_dev:
os.append(etree.Element("boot", dev=boot_dev))
@@ -2747,6 +2752,8 @@ class LibvirtConfigGuest(LibvirtConfigObject):
elif c.tag == 'bootmenu':
if c.get('enable') == 'yes':
self.os_bootmenu = True
elif c.tag == 'initenv':
self.os_init_env[c.get('name')] = c.text
def parse_dom(self, xmldoc):
self.virt_type = xmldoc.get('type')