mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
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);
|
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
|
static int
|
||||||
qemuDomainGetTime(virDomainPtr dom,
|
qemuDomainGetTime(virDomainPtr dom,
|
||||||
long long *seconds,
|
long long *seconds,
|
||||||
@ -19399,6 +19439,7 @@ qemuDomainGetTime(virDomainPtr dom,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
qemuDomainSetTime(virDomainPtr dom,
|
qemuDomainSetTime(virDomainPtr dom,
|
||||||
long long seconds,
|
long long seconds,
|
||||||
@ -21957,6 +21998,7 @@ static virHypervisorDriver qemuHypervisorDriver = {
|
|||||||
.connectGetCPUModelNames = qemuConnectGetCPUModelNames, /* 1.1.3 */
|
.connectGetCPUModelNames = qemuConnectGetCPUModelNames, /* 1.1.3 */
|
||||||
.domainFSFreeze = qemuDomainFSFreeze, /* 1.2.5 */
|
.domainFSFreeze = qemuDomainFSFreeze, /* 1.2.5 */
|
||||||
.domainFSThaw = qemuDomainFSThaw, /* 1.2.5 */
|
.domainFSThaw = qemuDomainFSThaw, /* 1.2.5 */
|
||||||
|
.domainGetHostname = qemuDomainGetHostname, /* 4.8.0 */
|
||||||
.domainGetTime = qemuDomainGetTime, /* 1.2.5 */
|
.domainGetTime = qemuDomainGetTime, /* 1.2.5 */
|
||||||
.domainSetTime = qemuDomainSetTime, /* 1.2.5 */
|
.domainSetTime = qemuDomainSetTime, /* 1.2.5 */
|
||||||
.nodeGetFreePages = qemuNodeGetFreePages, /* 1.2.6 */
|
.nodeGetFreePages = qemuNodeGetFreePages, /* 1.2.6 */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user