mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-08 22:15:21 +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 virDomainGetMaxVcpus (virDomainPtr domain);
|
||||||
int virDomainGetSecurityLabel (virDomainPtr domain,
|
int virDomainGetSecurityLabel (virDomainPtr domain,
|
||||||
virSecurityLabelPtr seclabel);
|
virSecurityLabelPtr seclabel);
|
||||||
|
char * virDomainGetHostname (virDomainPtr domain,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
VIR_DOMAIN_METADATA_DESCRIPTION = 0, /* Operate on <description> */
|
VIR_DOMAIN_METADATA_DESCRIPTION = 0, /* Operate on <description> */
|
||||||
|
@ -142,6 +142,11 @@ typedef int
|
|||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
typedef char *
|
typedef char *
|
||||||
(*virDrvDomainGetOSType) (virDomainPtr domain);
|
(*virDrvDomainGetOSType) (virDomainPtr domain);
|
||||||
|
|
||||||
|
typedef char *
|
||||||
|
(*virDrvDomainGetHostname) (virDomainPtr domain,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
typedef unsigned long long
|
typedef unsigned long long
|
||||||
(*virDrvDomainGetMaxMemory) (virDomainPtr domain);
|
(*virDrvDomainGetMaxMemory) (virDomainPtr domain);
|
||||||
typedef int
|
typedef int
|
||||||
@ -904,6 +909,7 @@ struct _virDriver {
|
|||||||
virDrvDomainDestroy domainDestroy;
|
virDrvDomainDestroy domainDestroy;
|
||||||
virDrvDomainDestroyFlags domainDestroyFlags;
|
virDrvDomainDestroyFlags domainDestroyFlags;
|
||||||
virDrvDomainGetOSType domainGetOSType;
|
virDrvDomainGetOSType domainGetOSType;
|
||||||
|
virDrvDomainGetHostname domainGetHostname;
|
||||||
virDrvDomainGetMaxMemory domainGetMaxMemory;
|
virDrvDomainGetMaxMemory domainGetMaxMemory;
|
||||||
virDrvDomainSetMaxMemory domainSetMaxMemory;
|
virDrvDomainSetMaxMemory domainSetMaxMemory;
|
||||||
virDrvDomainSetMemory domainSetMemory;
|
virDrvDomainSetMemory domainSetMemory;
|
||||||
|
@ -18977,3 +18977,48 @@ error:
|
|||||||
virDispatchError(dom->conn);
|
virDispatchError(dom->conn);
|
||||||
return -1;
|
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;
|
virDomainSnapshotRef;
|
||||||
} LIBVIRT_0.9.11;
|
} LIBVIRT_0.9.11;
|
||||||
|
|
||||||
|
LIBVIRT_0.9.14 {
|
||||||
|
global:
|
||||||
|
virDomainGetHostname;
|
||||||
|
} LIBVIRT_0.9.13;
|
||||||
|
|
||||||
# .... define new API here using predicted next version number ....
|
# .... define new API here using predicted next version number ....
|
||||||
|
Loading…
Reference in New Issue
Block a user