From 171deb7a973d4fff88f0445a259e7d2627849eb5 Mon Sep 17 00:00:00 2001 From: Charles Arnold Date: Mon, 28 Nov 2022 19:35:30 +0000 Subject: [PATCH] - 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 --- ...itional-apart-to-track-code-coverage.patch | 45 +++++++++++++++++++ ...l-unattended-and-cloud-init-conflict.patch | 2 +- ...k-for-linux2020-in-amd-sev-test-case.patch | 2 +- ...sion-with-boot-and-no-install-method.patch | 42 +++++++++++++++++ virt-manager.changes | 8 ++++ virt-manager.spec | 10 +++-- 6 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 1cb0be40-virtinstall-split-no_install-conditional-apart-to-track-code-coverage.patch create mode 100644 e94786c0-virtinstall-fix-regression-with-boot-and-no-install-method.patch diff --git a/1cb0be40-virtinstall-split-no_install-conditional-apart-to-track-code-coverage.patch b/1cb0be40-virtinstall-split-no_install-conditional-apart-to-track-code-coverage.patch new file mode 100644 index 00000000..03552a55 --- /dev/null +++ b/1cb0be40-virtinstall-split-no_install-conditional-apart-to-track-code-coverage.patch @@ -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 + +--- 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, diff --git a/999ccb85-virt-install-unattended-and-cloud-init-conflict.patch b/999ccb85-virt-install-unattended-and-cloud-init-conflict.patch index ad5e3864..8d9fedcd 100644 --- a/999ccb85-virt-install-unattended-and-cloud-init-conflict.patch +++ b/999ccb85-virt-install-unattended-and-cloud-init-conflict.patch @@ -12,7 +12,7 @@ Signed-off-by: Cole Robinson --- 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") diff --git a/c22a876e-tests-Add-a-compat-check-for-linux2020-in-amd-sev-test-case.patch b/c22a876e-tests-Add-a-compat-check-for-linux2020-in-amd-sev-test-case.patch index a5d22faa..ad4e2989 100644 --- a/c22a876e-tests-Add-a-compat-check-for-linux2020-in-amd-sev-test-case.patch +++ b/c22a876e-tests-Add-a-compat-check-for-linux2020-in-amd-sev-test-case.patch @@ -9,7 +9,7 @@ Signed-off-by: Lin Ma --- 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") diff --git a/e94786c0-virtinstall-fix-regression-with-boot-and-no-install-method.patch b/e94786c0-virtinstall-fix-regression-with-boot-and-no-install-method.patch new file mode 100644 index 00000000..1a80e81d --- /dev/null +++ b/e94786c0-virtinstall-fix-regression-with-boot-and-no-install-method.patch @@ -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 + +--- 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) diff --git a/virt-manager.changes b/virt-manager.changes index 5e45d101..cfc050f4 100644 --- a/virt-manager.changes +++ b/virt-manager.changes @@ -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 diff --git a/virt-manager.spec b/virt-manager.spec index e162db29..e3a4f7cb 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -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