From 6ec12670b96e104c73cae0cd4c661d174f7c4d49 Mon Sep 17 00:00:00 2001 From: Wenkang Ji Date: Mon, 30 Dec 2024 14:09:29 +0800 Subject: [PATCH] QEMU_VM: Add nic_extra_param_types support Add nic_extra_param_types params support for nic_extra_params to optimize virtio-net QEMU cmdline type handling. Signed-off-by: Wenkang Ji --- virttest/qemu_vm.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/virttest/qemu_vm.py b/virttest/qemu_vm.py index 0e976e2dfb..6aab15c4cf 100644 --- a/virttest/qemu_vm.py +++ b/virttest/qemu_vm.py @@ -740,11 +740,24 @@ def add_nic( dev.parent_bus = pci_bus dev.set_param("addr", pci_addr) if nic_extra_params: + nic_extra_param_types = self.params.get("nic_extra_param_types", {}) + if nic_extra_param_types: + nic_extra_param_types = dict(eval(nic_extra_param_types)) nic_extra_params = ( _.split("=", 1) for _ in nic_extra_params.split(",") if _ ) for key, val in nic_extra_params: - dev.set_param(key, val) + value_type = nic_extra_param_types.get(key) + if value_type: + try: + converted_val = value_type(val) + dev.set_param(key, converted_val) + except ValueError as e: + raise ValueError( + f"Failed to convert {key}: {val} to {value_type}: {e}" + ) + else: + dev.set_param(key, val) dev.set_param("bootindex", bootindex) if "aarch64" in params.get("vm_arch_name", arch.ARCH): if "rombar" in devices.execute_qemu("-device %s,?" % model):