File 007-cli-man-Always-list-osinfo-before-os-variant.patch of Package virt-manager

Subject: cli, man: Always list --osinfo before --os-variant
From: Andrea Bolognani abologna@redhat.com Mon Dec 2 19:25:51 2024 +0100
Date: Tue Dec 10 14:06:12 2024 +0100:
Git: c3debb4eda6b251fdad87f1ba5326671bb558d2b

The former is the preferred spelling and it should always be
presented first to the user.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>

diff --git a/man/virt-install.rst b/man/virt-install.rst
index 775d7ce70..dc0b6d9cc 100644
--- a/man/virt-install.rst
+++ b/man/virt-install.rst
@@ -1022,7 +1022,7 @@ GUEST OS OPTIONS
 ================
 
 
-``--os-variant``, ``--osinfo``
+``--osinfo``, ``--os-variant``
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 **Syntax:** ``--osinfo`` [OSNAME|OPT1=VAL1,...]
@@ -1031,7 +1031,7 @@ Optimize the guest configuration for a specific operating system.
 For most cases, an OS must be specified or detected from the install
 media so performance critical features like virtio can be enabled.
 
-The simplest usage is ``--os-variant OSNAME`` or ``--osinfo OSNAME``,
+The simplest usage is ``--osinfo OSNAME`` or ``--os-variant OSNAME``,
 for example ``--osinfo fedora32``. The supported suboptions are:
 
 ``name=``, ``short-id=``
@@ -1076,7 +1076,7 @@ VIRTINSTALL_OSINFO_DISABLE_REQUIRE=1.
 Use the command ``virt-install --osinfo list`` to get the list of the
 accepted OS variants. See ``osinfo-query os`` for even more output.
 
-Note: ``--os-variant`` and ``--osinfo`` are aliases for one another.
+Note: ``--osinfo`` and ``--os-variant`` are aliases for one another.
 ``--osinfo`` is the preferred new style naming.
 
 
diff --git a/man/virt-xml.rst b/man/virt-xml.rst
index dfb6fd9fb..7bccffbf9 100644
--- a/man/virt-xml.rst
+++ b/man/virt-xml.rst
@@ -180,7 +180,7 @@ These options decide what action to take after altering the XML. In the common c
 GUEST OS OPTIONS
 ================
 
-``--os-variant``, ``--osinfo`` OS_VARIANT
+``--osinfo``, ``--os-variant`` OS_VARIANT
     Optimize the guest configuration for a specific operating system (ex.
     'fedora29', 'rhel7', 'win10'). While not required, specifying this
     options is HIGHLY RECOMMENDED, as it can greatly increase performance
@@ -194,7 +194,7 @@ GUEST OS OPTIONS
     Use the command ``virt-xml --osinfo list`` to get the list of the
     accepted OS variants. See ``osinfo-query os`` for even more output.
 
-    See virt-install(1) documentation for more details about ``--os-variant/--osinfo``
+    See virt-install(1) documentation for more details about ``--osinfo/--os-variant``
 
 
 CONVERSION OPTIONS
diff --git a/tests/test_cli.py b/tests/test_cli.py
index dc9c156da..51a1883c4 100644
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -1039,8 +1039,8 @@ c.add_compare("--connect %(URI-KVM-X86)s --install fedora26", "osinfo-url")  # g
 c.add_valid("--location https://foobar.com --os-variant detect=yes,name=win7", nogrep="Please file a bug against virt-install")  # os detection succeeds, the fallback warning shouldn't be printed
 c.add_valid("--pxe --os-variant detect=yes,name=win7", grep="Please file a bug against virt-install")  # os detection fails, so fallback warning should be printed
 c.add_valid("--cdrom http://example.com/path/to/some.iso --os-variant detect=yes,require=no", grep="Please file a bug against virt-install")  # detection fails with require=no, we should print the error about using fallback name=
-c.add_invalid("--pxe --os-variant detect=yes,require=yes", grep="--os-variant/--osinfo OS name is required")  # No os-variant detected, but require=yes
-c.add_invalid("--pxe --osinfo detect=yes", grep="--os-variant/--osinfo OS name is required")  # --osinfo detect=on failed, but with implied require=yes
+c.add_invalid("--pxe --os-variant detect=yes,require=yes", grep="--osinfo/--os-variant OS name is required")  # No os-variant detected, but require=yes
+c.add_invalid("--pxe --osinfo detect=yes", grep="--osinfo/--os-variant OS name is required")  # --osinfo detect=on failed, but with implied require=yes
 c.add_invalid("--pxe --virt-type foobar", grep="Host does not support domain type")
 c.add_invalid("--pxe --os-variant farrrrrrrge", grep="Unknown OS name")
 c.add_invalid("--pxe --boot menu=foobar", grep="menu must be 'yes' or 'no'")
