1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2024-12-23 21:34:54 +03:00

hyperv: implement nodeGetFreeMemory

Co-authored-by: Sri Ramanujam <sramanujam@datto.com>
Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Matt Coleman 2020-10-21 04:46:08 -04:00 committed by Michal Privoznik
parent cc9248cc6c
commit 7bf302fb63

View File

@ -1397,6 +1397,32 @@ hypervDomainSetAutostart(virDomainPtr domain, int autostart)
}
static unsigned long long
hypervNodeGetFreeMemory(virConnectPtr conn)
{
unsigned long long freeMemoryBytes = 0;
hypervPrivate *priv = conn->privateData;
Win32_OperatingSystem *operatingSystem = NULL;
g_auto(virBuffer) query = { g_string_new(WIN32_OPERATINGSYSTEM_WQL_SELECT), 0 };
if (hypervGetWmiClass(Win32_OperatingSystem, &operatingSystem) < 0)
return 0;
if (!operatingSystem) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Could not get free memory for host %s"),
conn->uri->server);
return 0;
}
freeMemoryBytes = operatingSystem->data.common->FreePhysicalMemory * 1024;
hypervFreeObject(priv, (hypervObject *)operatingSystem);
return freeMemoryBytes;
}
static int
hypervConnectIsEncrypted(virConnectPtr conn)
{
@ -1939,6 +1965,7 @@ static virHypervisorDriver hypervHypervisorDriver = {
.domainCreateWithFlags = hypervDomainCreateWithFlags, /* 0.9.5 */
.domainGetAutostart = hypervDomainGetAutostart, /* 6.9.0 */
.domainSetAutostart = hypervDomainSetAutostart, /* 6.9.0 */
.nodeGetFreeMemory = hypervNodeGetFreeMemory, /* 6.9.0 */
.connectIsEncrypted = hypervConnectIsEncrypted, /* 0.9.5 */
.connectIsSecure = hypervConnectIsSecure, /* 0.9.5 */
.domainIsActive = hypervDomainIsActive, /* 0.9.5 */