如何通过 libvirt 模块将接口热插到 python 中的 运行 来宾域?

how to hot plug an interface to a running guest domain in python via libvirt module?

场景:我正在使用 python libvirt 模块开发 centos 7。我在 centos 7 中有 运行 来宾域。现在我想使用 python 脚本将接口附加到该来宾域。最初没有接口连接到来宾域。 XML 来宾域文件不包含任何接口标记和所有。

使用 shell 命令我可以附加接口。我叫这个

virsh detach-interface --domain link01 --type bridge --mac 96:5c:34:c0:5d:09 --persistent

python 脚本中的命令附加接口并成功附加。
如何在 python 中实现这一点??

任何与此相关的建议都会有很大帮助!

libvirt.virDomain 中有两个执行设备连接的函数:

attachDevice(xml)
attachDeviceFlags(xml, flags=0)

有关详细信息,请参阅他们的文档。 您可以从域的配置中获取预定义的接口节作为示例,并且应该省略或编辑 "address" 和 "mac" 标签以避免冲突。

#generate or read your xml
import libvirt
conn = libvirt.open(name)
domain = conn.lookupByName(domain_name)
domain.attachDeviceFlags(xml, libvirt.VIR_DOMAIN_AFFECT_LIVE)
#or
domain.attachDevice(xml)