@@ -1409,9 +1409,9 @@ c.add_valid("test-for-virtxml --edit --cpu host-passthrough --no-define --start
 c.add_valid("test-for-virtxml --edit --metadata name=test-for-virtxml", grep="requested changes will have no effect")
 c.add_valid("--print-diff test-for-virtxml --remove-device --disk boot.order=5", grep="boot order=\"5")
 c.add_invalid("test --edit 2 --events on_poweroff=destroy", grep="'--edit 2' doesn't make sense with --events")
-c.add_invalid("test --os-variant fedora26 --edit --cpu host-passthrough", grep="--os-variant/--osinfo is not supported")
-c.add_invalid("test-for-virtxml --os-variant fedora26 --remove-device --disk 1", grep="--os-variant/--osinfo is not supported")
-c.add_invalid("--build-xml --os-variant fedora26 --disk path=foo", grep="--os-variant/--osinfo is not supported")
+c.add_invalid("test --os-variant fedora26 --edit --cpu host-passthrough", grep="--osinfo/--os-variant is not supported")
+c.add_invalid("test-for-virtxml --os-variant fedora26 --remove-device --disk 1", grep="--osinfo/--os-variant is not supported")
+c.add_invalid("--build-xml --os-variant fedora26 --disk path=foo", grep="--osinfo/--os-variant is not supported")
 c.add_invalid("domain-idontexist --edit --cpu host-passthrough --start", grep="Could not find domain")
 c.add_invalid("test-state-shutoff --edit --update --boot menu=on --start", grep="Cannot use --update")
 c.add_invalid("test --edit --update --events on_poweroff=destroy", grep="Don't know how to --update for --events")
diff --git a/virtManager/createvm.py b/virtManager/createvm.py
index d5f49fb70..e37921603 100644
--- a/virtManager/createvm.py
+++ b/virtManager/createvm.py
@@ -103,7 +103,7 @@ class _GuestData:
         self.init = None
 
         self.machine = None
-        self.os_variant = None
+        self.osinfo = None
         self.uefi_requested = None
         self.name = None
 
@@ -138,8 +138,8 @@ class _GuestData:
             # If no machine was explicitly selected, we don't overwrite
             # it, because we want to
             guest.os.machine = self.machine
-        if self.os_variant:
-            guest.set_os_name(self.os_variant)
+        if self.osinfo:
+            guest.set_os_name(self.osinfo)
         if self.uefi_requested:
             guest.uefi_requested = self.uefi_requested
 
@@ -1578,7 +1578,7 @@ class vmmCreateVM(vmmGObjectUI):
             self._gdata.cdrom = cdrom
             self._gdata.extra_args = extra
             self._gdata.livecd = False
-            self._gdata.os_variant = osobj and osobj.name or None
+            self._gdata.osinfo = osobj and osobj.name or None
             guest = self._gdata.build_guest()
             installer = self._gdata.build_installer()
         except Exception as e:
diff --git a/virtinst/cli.py b/virtinst/cli.py
index b58717ab2..43d45a508 100644
--- a/virtinst/cli.py
+++ b/virtinst/cli.py
@@ -494,7 +494,7 @@ def fail_conflicting(option1, option2):
 def _get_completer_parsers():
     return VIRT_PARSERS + [ParserCheck, ParserLocation,
             ParserUnattended, ParserInstall, ParserCloudInit,
-            ParserOSVariant]
+            ParserOSInfo]
 
 
 def _virtparser_completer(prefix, **kwargs):
@@ -930,7 +930,7 @@ def add_disk_option(stog, editexample=False):
                "--disk=?") + editmsg)
 
 
-def add_os_variant_option(parser, virtinstall):
+def add_osinfo_option(parser, virtinstall):
     osg = parser.add_argument_group(_("OS options"))
 
     if virtinstall:
@@ -942,7 +942,7 @@ def add_os_variant_option(parser, virtinstall):
              "Example values: fedora29, rhel7.0, win10, ...\n"
              "Use '--osinfo list' to see a full list.")
 
