mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
Add virDomainGetHostname
to query a guests's hostname. Containers like LXC and OpenVZ allow to set a hostname different from the hosts name and QEMU's guest agent could provide similar functionality.
This commit is contained in:
parent
2ef6f69a1b
commit
a91067fa0d
@ -1540,6 +1540,8 @@ int virDomainSetMemoryFlags (virDomainPtr domain,
|
||||
int virDomainGetMaxVcpus (virDomainPtr domain);
|
||||
int virDomainGetSecurityLabel (virDomainPtr domain,
|
||||
virSecurityLabelPtr seclabel);
|
||||
char * virDomainGetHostname (virDomainPtr domain,
|
||||
unsigned int flags);
|
||||
|
||||
typedef enum {
|
||||
VIR_DOMAIN_METADATA_DESCRIPTION = 0, /* Operate on <description> */
|
||||
|
@ -142,6 +142,11 @@ typedef int
|
||||
unsigned int flags);
|
||||
typedef char *
|
||||
(*virDrvDomainGetOSType) (virDomainPtr domain);
|
||||
|
||||
typedef char *
|
||||
(*virDrvDomainGetHostname) (virDomainPtr domain,
|
||||
unsigned int flags);
|
||||
|
||||
typedef unsigned long long
|
||||
(*virDrvDomainGetMaxMemory) (virDomainPtr domain);
|
||||
typedef int
|
||||
@ -904,6 +909,7 @@ struct _virDriver {
|
||||
virDrvDomainDestroy domainDestroy;
|
||||
virDrvDomainDestroyFlags domainDestroyFlags;
|
||||
virDrvDomainGetOSType domainGetOSType;
|
||||
virDrvDomainGetHostname domainGetHostname;
|
||||
virDrvDomainGetMaxMemory domainGetMaxMemory;
|
||||
virDrvDomainSetMaxMemory domainSetMaxMemory;
|
||||
virDrvDomainSetMemory domainSetMemory;
|
||||
|
@ -18977,3 +18977,48 @@ error:
|
||||
virDispatchError(dom->conn);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* virDomainGetHostname:
|
||||
* @domain: a domain object
|
||||
* @flags: extra flags; not used yet, so callers should always pass 0
|
||||
*
|
||||
* Get the hostname for that domain.
|
||||
*
|
||||
* Dependent on hypervisor used, this may require a guest agent to be
|
||||
* available.
|
||||
*
|
||||
* Returns the hostname which must be freed by the caller, or
|
||||
* NULL if there was an error.
|
||||
*/
|
||||
char *
|
||||
virDomainGetHostname(virDomainPtr domain, unsigned int flags)
|
||||
{
|
||||
virConnectPtr conn;
|
||||
|
||||
VIR_DOMAIN_DEBUG(domain);
|
||||
|
||||
virResetLastError();
|
||||
|
||||
if (!VIR_IS_CONNECTED_DOMAIN(domain)) {
|
||||
virLibDomainError(VIR_ERR_INVALID_DOMAIN, __FUNCTION__);
|
||||
virDispatchError(NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
conn = domain->conn;
|
||||
|
||||
if (conn->driver->domainGetHostname) {
|
||||
char *ret;
|
||||
ret = conn->driver->domainGetHostname (domain, flags);
|
||||
if (!ret)
|
||||
goto error;
|
||||
return ret;
|
||||
}
|
||||
|
||||
virLibConnError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
|
||||
|
||||
error:
|
||||
virDispatchError(domain->conn);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -544,4 +544,9 @@ LIBVIRT_0.9.13 {
|
||||
virDomainSnapshotRef;
|
||||
} LIBVIRT_0.9.11;
|
||||
|
||||
LIBVIRT_0.9.14 {
|
||||
global:
|
||||
virDomainGetHostname;
|
||||
} LIBVIRT_0.9.13;
|
||||
|
||||
# .... define new API here using predicted next version number ....
|
||||
|
Loading…
Reference in New Issue
Block a user