qemu: implementing qemuAgentGetHostname() function.

This commit implements the function qemuAgentGetHostname() that uses
the QEMU guest agent command 'guest-get-host-name' to retrieve the
guest hostname of virtual machine running the QEMU-GA.

Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
Julio Faracco 2018-09-05 01:20:53 -03:00 committed by John Ferlan
parent cce981331e
commit 597bba39ec
2 changed files with 48 additions and 0 deletions

View File

@ -1683,6 +1683,50 @@ qemuAgentUpdateCPUInfo(unsigned int nvcpus,
}
int
qemuAgentGetHostname(qemuAgentPtr mon,
char **hostname)
{
int ret = -1;
virJSONValuePtr cmd;
virJSONValuePtr reply = NULL;
virJSONValuePtr data = NULL;
const char *result = NULL;
cmd = qemuAgentMakeCommand("guest-get-host-name",
NULL);
if (!cmd)
return ret;
if (qemuAgentCommand(mon, cmd, &reply, true,
VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK) < 0)
goto cleanup;
if (!(data = virJSONValueObjectGet(reply, "return"))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("malformed return value"));
goto cleanup;
}
if (!(result = virJSONValueObjectGetString(data, "host-name"))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("'host-name' missing in guest-get-host-name reply"));
goto cleanup;
}
if (VIR_STRDUP(*hostname, result) < 0)
goto cleanup;
ret = 0;
cleanup:
virJSONValueFree(cmd);
virJSONValueFree(reply);
return ret;
}
int
qemuAgentGetTime(qemuAgentPtr mon,
long long *seconds,

View File

@ -105,6 +105,10 @@ int qemuAgentUpdateCPUInfo(unsigned int nvcpus,
qemuAgentCPUInfoPtr cpuinfo,
int ncpuinfo);
int
qemuAgentGetHostname(qemuAgentPtr mon,
char **hostname);
int qemuAgentGetTime(qemuAgentPtr mon,
long long *seconds,
unsigned int *nseconds);