From 30a7ebf4306793dbffbd182d25b87cdc6fd09305 Mon Sep 17 00:00:00 2001 From: "wangyongchao.bj" Date: Tue, 22 Nov 2022 17:20:33 +0800 Subject: [PATCH] runtime: Log invalid devices in QEMU config When the user tried to add new devices to the VM, there is no error info for the invalid device. This PR adds a log record to the `appendDevices` for the invalid device of the qemu config. Fixes: #5719 Signed-off-by: wangyongchao.bj --- src/runtime/pkg/govmm/qemu/qemu.go | 9 +++++++-- src/runtime/pkg/govmm/qemu/qemu_test.go | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/runtime/pkg/govmm/qemu/qemu.go b/src/runtime/pkg/govmm/qemu/qemu.go index 5b04a01c1d..a83b921769 100644 --- a/src/runtime/pkg/govmm/qemu/qemu.go +++ b/src/runtime/pkg/govmm/qemu/qemu.go @@ -2699,9 +2699,14 @@ func (config *Config) appendQMPSockets() { } } -func (config *Config) appendDevices() { +func (config *Config) appendDevices(logger QMPLog) { + if logger == nil { + logger = qmpNullLogger{} + } + for _, d := range config.Devices { if !d.Valid() { + logger.Errorf("vm device is not valid: %+v", config.Devices) continue } @@ -2976,7 +2981,7 @@ func LaunchQemu(config Config, logger QMPLog) (string, error) { config.appendCPUModel() config.appendQMPSockets() config.appendMemory() - config.appendDevices() + config.appendDevices(logger) config.appendRTC() config.appendGlobalParam() config.appendPFlashParam() diff --git a/src/runtime/pkg/govmm/qemu/qemu_test.go b/src/runtime/pkg/govmm/qemu/qemu_test.go index 501c07fdf1..01ca765c50 100644 --- a/src/runtime/pkg/govmm/qemu/qemu_test.go +++ b/src/runtime/pkg/govmm/qemu/qemu_test.go @@ -34,7 +34,7 @@ func testConfigAppend(config *Config, structure interface{}, expected string, t case Device: config.Devices = []Device{s} - config.appendDevices() + config.appendDevices(nil) case Knobs: config.Knobs = s @@ -889,7 +889,7 @@ func TestBadQMPSockets(t *testing.T) { func TestBadDevices(t *testing.T) { c := &Config{} - c.appendDevices() + c.appendDevices(nil) if len(c.qemuParams) != 0 { t.Errorf("Expected empty qemuParams, found %s", c.qemuParams) } @@ -941,7 +941,7 @@ func TestBadDevices(t *testing.T) { }, } - c.appendDevices() + c.appendDevices(nil) if len(c.qemuParams) != 0 { t.Errorf("Expected empty qemuParams, found %s", c.qemuParams) }