[libvirt PATCH v2 0/5] Cleanup and test more firmware handling scenarios

Daniel P. Berrangé posted 5 patches 2 years, 2 months ago
Test syntax-check failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20220222172350.2053536-1-berrange@redhat.com
src/conf/domain_conf.c                        | 67 ++++++++----------
src/conf/domain_validate.c                    | 32 +++++++++
src/qemu/qemu_domain.c                        |  6 +-
...-nvram-rw-template-vars.x86_64-latest.args | 41 +++++++++++
.../bios-nvram-rw-template-vars.xml           | 36 ++++++++++
.../bios-nvram-rw-template.x86_64-latest.args | 41 +++++++++++
.../bios-nvram-rw-template.xml                | 36 ++++++++++
.../bios-nvram-rw-vars.x86_64-latest.args     | 41 +++++++++++
tests/qemuxml2argvdata/bios-nvram-rw-vars.xml | 36 ++++++++++
tests/qemuxml2argvdata/os-firmware-bios.xml   |  1 -
...ware-efi-bad-loader-path.x86_64-latest.err |  1 +
.../os-firmware-efi-bad-loader-path.xml       | 67 ++++++++++++++++++
...ware-efi-bad-loader-type.x86_64-latest.err |  1 +
.../os-firmware-efi-bad-loader-type.xml       | 67 ++++++++++++++++++
...mware-efi-bad-nvram-path.x86_64-latest.err |  1 +
.../os-firmware-efi-bad-nvram-path.xml        | 68 +++++++++++++++++++
...e-efi-bad-nvram-template.x86_64-latest.err |  1 +
.../os-firmware-efi-bad-nvram-template.xml    | 68 +++++++++++++++++++
.../os-firmware-efi-secboot.xml               |  1 -
tests/qemuxml2argvdata/os-firmware-efi.xml    |  1 -
tests/qemuxml2argvtest.c                      |  7 ++
.../os-firmware-bios.x86_64-latest.xml        |  1 -
.../os-firmware-efi-secboot.x86_64-latest.xml |  1 -
.../os-firmware-efi.x86_64-latest.xml         |  1 -
24 files changed, 578 insertions(+), 45 deletions(-)
create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template-vars.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template-vars.xml
create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template.xml
create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-vars.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-vars.xml
create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-path.x86_64-latest.err
create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-path.xml
create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-type.x86_64-latest.err
create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-type.xml
create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.x86_64-latest.err
create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.xml
create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-template.x86_64-latest.err
create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-template.xml
[libvirt PATCH v2 0/5] Cleanup and test more firmware handling scenarios
Posted by Daniel P. Berrangé 2 years, 2 months ago
There are a mind bending number of possible ways to configure the
firmware with/without NVRAM. Only a small portion are tested and
many error scenarios are silently ignored.

This series attempts to get coverage of every possible XML config
scenario and report explicit errors in all invalid configs.

There is an open question on patch 4.  Essentially the use of NVRAM
combined with writable executable feels like an accidental feature
in libvirt that hasn't really been thought through. I'd like to
better define expectations here but there are several possible
strategies and I'm undecided which is best.

Changed in v2:

 - Merged 5 self contained patches already reviewed
 - Moved checks out of post-parse, into validate methods
 - Instead of rejecting R/W loader with NVRAM template
   honour the template in QEMU driver. A R/W loader is
   conceptually relevant if the loader allows guest
   to live flash upgrade itself. Not possible today
   but we shouldn't reject this combo since QEMU allows
   it.

Daniel P. Berrangé (5):
  qemu: fix populating NVRAM vars from template with R/W loader
  tests: don't permit NVRAM path when using firmware auto-select
  conf: switch nvram parsing to use XML node / property helpers
  conf: move nvram parsing into virDomainLoaderDefParseXML
  conf: stop ignoring <loader>/<nvram> with firmware auto-select

 src/conf/domain_conf.c                        | 67 ++++++++----------
 src/conf/domain_validate.c                    | 32 +++++++++
 src/qemu/qemu_domain.c                        |  6 +-
 ...-nvram-rw-template-vars.x86_64-latest.args | 41 +++++++++++
 .../bios-nvram-rw-template-vars.xml           | 36 ++++++++++
 .../bios-nvram-rw-template.x86_64-latest.args | 41 +++++++++++
 .../bios-nvram-rw-template.xml                | 36 ++++++++++
 .../bios-nvram-rw-vars.x86_64-latest.args     | 41 +++++++++++
 tests/qemuxml2argvdata/bios-nvram-rw-vars.xml | 36 ++++++++++
 tests/qemuxml2argvdata/os-firmware-bios.xml   |  1 -
 ...ware-efi-bad-loader-path.x86_64-latest.err |  1 +
 .../os-firmware-efi-bad-loader-path.xml       | 67 ++++++++++++++++++
 ...ware-efi-bad-loader-type.x86_64-latest.err |  1 +
 .../os-firmware-efi-bad-loader-type.xml       | 67 ++++++++++++++++++
 ...mware-efi-bad-nvram-path.x86_64-latest.err |  1 +
 .../os-firmware-efi-bad-nvram-path.xml        | 68 +++++++++++++++++++
 ...e-efi-bad-nvram-template.x86_64-latest.err |  1 +
 .../os-firmware-efi-bad-nvram-template.xml    | 68 +++++++++++++++++++
 .../os-firmware-efi-secboot.xml               |  1 -
 tests/qemuxml2argvdata/os-firmware-efi.xml    |  1 -
 tests/qemuxml2argvtest.c                      |  7 ++
 .../os-firmware-bios.x86_64-latest.xml        |  1 -
 .../os-firmware-efi-secboot.x86_64-latest.xml |  1 -
 .../os-firmware-efi.x86_64-latest.xml         |  1 -
 24 files changed, 578 insertions(+), 45 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template-vars.x86_64-latest.args
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template-vars.xml
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template.x86_64-latest.args
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template.xml
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-vars.x86_64-latest.args
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-vars.xml
 create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-path.x86_64-latest.err
 create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-path.xml
 create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-type.x86_64-latest.err
 create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-type.xml
 create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.x86_64-latest.err
 create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.xml
 create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-template.x86_64-latest.err
 create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-template.xml

-- 
2.34.1