mirror of https://gitee.com/openkylin/libvirt.git
qemu: adding domainGetHostname support for QEMU
This commit adds support to use the function qemuAgentGetHostname() to obtain the domain hostname using QEMU-GA command. Signed-off-by: Julio Faracco <jcfaracco@gmail.com> Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
597bba39ec
commit
25736a4c7e
|
@ -19353,6 +19353,46 @@ qemuConnectGetCPUModelNames(virConnectPtr conn,
|
|||
return virCPUGetModels(arch, models);
|
||||
}
|
||||
|
||||
|
||||
static char *
|
||||
qemuDomainGetHostname(virDomainPtr dom,
|
||||
unsigned int flags)
|
||||
{
|
||||
virQEMUDriverPtr driver = dom->conn->privateData;
|
||||
virDomainObjPtr vm = NULL;
|
||||
qemuAgentPtr agent;
|
||||
char *hostname = NULL;
|
||||
|
||||
virCheckFlags(0, NULL);
|
||||
|
||||
if (!(vm = qemuDomObjFromDomain(dom)))
|
||||
return NULL;
|
||||
|
||||
if (virDomainGetHostnameEnsureACL(dom->conn, vm->def) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_QUERY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virDomainObjCheckActive(vm) < 0)
|
||||
goto endjob;
|
||||
|
||||
if (!qemuDomainAgentAvailable(vm, true))
|
||||
goto endjob;
|
||||
|
||||
agent = qemuDomainObjEnterAgent(vm);
|
||||
ignore_value(qemuAgentGetHostname(agent, &hostname));
|
||||
qemuDomainObjExitAgent(vm, agent);
|
||||
|
||||
endjob:
|
||||
qemuDomainObjEndAgentJob(vm);
|
||||
|
||||
cleanup:
|
||||
virDomainObjEndAPI(&vm);
|
||||
return hostname;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuDomainGetTime(virDomainPtr dom,
|
||||
long long *seconds,
|
||||
|
@ -19399,6 +19439,7 @@ qemuDomainGetTime(virDomainPtr dom,
|
|||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuDomainSetTime(virDomainPtr dom,
|
||||
long long seconds,
|
||||
|
@ -21957,6 +21998,7 @@ static virHypervisorDriver qemuHypervisorDriver = {
|
|||
.connectGetCPUModelNames = qemuConnectGetCPUModelNames, /* 1.1.3 */
|
||||
.domainFSFreeze = qemuDomainFSFreeze, /* 1.2.5 */
|
||||
.domainFSThaw = qemuDomainFSThaw, /* 1.2.5 */
|
||||
.domainGetHostname = qemuDomainGetHostname, /* 4.8.0 */
|
||||
.domainGetTime = qemuDomainGetTime, /* 1.2.5 */
|
||||
.domainSetTime = qemuDomainSetTime, /* 1.2.5 */
|
||||
.nodeGetFreePages = qemuNodeGetFreePages, /* 1.2.6 */
|
||||
|
|
Loading…
Reference in New Issue