- bsc#1205675 - [Build 20221122] virt-install: Specifying --boot no

longer implies no_install=yes
  1cb0be40-virtinstall-split-no_install-conditional-apart-to-track-code-coverage.patch
  e94786c0-virtinstall-fix-regression-with-boot-and-no-install-method.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=584
This commit is contained in:
Charles Arnold 2022-11-28 19:35:30 +00:00 committed by Git OBS Bridge
parent 82007fb6e3
commit 171deb7a97
6 changed files with 103 additions and 6 deletions

View File

@ -0,0 +1,45 @@
Subject: virtinstall: split no_install conditional apart to track code coverage
From: Cole Robinson crobinso@redhat.com Sat Aug 20 09:42:47 2022 -0400
Date: Sat Aug 20 09:47:49 2022 -0400:
Git: 1cb0be4002445e5755ead2423b5a4e9e06f0a3cb
Each bit here is part of the CLI API, we need to be sure we are
covering each one. Extend the test suite to hit one case we are missing
Signed-off-by: Cole Robinson <crobinso@redhat.com>
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -1017,7 +1017,9 @@ c = vinst.add_category("misc-install", "
c.add_compare("--connect %s --os-variant generic" % (utils.URIs.test_suite), "noargs-fail", use_default_args=False) # No arguments
c.add_compare("--connect %s --os-variant fedora26" % (utils.URIs.test_suite), "osvariant-noargs-fail", use_default_args=False) # No arguments
c.add_compare("--connect %s --os-variant fedora26 --pxe --print-xml" % (utils.URIs.test_suite), "osvariant-defaults-pxe", use_default_args=False) # No arguments
+c.add_compare("--disk %(EXISTIMG1)s --os-variant fedora28 --cloud-init root-password-generate=yes,disable=no --sysinfo system.serial=foobar", "cloud-init-options1", env={"VIRTINST_TEST_SUITE_PRINT_CLOUDINIT": "1"}) # --cloud-init root-password-generate, with --sysinfo override
c.add_compare("--disk %(EXISTIMG1)s --os-variant fedora28 --cloud-init", "cloud-init-default", env={"VIRTINST_TEST_SUITE_CLOUDINIT": "1"}) # default --cloud-init behavior is root-password-generate=yes,disable=yes
+c.add_valid("--disk %(EXISTIMG1)s --os-variant fedora28 --cloud-init", env={"VIRTINST_TEST_SUITE_CLOUDINIT": "1"}) # default --cloud-init, but without implied --print-xml, to hit some specific code paths
c.add_compare("--disk %(EXISTIMG1)s --os-variant fedora28 --cloud-init root-password-generate=yes,disable=no --sysinfo system.serial=foobar", "cloud-init-options1", env={"VIRTINST_TEST_SUITE_PRINT_CLOUDINIT": "1"}) # --cloud-init root-password-generate, with --sysinfo override
c.add_compare("--disk %(EXISTIMG1)s --os-variant fedora28 --cloud-init root-password-file=%(ADMIN-PASSWORD-FILE)s,root-ssh-key=%(XMLDIR)s/cloudinit/ssh-key.txt,clouduser-ssh-key=%(XMLDIR)s/cloudinit/ssh-key2.txt --boot smbios.mode=none", "cloud-init-options2", env={"VIRTINST_TEST_SUITE_PRINT_CLOUDINIT": "1"}) # --cloud-init root-password-file with smbios.mode override
c.add_compare("--disk %(EXISTIMG1)s --os-variant fedora28 --cloud-init ssh-key=%(XMLDIR)s/cloudinit/ssh-key.txt", "cloud-init-options3", env={"VIRTINST_TEST_SUITE_PRINT_CLOUDINIT": "1"}) # --cloud-init ssh-key
--- a/virtinst/virtinstall.py
+++ b/virtinst/virtinstall.py
@@ -425,11 +425,15 @@ def build_installer(options, guest, inst
install_bootdev = "network"
elif installdata.is_set:
pass
- elif (options.import_install or
- options.xmlonly or
- options.boot or
- options.cloud_init or
- options.unattended):
+ elif options.xmlonly:
+ no_install = True
+ elif options.import_install:
+ no_install = True
+ elif options.boot:
+ no_install = True
+ elif options.cloud_init:
+ no_install = True
+ elif options.unattended:
no_install = True
installer = virtinst.Installer(guest.conn,

View File

@ -12,7 +12,7 @@ Signed-off-by: Cole Robinson <crobinso@redhat.com>
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -1113,6 +1113,7 @@ c.add_invalid("--disk none --boot networ
@@ -1116,6 +1116,7 @@ c.add_invalid("--disk none --boot networ
c.add_invalid("--nodisks --boot network --arch mips --virt-type kvm", grep="any virtualization options for architecture 'mips'")
c.add_invalid("--nodisks --boot network --paravirt --arch mips", grep=" 'xen' for architecture 'mips'")
c.add_invalid("--osinfo generic --launchSecurity sev --connect " + utils.URIs.kvm_amd_sev, grep="SEV launch security requires a Q35 UEFI machine")

View File

@ -9,7 +9,7 @@ Signed-off-by: Lin Ma <lma@suse.com>
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -1105,7 +1105,7 @@ c.add_compare("--connect " + utils.URIs.
@@ -1108,7 +1108,7 @@ c.add_compare("--connect " + utils.URIs.
c.add_compare("--connect %(URI-KVM-X86)s --os-variant fedora26 --graphics spice --controller usb,model=none", "graphics-usb-disable")
c.add_compare("--osinfo generic --boot uefi --disk size=1", "boot-uefi")
c.add_compare("--osinfo generic --boot uefi --disk size=1 --tpm none --connect " + utils.URIs.kvm_x86_oldfirmware, "boot-uefi-oldcaps")

View File

@ -0,0 +1,42 @@
Subject: virtinstall: fix regression with --boot and no install method
From: Cole Robinson crobinso@redhat.com Sat Aug 20 09:54:01 2022 -0400
Date: Sat Aug 20 09:54:01 2022 -0400:
Git: e94786c066696781a821f5a4bcef3c377e4bc5e5
Anything passed to --boot should imply --install no_install=yes
in the absence of other --install options. This is historically
what we've done but we regressed in 4.1.0
Resolves: https://github.com/virt-manager/virt-manager/issues/426
Signed-off-by: Cole Robinson <crobinso@redhat.com>
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -967,6 +967,7 @@ c.add_valid("--os-variant generic --pxe
c.add_valid("--os-variant winxp --ram 32 --cdrom %(EXISTIMG1)s", grep="32 MiB is less than the recommended 64 MiB") # Windows. Catch memory warning
c.add_valid("--osinfo generic --pxe --autostart") # --autostart flag
c.add_valid("--cdrom %(EXISTIMG2)s --os-variant win2k3 --print-step 2") # HVM windows install, print 3rd stage XML
+c.add_valid("--memory 512 --osinfo generic --boot cdrom") # --boot XXX should imply --install no_install
c.add_compare("--location location=%(TREEDIR)s --initrd-inject virt-install --extra-args ks=file:/virt-install", "initrd-inject") # initrd-inject
c.add_compare("--cdrom http://example.com/path/to/some.iso --os-variant detect=yes,require=no", "cdrom-url")
c.add_compare("--pxe --print-step all --os-variant none", "simple-pxe") # Diskless PXE install
--- a/virtinst/virtinstall.py
+++ b/virtinst/virtinstall.py
@@ -429,7 +429,7 @@ def build_installer(options, guest, inst
no_install = True
elif options.import_install:
no_install = True
- elif options.boot:
+ elif options.boot_was_set:
no_install = True
elif options.cloud_init:
no_install = True
@@ -641,6 +641,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)
+ options.boot_was_set = bool(options.boot)
if options.reinstall:
dummy1, guest, dummy2 = cli.get_domain_and_guest(conn, options.reinstall)

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Mon Nov 28 12:28:44 MST 2022 - carnold@suse.com
- bsc#1205675 - [Build 20221122] virt-install: Specifying --boot no
longer implies no_install=yes
1cb0be40-virtinstall-split-no_install-conditional-apart-to-track-code-coverage.patch
e94786c0-virtinstall-fix-regression-with-boot-and-no-install-method.patch
-------------------------------------------------------------------
Tue Nov 15 07:51:46 MST 2022 - carnold@suse.com

View File

@ -45,10 +45,12 @@ Patch1: revert-363fca41-virt-install-Require-osinfo-for-non-x86-HVM-case
Patch2: 11a887ec-cli-disk-Add-driver.metadata_cache-options.patch
Patch3: 7295ebfb-tests-cli-Fix-test-output-after-previous-commit.patch
Patch4: 58f5e36d-fsdetails-Fix-an-error-with-source.socket-of-virtiofs.patch
Patch5: c22a876e-tests-Add-a-compat-check-for-linux2020-in-amd-sev-test-case.patch
Patch6: fbdf0516-cli-cpu-Add-maxphysaddr.mode-bits-options.patch
Patch7: b0d05167-cloner-Sync-uuid-and-sysinfo-system-uuid.patch
Patch8: 999ccb85-virt-install-unattended-and-cloud-init-conflict.patch
Patch5: 1cb0be40-virtinstall-split-no_install-conditional-apart-to-track-code-coverage.patch
Patch6: e94786c0-virtinstall-fix-regression-with-boot-and-no-install-method.patch
Patch7: c22a876e-tests-Add-a-compat-check-for-linux2020-in-amd-sev-test-case.patch
Patch8: fbdf0516-cli-cpu-Add-maxphysaddr.mode-bits-options.patch
Patch9: b0d05167-cloner-Sync-uuid-and-sysinfo-system-uuid.patch
Patch10: 999ccb85-virt-install-unattended-and-cloud-init-conflict.patch
# SUSE Only
Patch70: virtman-desktop.patch
Patch71: virtman-kvm.patch