-    osg.add_argument("--os-variant", "--osinfo", help=msg)
+    osg.add_argument("--osinfo", "--os-variant", help=msg)
     return osg
 
 
@@ -1880,11 +1880,11 @@ def parse_location(optstr):
     return parsedata.location, parsedata.kernel, parsedata.initrd
 
 
-########################
-# --os-variant parsing #
-########################
+####################
+# --osinfo parsing #
+####################
 
-class OSVariantData(object):
+class OSInfoData(object):
     _REQUIRE_ON = 1
     _REQUIRE_AUTO = 3
 
@@ -1936,8 +1936,8 @@ class OSVariantData(object):
         return self._name
 
 
-class ParserOSVariant(VirtCLIParser):
-    cli_arg_name = "os_variant"
+class ParserOSInfo(VirtCLIParser):
+    cli_arg_name = "osinfo"
     supports_clearxml = False
 
     @classmethod
@@ -1956,9 +1956,9 @@ class ParserOSVariant(VirtCLIParser):
         return super().parse(inst)
 
 
-def parse_os_variant(optstr):
-    data = OSVariantData()
-    parser = ParserOSVariant(optstr)
+def parse_osinfo(optstr):
+    data = OSInfoData()
+    parser = ParserOSInfo(optstr)
     parser.parse(data)
     data.validate()
     return data
@@ -5051,7 +5051,7 @@ def check_option_introspection(options):
 
 
 def check_osinfo_list(options):
-    if options.os_variant != "list":
+    if options.osinfo != "list":
         return False
 
     for osobj in OSDB.list_os():
diff --git a/virtinst/install/installertreemedia.py b/virtinst/install/installertreemedia.py
index 8b208bf50..dc6519eef 100644
--- a/virtinst/install/installertreemedia.py
+++ b/virtinst/install/installertreemedia.py
@@ -29,15 +29,15 @@ def _is_url(url):
 
 
 class _LocationData(object):
-    def __init__(self, os_variant, kernel_pairs, os_media, os_tree):
-        self.os_variant = os_variant
+    def __init__(self, osinfo, kernel_pairs, os_media, os_tree):
+        self.osinfo = osinfo
         self.kernel_pairs = kernel_pairs
         self.os_media = os_media
         self.os_tree = os_tree
 
         self.kernel_url_arg = None
-        if self.os_variant:
-            osobj = OSDB.lookup_os(self.os_variant)
+        if self.osinfo:
+            osobj = OSDB.lookup_os(self.osinfo)
             self.kernel_url_arg = osobj.get_kernel_url_arg()
 
 
@@ -171,7 +171,7 @@ class InstallerTreeMedia(object):
             return self._cached_data
 
         store = None
-        os_variant = None
+        osinfo = None
         os_media = None
         os_tree = None
         kernel_paths = []
@@ -187,14 +187,14 @@ class InstallerTreeMedia(object):
 
         if store:
             kernel_paths = store.get_kernel_paths()
-            os_variant = store.get_osdict_info()
+            osinfo = store.get_osdict_info()
             os_media = store.get_os_media()
             os_tree = store.get_os_tree()
         if has_location_kernel:
             kernel_paths = [
                     (self._location_kernel, self._location_initrd)]
 
