mirror of
https://github.com/virt-manager/virt-manager.git
synced 2024-10-27 01:55:20 +03:00
osxml: Ensure kernel/initrd/dtb are absolute paths
This commit is contained in:
parent
4c4bdbb8b8
commit
86417d42ca
@ -6,8 +6,8 @@
|
|||||||
<vcpu>1</vcpu>
|
<vcpu>1</vcpu>
|
||||||
<os>
|
<os>
|
||||||
<type arch="x86_64">hvm</type>
|
<type arch="x86_64">hvm</type>
|
||||||
<kernel>./virtinst-vmlinuz.</kernel>
|
<kernel>/tmp/virtinst-vmlinuz.</kernel>
|
||||||
<initrd>./virtinst-initrd.img.</initrd>
|
<initrd>/tmp/virtinst-initrd.img.</initrd>
|
||||||
<cmdline>method=tests/cli-test-xml/faketree console=ttyS0</cmdline>
|
<cmdline>method=tests/cli-test-xml/faketree console=ttyS0</cmdline>
|
||||||
</os>
|
</os>
|
||||||
<features>
|
<features>
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<vcpu>1</vcpu>
|
<vcpu>1</vcpu>
|
||||||
<os>
|
<os>
|
||||||
<type arch="x86_64">hvm</type>
|
<type arch="x86_64">hvm</type>
|
||||||
<kernel>./virtinst-vmlinuz.</kernel>
|
<kernel>/tmp/virtinst-vmlinuz.</kernel>
|
||||||
<initrd>./virtinst-initrd.img.</initrd>
|
<initrd>/tmp/virtinst-initrd.img.</initrd>
|
||||||
</os>
|
</os>
|
||||||
<features>
|
<features>
|
||||||
<acpi/>
|
<acpi/>
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
<os>
|
<os>
|
||||||
<type arch="ia64">hvm</type>
|
<type arch="ia64">hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
<kernel>./virtinst-vmlinuz.</kernel>
|
<kernel>/tmp/virtinst-vmlinuz.</kernel>
|
||||||
<initrd>./virtinst-initrd.img.</initrd>
|
<initrd>/tmp/virtinst-initrd.img.</initrd>
|
||||||
<cmdline>method=tests/cli-test-xml/faketree</cmdline>
|
<cmdline>method=tests/cli-test-xml/faketree</cmdline>
|
||||||
</os>
|
</os>
|
||||||
<features>
|
<features>
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<vcpu>1</vcpu>
|
<vcpu>1</vcpu>
|
||||||
<os>
|
<os>
|
||||||
<type arch="ia64">linux</type>
|
<type arch="ia64">linux</type>
|
||||||
<kernel>./virtinst-vmlinuz.</kernel>
|
<kernel>/tmp/virtinst-vmlinuz.</kernel>
|
||||||
<initrd>./virtinst-initrd.img.</initrd>
|
<initrd>/tmp/virtinst-initrd.img.</initrd>
|
||||||
<cmdline>method=tests/cli-test-xml/faketree</cmdline>
|
<cmdline>method=tests/cli-test-xml/faketree</cmdline>
|
||||||
</os>
|
</os>
|
||||||
<on_poweroff>destroy</on_poweroff>
|
<on_poweroff>destroy</on_poweroff>
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<vcpu>1</vcpu>
|
<vcpu>1</vcpu>
|
||||||
<os>
|
<os>
|
||||||
<type arch="x86_64">linux</type>
|
<type arch="x86_64">linux</type>
|
||||||
<kernel>./virtinst-vmlinuz.</kernel>
|
<kernel>/tmp/virtinst-vmlinuz.</kernel>
|
||||||
<initrd>./virtinst-initrd.img.</initrd>
|
<initrd>/tmp/virtinst-initrd.img.</initrd>
|
||||||
<cmdline>method=tests/cli-test-xml/faketree</cmdline>
|
<cmdline>method=tests/cli-test-xml/faketree</cmdline>
|
||||||
</os>
|
</os>
|
||||||
<on_poweroff>destroy</on_poweroff>
|
<on_poweroff>destroy</on_poweroff>
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
<os>
|
<os>
|
||||||
<type arch="i686">hvm</type>
|
<type arch="i686">hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
<kernel>kernel</kernel>
|
<kernel>/kernel</kernel>
|
||||||
<initrd>initrd</initrd>
|
<initrd>/initrd</initrd>
|
||||||
<cmdline>my kernel args</cmdline>
|
<cmdline>my kernel args</cmdline>
|
||||||
</os>
|
</os>
|
||||||
<features>
|
<features>
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<vcpu>5</vcpu>
|
<vcpu>5</vcpu>
|
||||||
<os>
|
<os>
|
||||||
<type arch="i686">hvm</type>
|
<type arch="i686">hvm</type>
|
||||||
<kernel>./virtinst-vmlinuz.</kernel>
|
<kernel>/tmp/virtinst-vmlinuz.</kernel>
|
||||||
<initrd>./virtinst-initrd.img.</initrd>
|
<initrd>/tmp/virtinst-initrd.img.</initrd>
|
||||||
<cmdline>method=tests/cli-test-xml/fakerhel6tree</cmdline>
|
<cmdline>method=tests/cli-test-xml/fakerhel6tree</cmdline>
|
||||||
</os>
|
</os>
|
||||||
<features>
|
<features>
|
||||||
|
@ -354,8 +354,8 @@ class TestXMLConfig(unittest.TestCase):
|
|||||||
g = utils.get_basic_fullyvirt_guest(installer=i)
|
g = utils.get_basic_fullyvirt_guest(installer=i)
|
||||||
|
|
||||||
g.add_device(utils.get_filedisk())
|
g.add_device(utils.get_filedisk())
|
||||||
g.os.kernel = "kernel"
|
g.os.kernel = "/kernel"
|
||||||
g.os.initrd = "initrd"
|
g.os.initrd = "/initrd"
|
||||||
g.os.kernel_args = "my kernel args"
|
g.os.kernel_args = "my kernel args"
|
||||||
|
|
||||||
self._compare(g, "install-fullyvirt-import-kernel", False)
|
self._compare(g, "install-fullyvirt-import-kernel", False)
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
<type arch="i686">hvm</type>
|
<type arch="i686">hvm</type>
|
||||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
<bootmenu enable="yes"/>
|
<bootmenu enable="yes"/>
|
||||||
<kernel>foo.img</kernel>
|
<kernel>/foo.img</kernel>
|
||||||
<initrd>bar.img</initrd>
|
<initrd>/bar.img</initrd>
|
||||||
<cmdline>ks=foo.ks</cmdline>
|
<cmdline>ks=foo.ks</cmdline>
|
||||||
<dtb>/baz.dtb</dtb>
|
<dtb>/baz.dtb</dtb>
|
||||||
<boot dev="cdrom"/>
|
<boot dev="cdrom"/>
|
||||||
|
@ -266,8 +266,8 @@ class XMLParseTest(unittest.TestCase):
|
|||||||
check = self._make_checker(guest.os)
|
check = self._make_checker(guest.os)
|
||||||
check("bootorder", ['hd', 'fd', 'cdrom', 'network'], ["cdrom"])
|
check("bootorder", ['hd', 'fd', 'cdrom', 'network'], ["cdrom"])
|
||||||
check("enable_bootmenu", False, True)
|
check("enable_bootmenu", False, True)
|
||||||
check("kernel", None, "foo.img")
|
check("kernel", None, "/foo.img")
|
||||||
check("initrd", None, "bar.img")
|
check("initrd", None, "/bar.img")
|
||||||
check("dtb", None, "/baz.dtb")
|
check("dtb", None, "/baz.dtb")
|
||||||
check("kernel_args", None, "ks=foo.ks")
|
check("kernel_args", None, "ks=foo.ks")
|
||||||
|
|
||||||
|
@ -92,10 +92,10 @@ class OSXML(XMLBuilder):
|
|||||||
enable_bootmenu = XMLProperty("./bootmenu/@enable", is_yesno=True)
|
enable_bootmenu = XMLProperty("./bootmenu/@enable", is_yesno=True)
|
||||||
useserial = XMLProperty("./bios/@useserial", is_yesno=True)
|
useserial = XMLProperty("./bios/@useserial", is_yesno=True)
|
||||||
|
|
||||||
kernel = XMLProperty("./kernel")
|
kernel = XMLProperty("./kernel", do_abspath=True)
|
||||||
initrd = XMLProperty("./initrd")
|
initrd = XMLProperty("./initrd", do_abspath=True)
|
||||||
|
dtb = XMLProperty("./dtb", do_abspath=True)
|
||||||
kernel_args = XMLProperty("./cmdline")
|
kernel_args = XMLProperty("./cmdline")
|
||||||
dtb = XMLProperty("./dtb")
|
|
||||||
|
|
||||||
init = XMLProperty("./init")
|
init = XMLProperty("./init")
|
||||||
loader = XMLProperty("./loader")
|
loader = XMLProperty("./loader")
|
||||||
|
@ -68,7 +68,7 @@ class _ImageFetcher(object):
|
|||||||
|
|
||||||
prefix = "virtinst-" + prefix
|
prefix = "virtinst-" + prefix
|
||||||
if "VIRTINST_TEST_SUITE" in os.environ:
|
if "VIRTINST_TEST_SUITE" in os.environ:
|
||||||
fn = os.path.join(".", prefix)
|
fn = os.path.join("/tmp", prefix)
|
||||||
fd = os.open(fn, os.O_RDWR | os.O_CREAT, 0640)
|
fd = os.open(fn, os.O_RDWR | os.O_CREAT, 0640)
|
||||||
else:
|
else:
|
||||||
(fd, fn) = tempfile.mkstemp(prefix=prefix,
|
(fd, fn) = tempfile.mkstemp(prefix=prefix,
|
||||||
|
@ -334,7 +334,8 @@ class XMLProperty(property):
|
|||||||
def __init__(self, xpath=None, name=None, doc=None,
|
def __init__(self, xpath=None, name=None, doc=None,
|
||||||
set_converter=None, validate_cb=None, make_xpath_cb=None,
|
set_converter=None, validate_cb=None, make_xpath_cb=None,
|
||||||
is_bool=False, is_int=False, is_yesno=False, is_onoff=False,
|
is_bool=False, is_int=False, is_yesno=False, is_onoff=False,
|
||||||
clear_first=None, default_cb=None, default_name=None):
|
clear_first=None, default_cb=None, default_name=None,
|
||||||
|
do_abspath=False):
|
||||||
"""
|
"""
|
||||||
Set a XMLBuilder class property that represents a value in the
|
Set a XMLBuilder class property that represents a value in the
|
||||||
<domain> XML. For example
|
<domain> XML. For example
|
||||||
@ -374,6 +375,7 @@ class XMLProperty(property):
|
|||||||
first explicit 'set'.
|
first explicit 'set'.
|
||||||
@param default_name: If the user does a set and passes in this
|
@param default_name: If the user does a set and passes in this
|
||||||
value, instead use the value of default_cb()
|
value, instead use the value of default_cb()
|
||||||
|
@param do_abspath: If True, run os.path.abspath on the passed value
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self._xpath = xpath
|
self._xpath = xpath
|
||||||
@ -386,6 +388,7 @@ class XMLProperty(property):
|
|||||||
self._is_int = is_int
|
self._is_int = is_int
|
||||||
self._is_yesno = is_yesno
|
self._is_yesno = is_yesno
|
||||||
self._is_onoff = is_onoff
|
self._is_onoff = is_onoff
|
||||||
|
self._do_abspath = do_abspath
|
||||||
|
|
||||||
self._make_xpath_cb = make_xpath_cb
|
self._make_xpath_cb = make_xpath_cb
|
||||||
self._validate_cb = validate_cb
|
self._validate_cb = validate_cb
|
||||||
@ -487,6 +490,8 @@ class XMLProperty(property):
|
|||||||
def _convert_set_value(self, xmlbuilder, val):
|
def _convert_set_value(self, xmlbuilder, val):
|
||||||
if self._default_name and val == self._default_name:
|
if self._default_name and val == self._default_name:
|
||||||
val = self._default_cb(xmlbuilder)
|
val = self._default_cb(xmlbuilder)
|
||||||
|
elif self._do_abspath and val is not None:
|
||||||
|
val = os.path.abspath(val)
|
||||||
elif self._is_onoff and val is not None:
|
elif self._is_onoff and val is not None:
|
||||||
val = bool(val) and "on" or "off"
|
val = bool(val) and "on" or "off"
|
||||||
elif self._is_yesno and val is not None:
|
elif self._is_yesno and val is not None:
|
||||||
|
Loading…
Reference in New Issue
Block a user