mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-01-05 09:17:57 +03:00
virt-xml: Start using --os-variant
The option only works with --add-device for the time being, so we prevent its use in all other cases. It would be nice to have it work with --build-xml too, but in that case the user would have to provide some extra information that in the case of --add-device we can figure out from the existing guest, and it's not entirely clear whether that would even be that useful, so for now we're not considering that case at all. Signed-off-by: Andrea Bolognani <abologna@redhat.com>
This commit is contained in:
parent
b882dbde9c
commit
d2d103a334
@ -1,10 +1,19 @@
|
|||||||
|
</description>
|
||||||
|
<metadata>
|
||||||
|
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
|
||||||
|
- <libosinfo:os id="http://fedoraproject.org/fedora/unknown"/>
|
||||||
|
+ <libosinfo:os id="http://microsoft.com/win/me"/>
|
||||||
|
</libosinfo:libosinfo>
|
||||||
|
</metadata>
|
||||||
|
<memory unit="KiB">409600</memory>
|
||||||
|
@@
|
||||||
<panic model="s390"/>
|
<panic model="s390"/>
|
||||||
<panic model="pseries"/>
|
<panic model="pseries"/>
|
||||||
<panic model="hyperv"/>
|
<panic model="hyperv"/>
|
||||||
+ <disk type="file" device="disk">
|
+ <disk type="file" device="disk">
|
||||||
+ <driver name="qemu" type="qcow2"/>
|
+ <driver name="qemu" type="qcow2"/>
|
||||||
+ <source file="/dev/default-pool/testvol1.img"/>
|
+ <source file="/dev/default-pool/testvol1.img"/>
|
||||||
+ <target dev="vdaf" bus="virtio"/>
|
+ <target dev="hdd" bus="ide"/>
|
||||||
+ </disk>
|
+ </disk>
|
||||||
</devices>
|
</devices>
|
||||||
<seclabel type="dynamic" model="selinux" relabel="yes"/>
|
<seclabel type="dynamic" model="selinux" relabel="yes"/>
|
||||||
|
@ -1,10 +1,19 @@
|
|||||||
|
</description>
|
||||||
|
<metadata>
|
||||||
|
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
|
||||||
|
- <libosinfo:os id="http://fedoraproject.org/fedora/unknown"/>
|
||||||
|
+ <libosinfo:os id="http://microsoft.com/win/me"/>
|
||||||
|
</libosinfo:libosinfo>
|
||||||
|
</metadata>
|
||||||
|
<memory unit="KiB">409600</memory>
|
||||||
|
@@
|
||||||
<panic model="s390"/>
|
<panic model="s390"/>
|
||||||
<panic model="pseries"/>
|
<panic model="pseries"/>
|
||||||
<panic model="hyperv"/>
|
<panic model="hyperv"/>
|
||||||
+ <interface type="bridge">
|
+ <interface type="bridge">
|
||||||
+ <source bridge="eth0"/>
|
+ <source bridge="eth0"/>
|
||||||
+ <mac address="00:11:22:33:44:55"/>
|
+ <mac address="00:11:22:33:44:55"/>
|
||||||
+ <model type="virtio"/>
|
+ <model type="e1000"/>
|
||||||
+ </interface>
|
+ </interface>
|
||||||
</devices>
|
</devices>
|
||||||
<seclabel type="dynamic" model="selinux" relabel="yes"/>
|
<seclabel type="dynamic" model="selinux" relabel="yes"/>
|
||||||
|
14
virt-xml
14
virt-xml
@ -56,6 +56,13 @@ def get_diff(origxml, newxml):
|
|||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
def set_distro_variant(options, guest):
|
||||||
|
if options.distro_variant is None:
|
||||||
|
return
|
||||||
|
|
||||||
|
guest.set_os_name(options.distro_variant)
|
||||||
|
|
||||||
|
|
||||||
def get_domain_and_guest(conn, domstr):
|
def get_domain_and_guest(conn, domstr):
|
||||||
try:
|
try:
|
||||||
int(domstr)
|
int(domstr)
|
||||||
@ -175,6 +182,8 @@ def action_edit(guest, options, parserclass):
|
|||||||
fail(_("'--edit %s' doesn't make sense with --%s, "
|
fail(_("'--edit %s' doesn't make sense with --%s, "
|
||||||
"just use empty '--edit'") %
|
"just use empty '--edit'") %
|
||||||
(options.edit, parserclass.cli_arg_name))
|
(options.edit, parserclass.cli_arg_name))
|
||||||
|
if options.distro_variant is not None:
|
||||||
|
fail(_("--os-variant is not supported with --edit"))
|
||||||
|
|
||||||
return cli.parse_option_strings(options, guest, inst, update=True)
|
return cli.parse_option_strings(options, guest, inst, update=True)
|
||||||
|
|
||||||
@ -182,6 +191,7 @@ def action_edit(guest, options, parserclass):
|
|||||||
def action_add_device(guest, options, parserclass):
|
def action_add_device(guest, options, parserclass):
|
||||||
if not parserclass.prop_is_list(guest):
|
if not parserclass.prop_is_list(guest):
|
||||||
fail(_("Cannot use --add-device with --%s") % parserclass.cli_arg_name)
|
fail(_("Cannot use --add-device with --%s") % parserclass.cli_arg_name)
|
||||||
|
set_distro_variant(options, guest)
|
||||||
devs = cli.parse_option_strings(options, guest, None)
|
devs = cli.parse_option_strings(options, guest, None)
|
||||||
devs = util.listify(devs)
|
devs = util.listify(devs)
|
||||||
for dev in devs:
|
for dev in devs:
|
||||||
@ -193,6 +203,8 @@ def action_remove_device(guest, options, parserclass):
|
|||||||
if not parserclass.prop_is_list(guest):
|
if not parserclass.prop_is_list(guest):
|
||||||
fail(_("Cannot use --remove-device with --%s") %
|
fail(_("Cannot use --remove-device with --%s") %
|
||||||
parserclass.cli_arg_name)
|
parserclass.cli_arg_name)
|
||||||
|
if options.distro_variant is not None:
|
||||||
|
fail(_("--os-variant is not supported with --remove-device"))
|
||||||
|
|
||||||
devs = _find_objects_to_edit(guest, "remove-device",
|
devs = _find_objects_to_edit(guest, "remove-device",
|
||||||
getattr(options, parserclass.cli_arg_name)[-1], parserclass)
|
getattr(options, parserclass.cli_arg_name)[-1], parserclass)
|
||||||
@ -207,6 +219,8 @@ def action_build_xml(conn, options, parserclass):
|
|||||||
if not parserclass.propname:
|
if not parserclass.propname:
|
||||||
fail(_("--build-xml not supported for --%s") %
|
fail(_("--build-xml not supported for --%s") %
|
||||||
parserclass.cli_arg_name)
|
parserclass.cli_arg_name)
|
||||||
|
if options.distro_variant is not None:
|
||||||
|
fail(_("--os-variant is not supported with --build-xml"))
|
||||||
|
|
||||||
guest = virtinst.Guest(conn)
|
guest = virtinst.Guest(conn)
|
||||||
inst = parserclass.lookup_prop(guest)
|
inst = parserclass.lookup_prop(guest)
|
||||||
|
Loading…
Reference in New Issue
Block a user