-        self._cached_data = _LocationData(os_variant, kernel_paths,
+        self._cached_data = _LocationData(osinfo, kernel_paths,
                 os_media, os_tree)
         return self._cached_data
 
@@ -236,8 +236,8 @@ class InstallerTreeMedia(object):
             self._initrd_injections.append((scriptpath, expected_filename))
 
     def _prepare_kernel_url_arg(self, guest, cache):
-        os_variant = cache.os_variant or guest.osinfo.name
-        osobj = OSDB.lookup_os(os_variant)
+        osinfo = cache.osinfo or guest.osinfo.name
+        osobj = OSDB.lookup_os(osinfo)
         return osobj.get_kernel_url_arg()
 
     def _prepare_kernel_args(self, guest, cache, unattended_scripts):
@@ -304,7 +304,7 @@ class InstallerTreeMedia(object):
     def detect_distro(self, guest):
         fetcher = self._get_fetcher(guest, None)
         cache = self._get_cached_data(guest, fetcher)
-        return cache.os_variant
+        return cache.osinfo
 
     def get_os_media(self, guest, meter):
         fetcher = self._get_fetcher(guest, meter)
diff --git a/virtinst/virtinstall.py b/virtinst/virtinstall.py
index 15fd6ae9d..e56486055 100644
--- a/virtinst/virtinstall.py
+++ b/virtinst/virtinstall.py
@@ -571,7 +571,7 @@ def installer_detect_distro(guest, installer, osdata):
         fail(_("Error validating install location: %s") % str(e))
 
     msg = _(
-        "--os-variant/--osinfo OS name is required, but no value was\n"
+        "--osinfo/--os-variant OS name is required, but no value was\n"
         "set or detected.")
     if os_set:
         return
@@ -650,7 +650,7 @@ def _build_options_guest(conn, options):
 
 def build_guest_instance(conn, options):
     installdata = cli.parse_install(options.install)
-    osdata = cli.parse_os_variant(options.os_variant or installdata.os)
+    osdata = cli.parse_osinfo(options.osinfo or installdata.os)
     options.boot_was_set = bool(options.boot)
 
     if options.reinstall:
@@ -1076,7 +1076,7 @@ def parse_args():
     cli.add_boot_options(insg)
     insg.add_argument("--init", help=argparse.SUPPRESS)
 
-    osg = cli.add_os_variant_option(parser, virtinstall=True)
+    osg = cli.add_osinfo_option(parser, virtinstall=True)
     osg.add_argument("--os-type", dest="old_os_type", help=argparse.SUPPRESS)
 
     devg = parser.add_argument_group(_("Device Options"))
@@ -1188,8 +1188,8 @@ def set_test_stub_options(options):  # pragma: no cover
         options.disk = "none"
     if not options.graphics:
         options.graphics = "none"
-    if not options.os_variant:
-        options.os_variant = "fedora27"
+    if not options.osinfo:
+        options.osinfo = "fedora27"
 
 
 def main(conn=None):
diff --git a/virtinst/virtxml.py b/virtinst/virtxml.py
index 6a16532cd..bcd25eb48 100644
--- a/virtinst/virtxml.py
+++ b/virtinst/virtxml.py
@@ -44,11 +44,11 @@ def get_diff(origxml, newxml):
     return diff
 
 
-def set_os_variant(guest, os_variant):
-    if os_variant is None:
+def set_osinfo(guest, osinfo):
+    if osinfo is None:
         return
 
-    osdata = cli.parse_os_variant(os_variant)
+    osdata = cli.parse_osinfo(osinfo)
     if osdata.get_name():
         guest.set_os_name(osdata.get_name())
 
@@ -97,13 +97,13 @@ class Action:
 
 
 def validate_action(action, conn, options):
-    if options.os_variant is not None:
+    if options.osinfo is not None:
         if action.is_edit:
-            fail(_("--os-variant/--osinfo is not supported with --edit"))
+            fail(_("--osinfo/--os-variant is not supported with --edit"))
         if action.is_remove_device:
-            fail(_("--os-variant/--osinfo is not supported with --remove-device"))
+            fail(_("--osinfo/--os-variant is not supported with --remove-device"))
         if action.is_build_xml:
-            fail(_("--os-variant/--osinfo is not supported with --build-xml"))
+            fail(_("--osinfo/--os-variant is not supported with --build-xml"))
 
     if not action.parserclass.guest_propname and action.is_build_xml:
         fail(_("--build-xml not supported for {cli_flag}").format(
@@ -251,11 +251,11 @@ def action_edit(action, guest):
     return devs
 
 
-def action_add_device(action, guest, os_variant, input_devs):
+def action_add_device(action, guest, osinfo, input_devs):
     parserclass = action.parserclass
     parservalue = action.parservalue
 
-    set_os_variant(guest, os_variant)
+    set_osinfo(guest, osinfo)
 
     if input_devs:
         for dev in input_devs:
@@ -294,7 +294,7 @@ def action_build_xml(action, guest):
 
 def perform_action(action, guest, options, input_devs):
     if action.is_add_device:
-        return action_add_device(action, guest, options.os_variant, input_devs)
+        return action_add_device(action, guest, options.osinfo, input_devs)
     if action.is_remove_device:
         return action_remove_device(action, guest)
     if action.is_edit:
@@ -483,7 +483,7 @@ def parse_args():
     outg.add_argument("--confirm", action="store_true",
         help=_("Require confirmation before saving any results."))
 
-    cli.add_os_variant_option(parser, virtinstall=False)
+    cli.add_osinfo_option(parser, virtinstall=False)
 
     conv = parser.add_argument_group(_("Conversion options"))
     cli.ParserConvertToQ35.register()
openSUSE Build Service is sponsored by