Extend bhyveDomainInterfaceAddresses() to support the VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT source.
Signed-off-by: Roman Bogorodskiy <[email protected]> --- src/bhyve/bhyve_driver.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index 075b8ea64f..2556384002 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -1957,6 +1957,7 @@ bhyveDomainInterfaceAddresses(virDomainPtr domain, unsigned int flags) { virDomainObj *vm = NULL; + qemuAgent *agent; int ret = -1; virCheckFlags(0, -1); @@ -1971,6 +1972,22 @@ bhyveDomainInterfaceAddresses(virDomainPtr domain, goto cleanup; switch (source) { + case VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT: + if (virDomainObjBeginAgentJob(vm, VIR_AGENT_JOB_QUERY) < 0) + goto cleanup; + + if (bhyveDomainEnsureAgent(vm, true) < 0) + goto endjob; + + agent = bhyveDomainObjEnterAgent(vm); + ret = qemuAgentGetInterfaces(agent, ifaces, true); + bhyveDomainObjExitAgent(vm, agent); + + endjob: + virDomainObjEndAgentJob(vm); + + break; + case VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_ARP: ret = virDomainNetARPInterfaces(vm->def, ifaces); break; @@ -1979,12 +1996,6 @@ bhyveDomainInterfaceAddresses(virDomainPtr domain, ret = virDomainNetDHCPInterfaces(vm->def, ifaces); break; - case VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT: - virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, - _("Unsupported IP address data source %1$d"), - source); - break; - default: virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, _("Unknown IP address data source %1$d"), -- 2.52.0
