Move all the helpers to the beginning for the file to be able to use them in every API implementation.
Signed-off-by: Roman Bogorodskiy <[email protected]> --- src/bhyve/bhyve_driver.c | 181 ++++++++++++++++++++------------------- 1 file changed, 91 insertions(+), 90 deletions(-) diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index 331d9eb439..075b8ea64f 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -93,6 +93,97 @@ bhyveAutostartDomain(virDomainObj *vm, void *opaque) } } + +static qemuAgent * +bhyveDomainObjEnterAgent(virDomainObj *obj) +{ + bhyveDomainObjPrivate *priv = obj->privateData; + qemuAgent *agent = priv->agent; + + VIR_DEBUG("Entering agent (agent=%p vm=%p name=%s)", + priv->agent, obj, obj->def->name); + + virObjectLock(agent); + virObjectRef(agent); + virObjectUnlock(obj); + + return agent; +} + + +static void +bhyveDomainObjExitAgent(virDomainObj *obj, qemuAgent *agent) +{ + virObjectUnlock(agent); + virObjectUnref(agent); + virObjectLock(obj); + + VIR_DEBUG("Exited agent (agent=%p vm=%p name=%s)", + agent, obj, obj->def->name); +} + + +static bool +bhyveDomainAgentAvailable(virDomainObj *vm, + bool reportError) +{ + bhyveDomainObjPrivate *priv = vm->privateData; + + if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_RUNNING) { + if (reportError) { + virReportError(VIR_ERR_OPERATION_INVALID, "%s", + _("domain is not running")); + } + return false; + } + + if (!priv->agent) { + if (bhyveFindAgentConfig(vm->def)) { + if (reportError) { + virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s", + _("QEMU guest agent is not connected")); + } + return false; + } else { + if (reportError) { + virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", + _("QEMU guest agent is not configured")); + } + return false; + } + } + return true; +} + + +static int +bhyveDomainEnsureAgent(virDomainObj *vm, + bool reportError) +{ + bhyveDomainObjPrivate *priv = vm->privateData; + + if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_RUNNING) { + if (reportError) { + virReportError(VIR_ERR_OPERATION_INVALID, "%s", + _("domain is not running")); + } + return -1; + } + + if (priv->agent) + return 0; + + if (!priv->eventThread && + virBhyveDomainObjStartWorker(vm) < 0) + return -1; + + if (bhyveConnectAgent(NULL, vm) < 0) + return -1; + + return 0; +} + + /** * bhyveDriverGetCapabilities: * @@ -1907,96 +1998,6 @@ bhyveDomainInterfaceAddresses(virDomainPtr domain, } -static qemuAgent * -bhyveDomainObjEnterAgent(virDomainObj *obj) -{ - bhyveDomainObjPrivate *priv = obj->privateData; - qemuAgent *agent = priv->agent; - - VIR_DEBUG("Entering agent (agent=%p vm=%p name=%s)", - priv->agent, obj, obj->def->name); - - virObjectLock(agent); - virObjectRef(agent); - virObjectUnlock(obj); - - return agent; -} - - -static void -bhyveDomainObjExitAgent(virDomainObj *obj, qemuAgent *agent) -{ - virObjectUnlock(agent); - virObjectUnref(agent); - virObjectLock(obj); - - VIR_DEBUG("Exited agent (agent=%p vm=%p name=%s)", - agent, obj, obj->def->name); -} - - -static bool -bhyveDomainAgentAvailable(virDomainObj *vm, - bool reportError) -{ - bhyveDomainObjPrivate *priv = vm->privateData; - - if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_RUNNING) { - if (reportError) { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("domain is not running")); - } - return false; - } - - if (!priv->agent) { - if (bhyveFindAgentConfig(vm->def)) { - if (reportError) { - virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s", - _("QEMU guest agent is not connected")); - } - return false; - } else { - if (reportError) { - virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", - _("QEMU guest agent is not configured")); - } - return false; - } - } - return true; -} - - -static int -bhyveDomainEnsureAgent(virDomainObj *vm, - bool reportError) -{ - bhyveDomainObjPrivate *priv = vm->privateData; - - if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_RUNNING) { - if (reportError) { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("domain is not running")); - } - return -1; - } - - if (priv->agent) - return 0; - - if (!priv->eventThread && - virBhyveDomainObjStartWorker(vm) < 0) - return -1; - - if (bhyveConnectAgent(NULL, vm) < 0) - return -1; - - return 0; -} - - static int bhyveDomainGetHostnameAgent(virDomainObj *vm, char **hostname) -- 2.52.0
