mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-11 00:58:38 +03:00
hyperv: store hypervPrivate in hypervObject
Signed-off-by: Matt Coleman <matt@datto.com> Reviewed-by: Laine Stump <laine@redhat.com>
This commit is contained in:
parent
b23ada6715
commit
4d01763e3f
@ -198,7 +198,6 @@ static int
|
|||||||
hypervRequestStateChange(virDomainPtr domain, int state)
|
hypervRequestStateChange(virDomainPtr domain, int state)
|
||||||
{
|
{
|
||||||
int result = -1;
|
int result = -1;
|
||||||
hypervPrivate *priv = domain->conn->privateData;
|
|
||||||
Msvm_ComputerSystem *computerSystem = NULL;
|
Msvm_ComputerSystem *computerSystem = NULL;
|
||||||
|
|
||||||
if (hypervMsvmComputerSystemFromDomain(domain, &computerSystem) < 0)
|
if (hypervMsvmComputerSystemFromDomain(domain, &computerSystem) < 0)
|
||||||
@ -212,7 +211,7 @@ hypervRequestStateChange(virDomainPtr domain, int state)
|
|||||||
result = hypervInvokeMsvmComputerSystemRequestStateChange(domain, state);
|
result = hypervInvokeMsvmComputerSystemRequestStateChange(domain, state);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -260,7 +259,7 @@ hypervLookupHostSystemBiosUuid(hypervPrivate *priv, unsigned char *uuid)
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -642,7 +641,7 @@ hypervDomainAttachPhysicalDisk(virDomainPtr domain,
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)diskdefault);
|
hypervFreeObject((hypervObject *)diskdefault);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -930,8 +929,8 @@ hypervDomainAttachStorage(virDomainPtr domain, virDomainDefPtr def, const char *
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)rasd);
|
hypervFreeObject((hypervObject *)rasd);
|
||||||
hypervFreeObject(priv, (hypervObject *)vssd);
|
hypervFreeObject((hypervObject *)vssd);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -1213,7 +1212,7 @@ hypervDomainDefParsePhysicalDisk(hypervPrivate *priv,
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (result != 0 && disk)
|
if (result != 0 && disk)
|
||||||
virDomainDiskDefFree(disk);
|
virDomainDiskDefFree(disk);
|
||||||
hypervFreeObject(priv, (hypervObject *)diskdrive);
|
hypervFreeObject((hypervObject *)diskdrive);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -1422,7 +1421,7 @@ hypervConnectOpen(virConnectPtr conn, virConnectAuthPtr auth,
|
|||||||
result = VIR_DRV_OPEN_SUCCESS;
|
result = VIR_DRV_OPEN_SUCCESS;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv ? priv : conn->privateData, (hypervObject *)os);
|
hypervFreeObject((hypervObject *)os);
|
||||||
hypervFreePrivate(&priv);
|
hypervFreePrivate(&priv);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -1505,7 +1504,7 @@ hypervConnectGetHostname(virConnectPtr conn)
|
|||||||
hostname = g_strdup(computerSystem->data->DNSHostName);
|
hostname = g_strdup(computerSystem->data->DNSHostName);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return hostname;
|
return hostname;
|
||||||
}
|
}
|
||||||
@ -1546,7 +1545,7 @@ hypervConnectGetMaxVcpus(virConnectPtr conn, const char *type G_GNUC_UNUSED)
|
|||||||
result = processorSettingData->data->VirtualQuantity;
|
result = processorSettingData->data->VirtualQuantity;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)processorSettingData);
|
hypervFreeObject((hypervObject *)processorSettingData);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -1618,8 +1617,8 @@ hypervNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info)
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
hypervFreeObject(priv, (hypervObject *)processorList);
|
hypervFreeObject((hypervObject *)processorList);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -1651,7 +1650,7 @@ hypervConnectListDomains(virConnectPtr conn, int *ids, int maxids)
|
|||||||
success = true;
|
success = true;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystemList);
|
hypervFreeObject((hypervObject *)computerSystemList);
|
||||||
|
|
||||||
return success ? count : -1;
|
return success ? count : -1;
|
||||||
}
|
}
|
||||||
@ -1677,7 +1676,7 @@ hypervConnectNumOfDomains(virConnectPtr conn)
|
|||||||
success = true;
|
success = true;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystemList);
|
hypervFreeObject((hypervObject *)computerSystemList);
|
||||||
|
|
||||||
return success ? count : -1;
|
return success ? count : -1;
|
||||||
}
|
}
|
||||||
@ -1696,7 +1695,7 @@ hypervDomainLookupByID(virConnectPtr conn, int id)
|
|||||||
hypervMsvmComputerSystemToDomain(conn, computerSystem, &domain);
|
hypervMsvmComputerSystemToDomain(conn, computerSystem, &domain);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return domain;
|
return domain;
|
||||||
}
|
}
|
||||||
@ -1718,7 +1717,7 @@ hypervDomainLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
|
|||||||
hypervMsvmComputerSystemToDomain(conn, computerSystem, &domain);
|
hypervMsvmComputerSystemToDomain(conn, computerSystem, &domain);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return domain;
|
return domain;
|
||||||
}
|
}
|
||||||
@ -1744,7 +1743,7 @@ hypervDomainLookupByName(virConnectPtr conn, const char *name)
|
|||||||
hypervMsvmComputerSystemToDomain(conn, computerSystem, &domain);
|
hypervMsvmComputerSystemToDomain(conn, computerSystem, &domain);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return domain;
|
return domain;
|
||||||
}
|
}
|
||||||
@ -1761,7 +1760,6 @@ static int
|
|||||||
hypervDomainResume(virDomainPtr domain)
|
hypervDomainResume(virDomainPtr domain)
|
||||||
{
|
{
|
||||||
int result = -1;
|
int result = -1;
|
||||||
hypervPrivate *priv = domain->conn->privateData;
|
|
||||||
Msvm_ComputerSystem *computerSystem = NULL;
|
Msvm_ComputerSystem *computerSystem = NULL;
|
||||||
|
|
||||||
if (hypervMsvmComputerSystemFromDomain(domain, &computerSystem) < 0)
|
if (hypervMsvmComputerSystemFromDomain(domain, &computerSystem) < 0)
|
||||||
@ -1777,7 +1775,7 @@ hypervDomainResume(virDomainPtr domain)
|
|||||||
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_ENABLED);
|
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_ENABLED);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -1842,8 +1840,8 @@ hypervDomainShutdownFlags(virDomainPtr domain, unsigned int flags)
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
hypervFreeObject(priv, (hypervObject *)shutdown);
|
hypervFreeObject((hypervObject *)shutdown);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -1876,7 +1874,6 @@ static int
|
|||||||
hypervDomainDestroyFlags(virDomainPtr domain, unsigned int flags)
|
hypervDomainDestroyFlags(virDomainPtr domain, unsigned int flags)
|
||||||
{
|
{
|
||||||
int result = -1;
|
int result = -1;
|
||||||
hypervPrivate *priv = domain->conn->privateData;
|
|
||||||
Msvm_ComputerSystem *computerSystem = NULL;
|
Msvm_ComputerSystem *computerSystem = NULL;
|
||||||
bool in_transition = false;
|
bool in_transition = false;
|
||||||
|
|
||||||
@ -1896,7 +1893,7 @@ hypervDomainDestroyFlags(virDomainPtr domain, unsigned int flags)
|
|||||||
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_DISABLED);
|
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_DISABLED);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -1939,8 +1936,8 @@ hypervDomainGetMaxMemory(virDomainPtr domain)
|
|||||||
maxMemoryBytes = mem_sd->data->Limit * 1024;
|
maxMemoryBytes = mem_sd->data->Limit * 1024;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)vssd);
|
hypervFreeObject((hypervObject *)vssd);
|
||||||
hypervFreeObject(priv, (hypervObject *)mem_sd);
|
hypervFreeObject((hypervObject *)mem_sd);
|
||||||
|
|
||||||
return maxMemoryBytes;
|
return maxMemoryBytes;
|
||||||
}
|
}
|
||||||
@ -1984,8 +1981,8 @@ hypervDomainSetMemoryProperty(virDomainPtr domain,
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)vssd);
|
hypervFreeObject((hypervObject *)vssd);
|
||||||
hypervFreeObject(priv, (hypervObject *)memsd);
|
hypervFreeObject((hypervObject *)memsd);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2056,10 +2053,10 @@ hypervDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
hypervFreeObject(priv, (hypervObject *)virtualSystemSettingData);
|
hypervFreeObject((hypervObject *)virtualSystemSettingData);
|
||||||
hypervFreeObject(priv, (hypervObject *)processorSettingData);
|
hypervFreeObject((hypervObject *)processorSettingData);
|
||||||
hypervFreeObject(priv, (hypervObject *)memorySettingData);
|
hypervFreeObject((hypervObject *)memorySettingData);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2070,7 +2067,6 @@ hypervDomainGetState(virDomainPtr domain, int *state, int *reason,
|
|||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
int result = -1;
|
int result = -1;
|
||||||
hypervPrivate *priv = domain->conn->privateData;
|
|
||||||
Msvm_ComputerSystem *computerSystem = NULL;
|
Msvm_ComputerSystem *computerSystem = NULL;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
@ -2086,7 +2082,7 @@ hypervDomainGetState(virDomainPtr domain, int *state, int *reason,
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2132,8 +2128,8 @@ hypervDomainSetVcpusFlags(virDomainPtr domain,
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)vssd);
|
hypervFreeObject((hypervObject *)vssd);
|
||||||
hypervFreeObject(priv, (hypervObject *)proc_sd);
|
hypervFreeObject((hypervObject *)proc_sd);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2189,9 +2185,9 @@ hypervDomainGetVcpusFlags(virDomainPtr domain, unsigned int flags)
|
|||||||
result = proc_sd->data->VirtualQuantity;
|
result = proc_sd->data->VirtualQuantity;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
hypervFreeObject(priv, (hypervObject *)vssd);
|
hypervFreeObject((hypervObject *)vssd);
|
||||||
hypervFreeObject(priv, (hypervObject *)proc_sd);
|
hypervFreeObject((hypervObject *)proc_sd);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2220,7 +2216,7 @@ hypervDomainGetVcpus(virDomainPtr domain,
|
|||||||
g_autofree char *vcpu_name = g_strdup_printf("%s:Hv VP %d", domain->name, vcpu_number);
|
g_autofree char *vcpu_name = g_strdup_printf("%s:Hv VP %d", domain->name, vcpu_number);
|
||||||
|
|
||||||
/* try to free objects from previous iteration */
|
/* try to free objects from previous iteration */
|
||||||
hypervFreeObject(priv, (hypervObject *)vproc);
|
hypervFreeObject((hypervObject *)vproc);
|
||||||
vproc = NULL;
|
vproc = NULL;
|
||||||
|
|
||||||
/* get the info */
|
/* get the info */
|
||||||
@ -2246,7 +2242,7 @@ hypervDomainGetVcpus(virDomainPtr domain,
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
hypervFreeObject(priv, (hypervObject *)vproc);
|
hypervFreeObject((hypervObject *)vproc);
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
@ -2373,12 +2369,12 @@ hypervDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virDomainDefFree(def);
|
virDomainDefFree(def);
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
hypervFreeObject(priv, (hypervObject *)virtualSystemSettingData);
|
hypervFreeObject((hypervObject *)virtualSystemSettingData);
|
||||||
hypervFreeObject(priv, (hypervObject *)processorSettingData);
|
hypervFreeObject((hypervObject *)processorSettingData);
|
||||||
hypervFreeObject(priv, (hypervObject *)memorySettingData);
|
hypervFreeObject((hypervObject *)memorySettingData);
|
||||||
hypervFreeObject(priv, (hypervObject *)rasd);
|
hypervFreeObject((hypervObject *)rasd);
|
||||||
hypervFreeObject(priv, (hypervObject *)sasd);
|
hypervFreeObject((hypervObject *)sasd);
|
||||||
|
|
||||||
return xml;
|
return xml;
|
||||||
}
|
}
|
||||||
@ -2420,7 +2416,7 @@ hypervConnectListDefinedDomains(virConnectPtr conn, char **const names, int maxn
|
|||||||
count = -1;
|
count = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystemList);
|
hypervFreeObject((hypervObject *)computerSystemList);
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
@ -2446,7 +2442,7 @@ hypervConnectNumOfDefinedDomains(virConnectPtr conn)
|
|||||||
success = true;
|
success = true;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystemList);
|
hypervFreeObject((hypervObject *)computerSystemList);
|
||||||
|
|
||||||
return success ? count : -1;
|
return success ? count : -1;
|
||||||
}
|
}
|
||||||
@ -2456,7 +2452,6 @@ static int
|
|||||||
hypervDomainCreateWithFlags(virDomainPtr domain, unsigned int flags)
|
hypervDomainCreateWithFlags(virDomainPtr domain, unsigned int flags)
|
||||||
{
|
{
|
||||||
int result = -1;
|
int result = -1;
|
||||||
hypervPrivate *priv = domain->conn->privateData;
|
|
||||||
Msvm_ComputerSystem *computerSystem = NULL;
|
Msvm_ComputerSystem *computerSystem = NULL;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
@ -2474,7 +2469,7 @@ hypervDomainCreateWithFlags(virDomainPtr domain, unsigned int flags)
|
|||||||
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_ENABLED);
|
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_ENABLED);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2705,9 +2700,9 @@ hypervDomainAttachDeviceFlags(virDomainPtr domain, const char *xml, unsigned int
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)vssd);
|
hypervFreeObject((hypervObject *)vssd);
|
||||||
hypervFreeObject(priv, (hypervObject *)rasd);
|
hypervFreeObject((hypervObject *)rasd);
|
||||||
hypervFreeObject(priv, (hypervObject *)host);
|
hypervFreeObject((hypervObject *)host);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2737,7 +2732,7 @@ hypervDomainGetAutostart(virDomainPtr domain, int *autostart)
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)vssd);
|
hypervFreeObject((hypervObject *)vssd);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2784,7 +2779,7 @@ hypervDomainSetAutostart(virDomainPtr domain, int autostart)
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)vssd);
|
hypervFreeObject((hypervObject *)vssd);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2852,9 +2847,9 @@ hypervDomainGetSchedulerParametersFlags(virDomainPtr domain,
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
hypervFreeObject(priv, (hypervObject *)vssd);
|
hypervFreeObject((hypervObject *)vssd);
|
||||||
hypervFreeObject(priv, (hypervObject *)proc_sd);
|
hypervFreeObject((hypervObject *)proc_sd);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2889,7 +2884,7 @@ hypervNodeGetFreeMemory(virConnectPtr conn)
|
|||||||
|
|
||||||
freeMemoryBytes = operatingSystem->data->FreePhysicalMemory * 1024;
|
freeMemoryBytes = operatingSystem->data->FreePhysicalMemory * 1024;
|
||||||
|
|
||||||
hypervFreeObject(priv, (hypervObject *)operatingSystem);
|
hypervFreeObject((hypervObject *)operatingSystem);
|
||||||
|
|
||||||
return freeMemoryBytes;
|
return freeMemoryBytes;
|
||||||
}
|
}
|
||||||
@ -2941,7 +2936,6 @@ static int
|
|||||||
hypervDomainIsActive(virDomainPtr domain)
|
hypervDomainIsActive(virDomainPtr domain)
|
||||||
{
|
{
|
||||||
int result = -1;
|
int result = -1;
|
||||||
hypervPrivate *priv = domain->conn->privateData;
|
|
||||||
Msvm_ComputerSystem *computerSystem = NULL;
|
Msvm_ComputerSystem *computerSystem = NULL;
|
||||||
|
|
||||||
if (hypervMsvmComputerSystemFromDomain(domain, &computerSystem) < 0)
|
if (hypervMsvmComputerSystemFromDomain(domain, &computerSystem) < 0)
|
||||||
@ -2950,7 +2944,7 @@ hypervDomainIsActive(virDomainPtr domain)
|
|||||||
result = hypervIsMsvmComputerSystemActive(computerSystem, NULL) ? 1 : 0;
|
result = hypervIsMsvmComputerSystemActive(computerSystem, NULL) ? 1 : 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2985,7 +2979,6 @@ static int
|
|||||||
hypervDomainManagedSave(virDomainPtr domain, unsigned int flags)
|
hypervDomainManagedSave(virDomainPtr domain, unsigned int flags)
|
||||||
{
|
{
|
||||||
int result = -1;
|
int result = -1;
|
||||||
hypervPrivate *priv = domain->conn->privateData;
|
|
||||||
Msvm_ComputerSystem *computerSystem = NULL;
|
Msvm_ComputerSystem *computerSystem = NULL;
|
||||||
bool in_transition = false;
|
bool in_transition = false;
|
||||||
|
|
||||||
@ -3004,7 +2997,7 @@ hypervDomainManagedSave(virDomainPtr domain, unsigned int flags)
|
|||||||
result = hypervInvokeMsvmComputerSystemRequestStateChange(domain, MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_OFFLINE);
|
result = hypervInvokeMsvmComputerSystemRequestStateChange(domain, MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_OFFLINE);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -3014,7 +3007,6 @@ static int
|
|||||||
hypervDomainHasManagedSaveImage(virDomainPtr domain, unsigned int flags)
|
hypervDomainHasManagedSaveImage(virDomainPtr domain, unsigned int flags)
|
||||||
{
|
{
|
||||||
int result = -1;
|
int result = -1;
|
||||||
hypervPrivate *priv = domain->conn->privateData;
|
|
||||||
Msvm_ComputerSystem *computerSystem = NULL;
|
Msvm_ComputerSystem *computerSystem = NULL;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
@ -3025,7 +3017,7 @@ hypervDomainHasManagedSaveImage(virDomainPtr domain, unsigned int flags)
|
|||||||
result = computerSystem->data->EnabledState == MSVM_COMPUTERSYSTEM_ENABLEDSTATE_SUSPENDED ? 1 : 0;
|
result = computerSystem->data->EnabledState == MSVM_COMPUTERSYSTEM_ENABLEDSTATE_SUSPENDED ? 1 : 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -3035,7 +3027,6 @@ static int
|
|||||||
hypervDomainManagedSaveRemove(virDomainPtr domain, unsigned int flags)
|
hypervDomainManagedSaveRemove(virDomainPtr domain, unsigned int flags)
|
||||||
{
|
{
|
||||||
int result = -1;
|
int result = -1;
|
||||||
hypervPrivate *priv = domain->conn->privateData;
|
|
||||||
Msvm_ComputerSystem *computerSystem = NULL;
|
Msvm_ComputerSystem *computerSystem = NULL;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
@ -3053,7 +3044,7 @@ hypervDomainManagedSaveRemove(virDomainPtr domain, unsigned int flags)
|
|||||||
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_DISABLED);
|
MSVM_COMPUTERSYSTEM_REQUESTEDSTATE_DISABLED);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -3179,7 +3170,7 @@ hypervConnectListAllDomains(virConnectPtr conn,
|
|||||||
VIR_FREE(doms);
|
VIR_FREE(doms);
|
||||||
}
|
}
|
||||||
|
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystemList);
|
hypervFreeObject((hypervObject *)computerSystemList);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -3283,8 +3274,8 @@ hypervDomainSendKey(virDomainPtr domain, unsigned int codeset,
|
|||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(translatedKeycodes);
|
VIR_FREE(translatedKeycodes);
|
||||||
VIR_FREE(selector);
|
VIR_FREE(selector);
|
||||||
hypervFreeObject(priv, (hypervObject *)keyboard);
|
hypervFreeObject((hypervObject *)keyboard);
|
||||||
hypervFreeObject(priv, (hypervObject *)computerSystem);
|
hypervFreeObject((hypervObject *)computerSystem);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -870,7 +870,7 @@ hypervInvokeMethod(hypervPrivate *priv,
|
|||||||
case MSVM_CONCRETEJOB_JOBSTATE_STARTING:
|
case MSVM_CONCRETEJOB_JOBSTATE_STARTING:
|
||||||
case MSVM_CONCRETEJOB_JOBSTATE_RUNNING:
|
case MSVM_CONCRETEJOB_JOBSTATE_RUNNING:
|
||||||
case MSVM_CONCRETEJOB_JOBSTATE_SHUTTING_DOWN:
|
case MSVM_CONCRETEJOB_JOBSTATE_SHUTTING_DOWN:
|
||||||
hypervFreeObject(priv, (hypervObject *)job);
|
hypervFreeObject((hypervObject *)job);
|
||||||
job = NULL;
|
job = NULL;
|
||||||
g_usleep(100 * 1000); /* sleep 100 ms */
|
g_usleep(100 * 1000); /* sleep 100 ms */
|
||||||
timeout -= 100;
|
timeout -= 100;
|
||||||
@ -917,7 +917,7 @@ hypervInvokeMethod(hypervPrivate *priv,
|
|||||||
VIR_FREE(jobcode_instance_xpath);
|
VIR_FREE(jobcode_instance_xpath);
|
||||||
VIR_FREE(returnValue);
|
VIR_FREE(returnValue);
|
||||||
VIR_FREE(instanceID);
|
VIR_FREE(instanceID);
|
||||||
hypervFreeObject(priv, (hypervObject *)job);
|
hypervFreeObject((hypervObject *)job);
|
||||||
*paramsPtr = NULL;
|
*paramsPtr = NULL;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -1030,6 +1030,7 @@ hypervEnumAndPull(hypervPrivate *priv, hypervWqlQueryPtr wqlQuery,
|
|||||||
object = g_new0(hypervObject, 1);
|
object = g_new0(hypervObject, 1);
|
||||||
object->info = wmiInfo;
|
object->info = wmiInfo;
|
||||||
object->data = data;
|
object->data = data;
|
||||||
|
object->priv = priv;
|
||||||
|
|
||||||
if (head == NULL) {
|
if (head == NULL) {
|
||||||
head = object;
|
head = object;
|
||||||
@ -1061,14 +1062,14 @@ hypervEnumAndPull(hypervPrivate *priv, hypervWqlQueryPtr wqlQuery,
|
|||||||
VIR_FREE(query_string);
|
VIR_FREE(query_string);
|
||||||
ws_xml_destroy_doc(response);
|
ws_xml_destroy_doc(response);
|
||||||
VIR_FREE(enumContext);
|
VIR_FREE(enumContext);
|
||||||
hypervFreeObject(priv, head);
|
hypervFreeObject(head);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
hypervFreeObject(hypervPrivate *priv G_GNUC_UNUSED, hypervObject *object)
|
hypervFreeObject(hypervObject *object)
|
||||||
{
|
{
|
||||||
hypervObject *next;
|
hypervObject *next;
|
||||||
WsSerializerContextH serializerContext;
|
WsSerializerContextH serializerContext;
|
||||||
@ -1076,11 +1077,13 @@ hypervFreeObject(hypervPrivate *priv G_GNUC_UNUSED, hypervObject *object)
|
|||||||
if (object == NULL)
|
if (object == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
serializerContext = wsmc_get_serialization_context(priv->client);
|
serializerContext = wsmc_get_serialization_context(object->priv->client);
|
||||||
|
|
||||||
while (object != NULL) {
|
while (object != NULL) {
|
||||||
next = object->next;
|
next = object->next;
|
||||||
|
|
||||||
|
object->priv = NULL;
|
||||||
|
|
||||||
if (ws_serializer_free_mem(serializerContext, object->data,
|
if (ws_serializer_free_mem(serializerContext, object->data,
|
||||||
object->info->serializerInfo) < 0) {
|
object->info->serializerInfo) < 0) {
|
||||||
VIR_ERROR(_("Could not free deserialized data"));
|
VIR_ERROR(_("Could not free deserialized data"));
|
||||||
@ -1267,7 +1270,7 @@ hypervInvokeMsvmComputerSystemRequestStateChange(virDomainPtr domain,
|
|||||||
case MSVM_CONCRETEJOB_JOBSTATE_STARTING:
|
case MSVM_CONCRETEJOB_JOBSTATE_STARTING:
|
||||||
case MSVM_CONCRETEJOB_JOBSTATE_RUNNING:
|
case MSVM_CONCRETEJOB_JOBSTATE_RUNNING:
|
||||||
case MSVM_CONCRETEJOB_JOBSTATE_SHUTTING_DOWN:
|
case MSVM_CONCRETEJOB_JOBSTATE_SHUTTING_DOWN:
|
||||||
hypervFreeObject(priv, (hypervObject *)concreteJob);
|
hypervFreeObject((hypervObject *)concreteJob);
|
||||||
concreteJob = NULL;
|
concreteJob = NULL;
|
||||||
|
|
||||||
g_usleep(100 * 1000);
|
g_usleep(100 * 1000);
|
||||||
@ -1312,7 +1315,7 @@ hypervInvokeMsvmComputerSystemRequestStateChange(virDomainPtr domain,
|
|||||||
VIR_FREE(properties);
|
VIR_FREE(properties);
|
||||||
VIR_FREE(returnValue);
|
VIR_FREE(returnValue);
|
||||||
VIR_FREE(instanceID);
|
VIR_FREE(instanceID);
|
||||||
hypervFreeObject(priv, (hypervObject *)concreteJob);
|
hypervFreeObject((hypervObject *)concreteJob);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -1610,7 +1613,7 @@ hypervMsvmVSMSAddResourceSettings(virDomainPtr domain,
|
|||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
hypervFreeObject(priv, (hypervObject *)vssd);
|
hypervFreeObject((hypervObject *)vssd);
|
||||||
*resourceSettingsPtr = NULL;
|
*resourceSettingsPtr = NULL;
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@ -50,6 +50,7 @@ struct _hypervObject {
|
|||||||
XML_TYPE_PTR data; /* Unserialized data from wsman response */
|
XML_TYPE_PTR data; /* Unserialized data from wsman response */
|
||||||
hypervWmiClassInfoPtr info; /* The info used to make wsman request */
|
hypervWmiClassInfoPtr info; /* The info used to make wsman request */
|
||||||
hypervObject *next;
|
hypervObject *next;
|
||||||
|
hypervPrivate *priv;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _hypervWqlQuery hypervWqlQuery;
|
typedef struct _hypervWqlQuery hypervWqlQuery;
|
||||||
@ -62,7 +63,7 @@ struct _hypervWqlQuery {
|
|||||||
int hypervEnumAndPull(hypervPrivate *priv, hypervWqlQueryPtr wqlQuery,
|
int hypervEnumAndPull(hypervPrivate *priv, hypervWqlQueryPtr wqlQuery,
|
||||||
hypervObject **list);
|
hypervObject **list);
|
||||||
|
|
||||||
void hypervFreeObject(hypervPrivate *priv, hypervObject *object);
|
void hypervFreeObject(hypervObject *object);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user