<分区> 分区>
我正在尝试为一些开源软件编写补丁,因为它完全不是我想要的——除非我根本不懂 Python!我希望这很简单,但它打败了我。
背景: 我正在编写的补丁是针对我用来管理 KVM 虚拟机集群的 Ganeti,但它不支持 KVM 和 Qemu 所有可能的命令行选项,例如USB 直通,所以我正在尝试修改它以允许此功能。
kvm_cmd.extend() 用于添加 KVM CLI args 数组,这些参数将在 VM 启动时传递。如果参数是空格分隔的,则每个参数都会成为一个单独的字符串,例如-usb -device usb-host,hostbus=1,hostdev=14 变为 "-usb", "-device", "usb-host,hostbus=1,hostdev=14".
编译代码后我正在运行以下命令:
gnt-instance modify -H usb_pass="1;14"
我希望将其添加到现有的命令行参数列表 "-usb -device usb-host,hostbus=1,hostdev=14"。这是我添加的代码(以及在别处声明变量;HV_USBPASSTHROUGH 是一个字符串,但这是神奇的地方)
usb_pass = instance.hvparams[constants.HV_USBPASSTHROUGH]
if usb_pass:
usb_pass_arr = []
usb_pass_arr = usb_pass.split(";")
kvm_cmd.extend(["-usb", "-device", "usb-host,hostbus=%s,hostaddr=%s" %
usb_pass_arr])
使用上述代码运行上述命令时出现以下错误:无法启动实例:执行后端函数时出错:格式字符串的参数不足
