1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

Rename all domain list APIs to have virDomainObjList prefix

The APIs names for accessing the domain list object are
very inconsistent. Rename them all to have a standard
virDomainObjList prefix.
This commit is contained in:
Daniel P. Berrange 2013-01-11 16:04:47 +00:00
parent b090aa7d55
commit 4f6ed6c33a
26 changed files with 664 additions and 631 deletions

View File

@ -776,18 +776,30 @@ virDomainObjListDataFree(void *payload, const void *name ATTRIBUTE_UNUSED)
virObjectUnref(obj); virObjectUnref(obj);
} }
int virDomainObjListInit(virDomainObjListPtr doms) virDomainObjListPtr virDomainObjListNew(void)
{ {
virDomainObjListPtr doms;
if (VIR_ALLOC(doms) < 0) {
virReportOOMError();
return NULL;
}
doms->objs = virHashCreate(50, virDomainObjListDataFree); doms->objs = virHashCreate(50, virDomainObjListDataFree);
if (!doms->objs) if (!doms->objs) {
return -1; VIR_FREE(doms);
return 0; return NULL;
}
return doms;
} }
void virDomainObjListDeinit(virDomainObjListPtr doms) void virDomainObjListFree(virDomainObjListPtr doms)
{ {
if (!doms)
return;
virHashFree(doms->objs); virHashFree(doms->objs);
VIR_FREE(doms);
} }
@ -807,8 +819,8 @@ static int virDomainObjListSearchID(const void *payload,
return want; return want;
} }
virDomainObjPtr virDomainFindByID(const virDomainObjListPtr doms, virDomainObjPtr virDomainObjListFindByID(const virDomainObjListPtr doms,
int id) int id)
{ {
virDomainObjPtr obj; virDomainObjPtr obj;
obj = virHashSearch(doms->objs, virDomainObjListSearchID, &id); obj = virHashSearch(doms->objs, virDomainObjListSearchID, &id);
@ -818,8 +830,8 @@ virDomainObjPtr virDomainFindByID(const virDomainObjListPtr doms,
} }
virDomainObjPtr virDomainFindByUUID(const virDomainObjListPtr doms, virDomainObjPtr virDomainObjListFindByUUID(const virDomainObjListPtr doms,
const unsigned char *uuid) const unsigned char *uuid)
{ {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virDomainObjPtr obj; virDomainObjPtr obj;
@ -846,8 +858,8 @@ static int virDomainObjListSearchName(const void *payload,
return want; return want;
} }
virDomainObjPtr virDomainFindByName(const virDomainObjListPtr doms, virDomainObjPtr virDomainObjListFindByName(const virDomainObjListPtr doms,
const char *name) const char *name)
{ {
virDomainObjPtr obj; virDomainObjPtr obj;
obj = virHashSearch(doms->objs, virDomainObjListSearchName, name); obj = virHashSearch(doms->objs, virDomainObjListSearchName, name);
@ -1849,15 +1861,15 @@ void virDomainObjAssignDef(virDomainObjPtr domain,
} }
} }
virDomainObjPtr virDomainAssignDef(virCapsPtr caps, virDomainObjPtr virDomainObjListAdd(virDomainObjListPtr doms,
virDomainObjListPtr doms, virCapsPtr caps,
const virDomainDefPtr def, const virDomainDefPtr def,
bool live) bool live)
{ {
virDomainObjPtr domain; virDomainObjPtr domain;
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
if ((domain = virDomainFindByUUID(doms, def->uuid))) { if ((domain = virDomainObjListFindByUUID(doms, def->uuid))) {
virDomainObjAssignDef(domain, def, live); virDomainObjAssignDef(domain, def, live);
return domain; return domain;
} }
@ -1989,8 +2001,8 @@ cleanup:
* and must also have locked 'dom', to ensure no one else * and must also have locked 'dom', to ensure no one else
* is either waiting for 'dom' or still using it * is either waiting for 'dom' or still using it
*/ */
void virDomainRemoveInactive(virDomainObjListPtr doms, void virDomainObjListRemove(virDomainObjListPtr doms,
virDomainObjPtr dom) virDomainObjPtr dom)
{ {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->def->uuid, uuidstr); virUUIDFormat(dom->def->uuid, uuidstr);
@ -14782,14 +14794,15 @@ cleanup:
} }
static virDomainObjPtr virDomainLoadConfig(virCapsPtr caps, static virDomainObjPtr
virDomainObjListPtr doms, virDomainObjListLoadConfig(virDomainObjListPtr doms,
const char *configDir, virCapsPtr caps,
const char *autostartDir, const char *configDir,
const char *name, const char *autostartDir,
unsigned int expectedVirtTypes, const char *name,
virDomainLoadConfigNotify notify, unsigned int expectedVirtTypes,
void *opaque) virDomainLoadConfigNotify notify,
void *opaque)
{ {
char *configFile = NULL, *autostartLink = NULL; char *configFile = NULL, *autostartLink = NULL;
virDomainDefPtr def = NULL; virDomainDefPtr def = NULL;
@ -14812,7 +14825,7 @@ static virDomainObjPtr virDomainLoadConfig(virCapsPtr caps,
/* if the domain is already in our hashtable, we only need to /* if the domain is already in our hashtable, we only need to
* update the autostart flag * update the autostart flag
*/ */
if ((dom = virDomainFindByUUID(doms, def->uuid))) { if ((dom = virDomainObjListFindByUUID(doms, def->uuid))) {
dom->autostart = autostart; dom->autostart = autostart;
if (virDomainObjIsActive(dom) && if (virDomainObjIsActive(dom) &&
@ -14827,7 +14840,7 @@ static virDomainObjPtr virDomainLoadConfig(virCapsPtr caps,
return dom; return dom;
} }
if (!(dom = virDomainAssignDef(caps, doms, def, false))) if (!(dom = virDomainObjListAdd(doms, caps, def, false)))
goto error; goto error;
dom->autostart = autostart; dom->autostart = autostart;
@ -14846,13 +14859,14 @@ error:
return NULL; return NULL;
} }
static virDomainObjPtr virDomainLoadStatus(virCapsPtr caps, static virDomainObjPtr
virDomainObjListPtr doms, virDomainObjListLoadStatus(virDomainObjListPtr doms,
const char *statusDir, virCapsPtr caps,
const char *name, const char *statusDir,
unsigned int expectedVirtTypes, const char *name,
virDomainLoadConfigNotify notify, unsigned int expectedVirtTypes,
void *opaque) virDomainLoadConfigNotify notify,
void *opaque)
{ {
char *statusFile = NULL; char *statusFile = NULL;
virDomainObjPtr obj = NULL; virDomainObjPtr obj = NULL;
@ -14891,14 +14905,14 @@ error:
return NULL; return NULL;
} }
int virDomainLoadAllConfigs(virCapsPtr caps, int virDomainObjListLoadAllConfigs(virDomainObjListPtr doms,
virDomainObjListPtr doms, virCapsPtr caps,
const char *configDir, const char *configDir,
const char *autostartDir, const char *autostartDir,
int liveStatus, int liveStatus,
unsigned int expectedVirtTypes, unsigned int expectedVirtTypes,
virDomainLoadConfigNotify notify, virDomainLoadConfigNotify notify,
void *opaque) void *opaque)
{ {
DIR *dir; DIR *dir;
struct dirent *entry; struct dirent *entry;
@ -14927,22 +14941,22 @@ int virDomainLoadAllConfigs(virCapsPtr caps,
kill the whole process */ kill the whole process */
VIR_INFO("Loading config file '%s.xml'", entry->d_name); VIR_INFO("Loading config file '%s.xml'", entry->d_name);
if (liveStatus) if (liveStatus)
dom = virDomainLoadStatus(caps, dom = virDomainObjListLoadStatus(doms,
doms, caps,
configDir, configDir,
entry->d_name, entry->d_name,
expectedVirtTypes, expectedVirtTypes,
notify, notify,
opaque); opaque);
else else
dom = virDomainLoadConfig(caps, dom = virDomainObjListLoadConfig(doms,
doms, caps,
configDir, configDir,
autostartDir, autostartDir,
entry->d_name, entry->d_name,
expectedVirtTypes, expectedVirtTypes,
notify, notify,
opaque); opaque);
if (dom) { if (dom) {
virObjectUnlock(dom); virObjectUnlock(dom);
if (!liveStatus) if (!liveStatus)
@ -15053,7 +15067,7 @@ virDomainFSDefPtr virDomainGetRootFilesystem(virDomainDefPtr def)
} }
/* /*
* virDomainObjIsDuplicate: * virDomainObjListIsDuplicate:
* @doms : virDomainObjListPtr to search * @doms : virDomainObjListPtr to search
* @def : virDomainDefPtr definition of domain to lookup * @def : virDomainDefPtr definition of domain to lookup
* @check_active: If true, ensure that domain is not active * @check_active: If true, ensure that domain is not active
@ -15063,16 +15077,16 @@ virDomainFSDefPtr virDomainGetRootFilesystem(virDomainDefPtr def)
* 1 if domain is a duplicate * 1 if domain is a duplicate
*/ */
int int
virDomainObjIsDuplicate(virDomainObjListPtr doms, virDomainObjListIsDuplicate(virDomainObjListPtr doms,
virDomainDefPtr def, virDomainDefPtr def,
unsigned int check_active) unsigned int check_active)
{ {
int ret = -1; int ret = -1;
int dupVM = 0; int dupVM = 0;
virDomainObjPtr vm = NULL; virDomainObjPtr vm = NULL;
/* See if a VM with matching UUID already exists */ /* See if a VM with matching UUID already exists */
vm = virDomainFindByUUID(doms, def->uuid); vm = virDomainObjListFindByUUID(doms, def->uuid);
if (vm) { if (vm) {
/* UUID matches, but if names don't match, refuse it */ /* UUID matches, but if names don't match, refuse it */
if (STRNEQ(vm->def->name, def->name)) { if (STRNEQ(vm->def->name, def->name)) {
@ -15097,7 +15111,7 @@ virDomainObjIsDuplicate(virDomainObjListPtr doms,
dupVM = 1; dupVM = 1;
} else { } else {
/* UUID does not match, but if a name matches, refuse it */ /* UUID does not match, but if a name matches, refuse it */
vm = virDomainFindByName(doms, def->name); vm = virDomainObjListFindByName(doms, def->name);
if (vm) { if (vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(vm->def->uuid, uuidstr); virUUIDFormat(vm->def->uuid, uuidstr);
@ -15973,10 +15987,10 @@ cleanup:
#undef MATCH #undef MATCH
int int
virDomainList(virConnectPtr conn, virDomainObjListExport(virDomainObjListPtr doms,
virHashTablePtr domobjs, virConnectPtr conn,
virDomainPtr **domains, virDomainPtr **domains,
unsigned int flags) unsigned int flags)
{ {
int ret = -1; int ret = -1;
int i; int i;
@ -15984,13 +15998,13 @@ virDomainList(virConnectPtr conn,
struct virDomainListData data = { conn, NULL, flags, 0, false }; struct virDomainListData data = { conn, NULL, flags, 0, false };
if (domains) { if (domains) {
if (VIR_ALLOC_N(data.domains, virHashSize(domobjs) + 1) < 0) { if (VIR_ALLOC_N(data.domains, virHashSize(doms->objs) + 1) < 0) {
virReportOOMError(); virReportOOMError();
goto cleanup; goto cleanup;
} }
} }
virHashForEach(domobjs, virDomainListPopulate, &data); virHashForEach(doms->objs, virDomainListPopulate, &data);
if (data.error) if (data.error)
goto cleanup; goto cleanup;
@ -16006,7 +16020,7 @@ virDomainList(virConnectPtr conn,
cleanup: cleanup:
if (data.domains) { if (data.domains) {
int count = virHashSize(domobjs); int count = virHashSize(doms->objs);
for (i = 0; i < count; i++) for (i = 0; i < count; i++)
virObjectUnref(data.domains[i]); virObjectUnref(data.domains[i]);
} }

View File

@ -1907,15 +1907,15 @@ virDomainObjIsActive(virDomainObjPtr dom)
virDomainObjPtr virDomainObjNew(virCapsPtr caps); virDomainObjPtr virDomainObjNew(virCapsPtr caps);
int virDomainObjListInit(virDomainObjListPtr objs); virDomainObjListPtr virDomainObjListNew(void);
void virDomainObjListDeinit(virDomainObjListPtr objs); void virDomainObjListFree(virDomainObjListPtr objs);
virDomainObjPtr virDomainFindByID(const virDomainObjListPtr doms, virDomainObjPtr virDomainObjListFindByID(const virDomainObjListPtr doms,
int id); int id);
virDomainObjPtr virDomainFindByUUID(const virDomainObjListPtr doms, virDomainObjPtr virDomainObjListFindByUUID(const virDomainObjListPtr doms,
const unsigned char *uuid); const unsigned char *uuid);
virDomainObjPtr virDomainFindByName(const virDomainObjListPtr doms, virDomainObjPtr virDomainObjListFindByName(const virDomainObjListPtr doms,
const char *name); const char *name);
bool virDomainObjTaint(virDomainObjPtr obj, bool virDomainObjTaint(virDomainObjPtr obj,
enum virDomainTaintFlags taint); enum virDomainTaintFlags taint);
@ -1975,10 +1975,10 @@ virDomainChrDefPtr virDomainChrDefNew(void);
/* live == true means def describes an active domain (being migrated or /* live == true means def describes an active domain (being migrated or
* restored) as opposed to a new persistent configuration of the domain */ * restored) as opposed to a new persistent configuration of the domain */
virDomainObjPtr virDomainAssignDef(virCapsPtr caps, virDomainObjPtr virDomainObjListAdd(virDomainObjListPtr doms,
virDomainObjListPtr doms, virCapsPtr caps,
const virDomainDefPtr def, const virDomainDefPtr def,
bool live); bool live);
void virDomainObjAssignDef(virDomainObjPtr domain, void virDomainObjAssignDef(virDomainObjPtr domain,
const virDomainDefPtr def, const virDomainDefPtr def,
bool live); bool live);
@ -2000,8 +2000,8 @@ virDomainDefPtr virDomainDefCopy(virCapsPtr caps, virDomainDefPtr src,
virDomainDefPtr virDomainDefPtr
virDomainObjCopyPersistentDef(virCapsPtr caps, virDomainObjPtr dom); virDomainObjCopyPersistentDef(virCapsPtr caps, virDomainObjPtr dom);
void virDomainRemoveInactive(virDomainObjListPtr doms, void virDomainObjListRemove(virDomainObjListPtr doms,
virDomainObjPtr dom); virDomainObjPtr dom);
virDomainDeviceDefPtr virDomainDeviceDefParse(virCapsPtr caps, virDomainDeviceDefPtr virDomainDeviceDefParse(virCapsPtr caps,
virDomainDefPtr def, virDomainDefPtr def,
@ -2138,14 +2138,14 @@ typedef void (*virDomainLoadConfigNotify)(virDomainObjPtr dom,
int newDomain, int newDomain,
void *opaque); void *opaque);
int virDomainLoadAllConfigs(virCapsPtr caps, int virDomainObjListLoadAllConfigs(virDomainObjListPtr doms,
virDomainObjListPtr doms, virCapsPtr caps,
const char *configDir, const char *configDir,
const char *autostartDir, const char *autostartDir,
int liveStatus, int liveStatus,
unsigned int expectedVirtTypes, unsigned int expectedVirtTypes,
virDomainLoadConfigNotify notify, virDomainLoadConfigNotify notify,
void *opaque); void *opaque);
int virDomainDeleteConfig(const char *configDir, int virDomainDeleteConfig(const char *configDir,
const char *autostartDir, const char *autostartDir,
@ -2163,9 +2163,9 @@ int virDomainFSIndexByName(virDomainDefPtr def, const char *name);
int virDomainVideoDefaultType(virDomainDefPtr def); int virDomainVideoDefaultType(virDomainDefPtr def);
int virDomainVideoDefaultRAM(virDomainDefPtr def, int type); int virDomainVideoDefaultRAM(virDomainDefPtr def, int type);
int virDomainObjIsDuplicate(virDomainObjListPtr doms, int virDomainObjListIsDuplicate(virDomainObjListPtr doms,
virDomainDefPtr def, virDomainDefPtr def,
unsigned int check_active); unsigned int check_active);
int virDomainObjListNumOfDomains(virDomainObjListPtr doms, int active); int virDomainObjListNumOfDomains(virDomainObjListPtr doms, int active);
@ -2366,8 +2366,10 @@ VIR_ENUM_DECL(virDomainStartupPolicy)
VIR_CONNECT_LIST_DOMAINS_FILTERS_AUTOSTART | \ VIR_CONNECT_LIST_DOMAINS_FILTERS_AUTOSTART | \
VIR_CONNECT_LIST_DOMAINS_FILTERS_SNAPSHOT) VIR_CONNECT_LIST_DOMAINS_FILTERS_SNAPSHOT)
int virDomainList(virConnectPtr conn, virHashTablePtr domobjs, int virDomainObjListExport(virDomainObjListPtr doms,
virDomainPtr **domains, unsigned int flags); virConnectPtr conn,
virDomainPtr **domains,
unsigned int flags);
virDomainVcpuPinDefPtr virDomainLookupVcpuPin(virDomainDefPtr def, virDomainVcpuPinDefPtr virDomainLookupVcpuPin(virDomainDefPtr def,
int vcpuid); int vcpuid);

View File

@ -285,7 +285,6 @@ virBlkioDeviceWeightArrayClear;
virDiskNameToBusDeviceIndex; virDiskNameToBusDeviceIndex;
virDiskNameToIndex; virDiskNameToIndex;
virDomainActualNetDefFree; virDomainActualNetDefFree;
virDomainAssignDef;
virDomainBlockedReasonTypeFromString; virDomainBlockedReasonTypeFromString;
virDomainBlockedReasonTypeToString; virDomainBlockedReasonTypeToString;
virDomainBootMenuTypeFromString; virDomainBootMenuTypeFromString;
@ -376,9 +375,6 @@ virDomainEmulatorPinAdd;
virDomainEmulatorPinDel; virDomainEmulatorPinDel;
virDomainFeatureStateTypeFromString; virDomainFeatureStateTypeFromString;
virDomainFeatureStateTypeToString; virDomainFeatureStateTypeToString;
virDomainFindByID;
virDomainFindByName;
virDomainFindByUUID;
virDomainFSDefFree; virDomainFSDefFree;
virDomainFSIndexByName; virDomainFSIndexByName;
virDomainFSTypeFromString; virDomainFSTypeFromString;
@ -443,9 +439,7 @@ virDomainLifecycleCrashTypeFromString;
virDomainLifecycleCrashTypeToString; virDomainLifecycleCrashTypeToString;
virDomainLifecycleTypeFromString; virDomainLifecycleTypeFromString;
virDomainLifecycleTypeToString; virDomainLifecycleTypeToString;
virDomainList;
virDomainLiveConfigHelperMethod; virDomainLiveConfigHelperMethod;
virDomainLoadAllConfigs;
virDomainLockFailureTypeFromString; virDomainLockFailureTypeFromString;
virDomainLockFailureTypeToString; virDomainLockFailureTypeToString;
virDomainLookupVcpuPin; virDomainLookupVcpuPin;
@ -477,12 +471,19 @@ virDomainObjAssignDef;
virDomainObjCopyPersistentDef; virDomainObjCopyPersistentDef;
virDomainObjGetPersistentDef; virDomainObjGetPersistentDef;
virDomainObjGetState; virDomainObjGetState;
virDomainObjIsDuplicate; virDomainObjListAdd;
virDomainObjListDeinit; virDomainObjListExport;
virDomainObjListFindByID;
virDomainObjListFindByName;
virDomainObjListFindByUUID;
virDomainObjListFree;
virDomainObjListGetActiveIDs; virDomainObjListGetActiveIDs;
virDomainObjListGetInactiveNames; virDomainObjListGetInactiveNames;
virDomainObjListInit; virDomainObjListIsDuplicate;
virDomainObjListLoadAllConfigs;
virDomainObjListNew;
virDomainObjListNumOfDomains; virDomainObjListNumOfDomains;
virDomainObjListRemove;
virDomainObjNew; virDomainObjNew;
virDomainObjSetDefTransient; virDomainObjSetDefTransient;
virDomainObjSetState; virDomainObjSetState;
@ -497,7 +498,6 @@ virDomainPMSuspendedReasonTypeFromString;
virDomainPMSuspendedReasonTypeToString; virDomainPMSuspendedReasonTypeToString;
virDomainRedirdevBusTypeFromString; virDomainRedirdevBusTypeFromString;
virDomainRedirdevBusTypeToString; virDomainRedirdevBusTypeToString;
virDomainRemoveInactive;
virDomainRunningReasonTypeFromString; virDomainRunningReasonTypeFromString;
virDomainRunningReasonTypeToString; virDomainRunningReasonTypeToString;
virDomainSaveConfig; virDomainSaveConfig;

View File

@ -67,7 +67,7 @@ struct _libxlDriverPrivate {
virStateInhibitCallback inhibitCallback; virStateInhibitCallback inhibitCallback;
void *inhibitOpaque; void *inhibitOpaque;
virDomainObjList domains; virDomainObjListPtr domains;
virDomainEventStatePtr domainEventState; virDomainEventStatePtr domainEventState;

View File

@ -684,7 +684,7 @@ libxlEventHandler(void *data ATTRIBUTE_UNUSED, const libxl_event *event)
goto cleanup; goto cleanup;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByID(&driver->domains, event->domid); vm = virDomainObjListFindByID(driver->domains, event->domid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) if (!vm)
@ -703,7 +703,7 @@ libxlEventHandler(void *data ATTRIBUTE_UNUSED, const libxl_event *event)
} }
libxlVmReap(driver, vm, reason); libxlVmReap(driver, vm, reason);
if (!vm->persistent) { if (!vm->persistent) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
break; break;
@ -1052,7 +1052,7 @@ libxlReconnectDomain(void *payload,
out: out:
libxlVmCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_UNKNOWN); libxlVmCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_UNKNOWN);
if (!vm->persistent) if (!vm->persistent)
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
else else
virObjectUnlock(vm); virObjectUnlock(vm);
} }
@ -1060,7 +1060,7 @@ out:
static void static void
libxlReconnectDomains(libxlDriverPrivatePtr driver) libxlReconnectDomains(libxlDriverPrivatePtr driver)
{ {
virHashForEach(driver->domains.objs, libxlReconnectDomain, driver); virHashForEach(driver->domains->objs, libxlReconnectDomain, driver);
} }
static int static int
@ -1071,7 +1071,7 @@ libxlShutdown(void)
libxlDriverLock(libxl_driver); libxlDriverLock(libxl_driver);
virCapabilitiesFree(libxl_driver->caps); virCapabilitiesFree(libxl_driver->caps);
virDomainObjListDeinit(&libxl_driver->domains); virDomainObjListFree(libxl_driver->domains);
libxl_ctx_free(libxl_driver->ctx); libxl_ctx_free(libxl_driver->ctx);
xtl_logger_destroy(libxl_driver->logger); xtl_logger_destroy(libxl_driver->logger);
if (libxl_driver->logger_file) if (libxl_driver->logger_file)
@ -1138,8 +1138,8 @@ libxlStartup(bool privileged,
LIBXL_VNC_PORT_MAX))) LIBXL_VNC_PORT_MAX)))
goto error; goto error;
if (virDomainObjListInit(&libxl_driver->domains) < 0) if (!(libxl_driver->domains = virDomainObjListNew()))
goto out_of_memory; goto error;
if (virAsprintf(&libxl_driver->configDir, if (virAsprintf(&libxl_driver->configDir,
"%s", LIBXL_CONFIG_DIR) == -1) "%s", LIBXL_CONFIG_DIR) == -1)
@ -1233,29 +1233,29 @@ libxlStartup(bool privileged,
libxl_driver->caps->privateDataFreeFunc = libxlDomainObjPrivateFree; libxl_driver->caps->privateDataFreeFunc = libxlDomainObjPrivateFree;
/* Load running domains first. */ /* Load running domains first. */
if (virDomainLoadAllConfigs(libxl_driver->caps, if (virDomainObjListLoadAllConfigs(libxl_driver->domains,
&libxl_driver->domains, libxl_driver->caps,
libxl_driver->stateDir, libxl_driver->stateDir,
libxl_driver->autostartDir, libxl_driver->autostartDir,
1, 1 << VIR_DOMAIN_VIRT_XEN, 1, 1 << VIR_DOMAIN_VIRT_XEN,
NULL, NULL) < 0) NULL, NULL) < 0)
goto error; goto error;
libxlReconnectDomains(libxl_driver); libxlReconnectDomains(libxl_driver);
/* Then inactive persistent configs */ /* Then inactive persistent configs */
if (virDomainLoadAllConfigs(libxl_driver->caps, if (virDomainObjListLoadAllConfigs(libxl_driver->domains,
&libxl_driver->domains, libxl_driver->caps,
libxl_driver->configDir, libxl_driver->configDir,
libxl_driver->autostartDir, libxl_driver->autostartDir,
0, 1 << VIR_DOMAIN_VIRT_XEN, 0, 1 << VIR_DOMAIN_VIRT_XEN,
NULL, NULL) < 0) NULL, NULL) < 0)
goto error; goto error;
virHashForEach(libxl_driver->domains.objs, libxlAutostartDomain, virHashForEach(libxl_driver->domains->objs, libxlAutostartDomain,
libxl_driver); libxl_driver);
virHashForEach(libxl_driver->domains.objs, libxlDomainManagedSaveLoad, virHashForEach(libxl_driver->domains->objs, libxlDomainManagedSaveLoad,
libxl_driver); libxl_driver);
libxlDriverUnlock(libxl_driver); libxlDriverUnlock(libxl_driver);
@ -1281,14 +1281,14 @@ libxlReload(void)
return 0; return 0;
libxlDriverLock(libxl_driver); libxlDriverLock(libxl_driver);
virDomainLoadAllConfigs(libxl_driver->caps, virDomainObjListLoadAllConfigs(libxl_driver->domains,
&libxl_driver->domains, libxl_driver->caps,
libxl_driver->configDir, libxl_driver->configDir,
libxl_driver->autostartDir, libxl_driver->autostartDir,
1, 1 << VIR_DOMAIN_VIRT_XEN, 1, 1 << VIR_DOMAIN_VIRT_XEN,
NULL, libxl_driver); NULL, libxl_driver);
virHashForEach(libxl_driver->domains.objs, libxlAutostartDomain, virHashForEach(libxl_driver->domains->objs, libxlAutostartDomain,
libxl_driver); libxl_driver);
libxlDriverUnlock(libxl_driver); libxlDriverUnlock(libxl_driver);
@ -1409,7 +1409,7 @@ libxlListDomains(virConnectPtr conn, int *ids, int nids)
int n; int n;
libxlDriverLock(driver); libxlDriverLock(driver);
n = virDomainObjListGetActiveIDs(&driver->domains, ids, nids); n = virDomainObjListGetActiveIDs(driver->domains, ids, nids);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
return n; return n;
@ -1422,7 +1422,7 @@ libxlNumDomains(virConnectPtr conn)
int n; int n;
libxlDriverLock(driver); libxlDriverLock(driver);
n = virDomainObjListNumOfDomains(&driver->domains, 1); n = virDomainObjListNumOfDomains(driver->domains, 1);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
return n; return n;
@ -1445,17 +1445,18 @@ libxlDomainCreateXML(virConnectPtr conn, const char *xml,
VIR_DOMAIN_XML_INACTIVE))) VIR_DOMAIN_XML_INACTIVE)))
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&driver->domains, def, 1) < 0) if (virDomainObjListIsDuplicate(driver->domains, def, 1) < 0)
goto cleanup; goto cleanup;
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, def, false))) driver->caps,
def, false)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
if (libxlVmStart(driver, vm, (flags & VIR_DOMAIN_START_PAUSED) != 0, if (libxlVmStart(driver, vm, (flags & VIR_DOMAIN_START_PAUSED) != 0,
-1) < 0) { -1) < 0) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
goto cleanup; goto cleanup;
} }
@ -1480,7 +1481,7 @@ libxlDomainLookupByID(virConnectPtr conn, int id)
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByID(&driver->domains, id); vm = virDomainObjListFindByID(driver->domains, id);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1506,7 +1507,7 @@ libxlDomainLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, uuid); vm = virDomainObjListFindByUUID(driver->domains, uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1532,7 +1533,7 @@ libxlDomainLookupByName(virConnectPtr conn, const char *name)
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByName(&driver->domains, name); vm = virDomainObjListFindByName(driver->domains, name);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1560,7 +1561,7 @@ libxlDomainSuspend(virDomainPtr dom)
int ret = -1; int ret = -1;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1618,7 +1619,7 @@ libxlDomainResume(virDomainPtr dom)
int ret = -1; int ret = -1;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1678,7 +1679,7 @@ libxlDomainShutdownFlags(virDomainPtr dom, unsigned int flags)
virCheckFlags(0, -1); virCheckFlags(0, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -1731,7 +1732,7 @@ libxlDomainReboot(virDomainPtr dom, unsigned int flags)
virCheckFlags(0, -1); virCheckFlags(0, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -1774,7 +1775,7 @@ libxlDomainDestroyFlags(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -1799,7 +1800,7 @@ libxlDomainDestroyFlags(virDomainPtr dom,
} }
if (!vm->persistent) { if (!vm->persistent) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -1828,7 +1829,7 @@ libxlDomainGetOSType(virDomainPtr dom)
char *type = NULL; char *type = NULL;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -1855,7 +1856,7 @@ libxlDomainGetMaxMemory(virDomainPtr dom)
unsigned long long ret = 0; unsigned long long ret = 0;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1886,7 +1887,7 @@ libxlDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem,
VIR_DOMAIN_MEM_MAXIMUM, -1); VIR_DOMAIN_MEM_MAXIMUM, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2005,7 +2006,7 @@ libxlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info)
int ret = -1; int ret = -1;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2052,7 +2053,7 @@ libxlDomainGetState(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2163,7 +2164,7 @@ libxlDomainSaveFlags(virDomainPtr dom, const char *to, const char *dxml,
} }
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -2182,7 +2183,7 @@ libxlDomainSaveFlags(virDomainPtr dom, const char *to, const char *dxml,
goto cleanup; goto cleanup;
if (!vm->persistent) { if (!vm->persistent) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -2225,17 +2226,19 @@ libxlDomainRestoreFlags(virConnectPtr conn, const char *from,
if (fd < 0) if (fd < 0)
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&driver->domains, def, 1) < 0) if (virDomainObjListIsDuplicate(driver->domains, def, 1) < 0)
goto cleanup; goto cleanup;
if (!(vm = virDomainAssignDef(driver->caps, &driver->domains, def, true))) if (!(vm = virDomainObjListAdd(driver->domains,
driver->caps,
def, true)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
if ((ret = libxlVmStart(driver, vm, false, fd)) < 0 && if ((ret = libxlVmStart(driver, vm, false, fd)) < 0 &&
!vm->persistent) { !vm->persistent) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -2268,7 +2271,7 @@ libxlDomainCoreDump(virDomainPtr dom, const char *to, unsigned int flags)
virCheckFlags(VIR_DUMP_LIVE | VIR_DUMP_CRASH, -1); virCheckFlags(VIR_DUMP_LIVE | VIR_DUMP_CRASH, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2319,7 +2322,7 @@ libxlDomainCoreDump(virDomainPtr dom, const char *to, unsigned int flags)
} }
if ((flags & VIR_DUMP_CRASH) && !vm->persistent) { if ((flags & VIR_DUMP_CRASH) && !vm->persistent) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -2360,7 +2363,7 @@ libxlDomainManagedSave(virDomainPtr dom, unsigned int flags)
virCheckFlags(0, -1); virCheckFlags(0, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -2389,7 +2392,7 @@ libxlDomainManagedSave(virDomainPtr dom, unsigned int flags)
goto cleanup; goto cleanup;
if (!vm->persistent) { if (!vm->persistent) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -2434,7 +2437,7 @@ libxlDomainHasManagedSaveImage(virDomainPtr dom, unsigned int flags)
virCheckFlags(0, -1); virCheckFlags(0, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -2463,7 +2466,7 @@ libxlDomainManagedSaveRemove(virDomainPtr dom, unsigned int flags)
virCheckFlags(0, -1); virCheckFlags(0, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -2522,7 +2525,7 @@ libxlDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
} }
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2641,7 +2644,7 @@ libxlDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags)
VIR_DOMAIN_VCPU_MAXIMUM, -1); VIR_DOMAIN_VCPU_MAXIMUM, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2698,7 +2701,7 @@ libxlDomainPinVcpu(virDomainPtr dom, unsigned int vcpu, unsigned char *cpumap,
libxl_bitmap map; libxl_bitmap map;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2765,7 +2768,7 @@ libxlDomainGetVcpus(virDomainPtr dom, virVcpuInfoPtr info, int maxinfo,
unsigned char *cpumap; unsigned char *cpumap;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2828,7 +2831,7 @@ libxlDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
/* Flags checked by virDomainDefFormat */ /* Flags checked by virDomainDefFormat */
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2944,7 +2947,7 @@ libxlListDefinedDomains(virConnectPtr conn,
int n; int n;
libxlDriverLock(driver); libxlDriverLock(driver);
n = virDomainObjListGetInactiveNames(&driver->domains, names, nnames); n = virDomainObjListGetInactiveNames(driver->domains, names, nnames);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
return n; return n;
} }
@ -2956,7 +2959,7 @@ libxlNumDefinedDomains(virConnectPtr conn)
int n; int n;
libxlDriverLock(driver); libxlDriverLock(driver);
n = virDomainObjListNumOfDomains(&driver->domains, 0); n = virDomainObjListNumOfDomains(driver->domains, 0);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
return n; return n;
@ -2973,7 +2976,7 @@ libxlDomainCreateWithFlags(virDomainPtr dom,
virCheckFlags(VIR_DOMAIN_START_PAUSED, -1); virCheckFlags(VIR_DOMAIN_START_PAUSED, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -3019,18 +3022,19 @@ libxlDomainDefineXML(virConnectPtr conn, const char *xml)
VIR_DOMAIN_XML_INACTIVE))) VIR_DOMAIN_XML_INACTIVE)))
goto cleanup; goto cleanup;
if ((dupVM = virDomainObjIsDuplicate(&driver->domains, def, 0)) < 0) if ((dupVM = virDomainObjListIsDuplicate(driver->domains, def, 0)) < 0)
goto cleanup; goto cleanup;
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, def, false))) driver->caps,
def, false)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
vm->persistent = 1; vm->persistent = 1;
if (virDomainSaveConfig(driver->configDir, if (virDomainSaveConfig(driver->configDir,
vm->newDef ? vm->newDef : vm->def) < 0) { vm->newDef ? vm->newDef : vm->def) < 0) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
goto cleanup; goto cleanup;
} }
@ -3067,7 +3071,7 @@ libxlDomainUndefineFlags(virDomainPtr dom,
virCheckFlags(VIR_DOMAIN_UNDEFINE_MANAGED_SAVE, -1); virCheckFlags(VIR_DOMAIN_UNDEFINE_MANAGED_SAVE, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -3114,7 +3118,7 @@ libxlDomainUndefineFlags(virDomainPtr dom,
if (virDomainObjIsActive(vm)) { if (virDomainObjIsActive(vm)) {
vm->persistent = 0; vm->persistent = 0;
} else { } else {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -3506,7 +3510,7 @@ libxlDomainModifyDeviceFlags(virDomainPtr dom, const char *xml,
VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1); VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid")); virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
@ -3707,7 +3711,7 @@ libxlDomainGetAutostart(virDomainPtr dom, int *autostart)
int ret = -1; int ret = -1;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -3736,7 +3740,7 @@ libxlDomainSetAutostart(virDomainPtr dom, int autostart)
int ret = -1; int ret = -1;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -3806,7 +3810,7 @@ libxlDomainGetSchedulerType(virDomainPtr dom, int *nparams)
libxl_scheduler sched_id; libxl_scheduler sched_id;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -3871,7 +3875,7 @@ libxlDomainGetSchedulerParametersFlags(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -3954,7 +3958,7 @@ libxlDomainSetSchedulerParametersFlags(virDomainPtr dom,
return -1; return -1;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -4024,7 +4028,7 @@ libxlDomainIsActive(virDomainPtr dom)
int ret = -1; int ret = -1;
libxlDriverLock(driver); libxlDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!obj) { if (!obj) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -4046,7 +4050,7 @@ libxlDomainIsPersistent(virDomainPtr dom)
int ret = -1; int ret = -1;
libxlDriverLock(driver); libxlDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!obj) { if (!obj) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -4068,7 +4072,7 @@ libxlDomainIsUpdated(virDomainPtr dom)
int ret = -1; int ret = -1;
libxlDriverLock(driver); libxlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -4135,7 +4139,7 @@ libxlListAllDomains(virConnectPtr conn,
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1); virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
libxlDriverLock(driver); libxlDriverLock(driver);
ret = virDomainList(conn, driver->domains.objs, domains, flags); ret = virDomainObjListExport(driver->domains, conn, domains, flags);
libxlDriverUnlock(driver); libxlDriverUnlock(driver);
return ret; return ret;

View File

@ -58,7 +58,7 @@ struct _virLXCDriver {
virStateInhibitCallback inhibitCallback; virStateInhibitCallback inhibitCallback;
void *inhibitOpaque; void *inhibitOpaque;
virDomainObjList domains; virDomainObjListPtr domains;
char *configDir; char *configDir;
char *autostartDir; char *autostartDir;
char *stateDir; char *stateDir;

View File

@ -84,7 +84,7 @@ static int
lxcVMFilterRebuild(virConnectPtr conn ATTRIBUTE_UNUSED, lxcVMFilterRebuild(virConnectPtr conn ATTRIBUTE_UNUSED,
virHashIterator iter, void *data) virHashIterator iter, void *data)
{ {
virHashForEach(lxc_driver->domains.objs, iter, data); virHashForEach(lxc_driver->domains->objs, iter, data);
return 0; return 0;
} }
@ -208,7 +208,7 @@ static virDomainPtr lxcDomainLookupByID(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByID(&driver->domains, id); vm = virDomainObjListFindByID(driver->domains, id);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -235,7 +235,7 @@ static virDomainPtr lxcDomainLookupByUUID(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, uuid); vm = virDomainObjListFindByUUID(driver->domains, uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -264,7 +264,7 @@ static virDomainPtr lxcDomainLookupByName(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByName(&driver->domains, name); vm = virDomainObjListFindByName(driver->domains, name);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
@ -290,7 +290,7 @@ static int lxcDomainIsActive(virDomainPtr dom)
int ret = -1; int ret = -1;
lxcDriverLock(driver); lxcDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!obj) { if (!obj) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -315,7 +315,7 @@ static int lxcDomainIsPersistent(virDomainPtr dom)
int ret = -1; int ret = -1;
lxcDriverLock(driver); lxcDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!obj) { if (!obj) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -339,7 +339,7 @@ static int lxcDomainIsUpdated(virDomainPtr dom)
int ret = -1; int ret = -1;
lxcDriverLock(driver); lxcDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!obj) { if (!obj) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -361,7 +361,7 @@ static int lxcListDomains(virConnectPtr conn, int *ids, int nids) {
int n; int n;
lxcDriverLock(driver); lxcDriverLock(driver);
n = virDomainObjListGetActiveIDs(&driver->domains, ids, nids); n = virDomainObjListGetActiveIDs(driver->domains, ids, nids);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
return n; return n;
@ -372,7 +372,7 @@ static int lxcNumDomains(virConnectPtr conn) {
int n; int n;
lxcDriverLock(driver); lxcDriverLock(driver);
n = virDomainObjListNumOfDomains(&driver->domains, 1); n = virDomainObjListNumOfDomains(driver->domains, 1);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
return n; return n;
@ -384,7 +384,7 @@ static int lxcListDefinedDomains(virConnectPtr conn,
int n; int n;
lxcDriverLock(driver); lxcDriverLock(driver);
n = virDomainObjListGetInactiveNames(&driver->domains, names, nnames); n = virDomainObjListGetInactiveNames(driver->domains, names, nnames);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
return n; return n;
@ -396,7 +396,7 @@ static int lxcNumDefinedDomains(virConnectPtr conn) {
int n; int n;
lxcDriverLock(driver); lxcDriverLock(driver);
n = virDomainObjListNumOfDomains(&driver->domains, 0); n = virDomainObjListNumOfDomains(driver->domains, 0);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
return n; return n;
@ -422,7 +422,7 @@ static virDomainPtr lxcDomainDefine(virConnectPtr conn, const char *xml)
if (virSecurityManagerVerify(driver->securityManager, def) < 0) if (virSecurityManagerVerify(driver->securityManager, def) < 0)
goto cleanup; goto cleanup;
if ((dupVM = virDomainObjIsDuplicate(&driver->domains, def, 0)) < 0) if ((dupVM = virDomainObjListIsDuplicate(driver->domains, def, 0)) < 0)
goto cleanup; goto cleanup;
if ((def->nets != NULL) && !(driver->have_netns)) { if ((def->nets != NULL) && !(driver->have_netns)) {
@ -431,15 +431,16 @@ static virDomainPtr lxcDomainDefine(virConnectPtr conn, const char *xml)
goto cleanup; goto cleanup;
} }
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, def, false))) driver->caps,
def, false)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
vm->persistent = 1; vm->persistent = 1;
if (virDomainSaveConfig(driver->configDir, if (virDomainSaveConfig(driver->configDir,
vm->newDef ? vm->newDef : vm->def) < 0) { vm->newDef ? vm->newDef : vm->def) < 0) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
goto cleanup; goto cleanup;
} }
@ -475,7 +476,7 @@ static int lxcDomainUndefineFlags(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -502,7 +503,7 @@ static int lxcDomainUndefineFlags(virDomainPtr dom,
if (virDomainObjIsActive(vm)) { if (virDomainObjIsActive(vm)) {
vm->persistent = 0; vm->persistent = 0;
} else { } else {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -531,7 +532,7 @@ static int lxcDomainGetInfo(virDomainPtr dom,
int ret = -1, rc; int ret = -1, rc;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -596,7 +597,7 @@ lxcDomainGetState(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -623,7 +624,7 @@ static char *lxcGetOSType(virDomainPtr dom)
char *ret = NULL; char *ret = NULL;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -654,7 +655,7 @@ lxcDomainGetMaxMemory(virDomainPtr dom)
unsigned long long ret = 0; unsigned long long ret = 0;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -679,7 +680,7 @@ static int lxcDomainSetMaxMemory(virDomainPtr dom, unsigned long newmax) {
int ret = -1; int ret = -1;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -712,7 +713,7 @@ static int lxcDomainSetMemory(virDomainPtr dom, unsigned long newmem) {
int ret = -1; int ret = -1;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -787,7 +788,7 @@ lxcDomainSetMemoryParameters(virDomainPtr dom,
return -1; return -1;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -857,7 +858,7 @@ lxcDomainGetMemoryParameters(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -950,7 +951,7 @@ static char *lxcDomainGetXMLDesc(virDomainPtr dom,
/* Flags checked by virDomainDefFormat */ /* Flags checked by virDomainDefFormat */
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -990,7 +991,7 @@ static int lxcDomainStartWithFlags(virDomainPtr dom, unsigned int flags)
virCheckFlags(VIR_DOMAIN_START_AUTODESTROY, -1); virCheckFlags(VIR_DOMAIN_START_AUTODESTROY, -1);
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -1077,7 +1078,7 @@ lxcDomainCreateAndStart(virConnectPtr conn,
if (virSecurityManagerVerify(driver->securityManager, def) < 0) if (virSecurityManagerVerify(driver->securityManager, def) < 0)
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&driver->domains, def, 1) < 0) if (virDomainObjListIsDuplicate(driver->domains, def, 1) < 0)
goto cleanup; goto cleanup;
if ((def->nets != NULL) && !(driver->have_netns)) { if ((def->nets != NULL) && !(driver->have_netns)) {
@ -1087,8 +1088,9 @@ lxcDomainCreateAndStart(virConnectPtr conn,
} }
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, def, false))) driver->caps,
def, false)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
@ -1096,7 +1098,7 @@ lxcDomainCreateAndStart(virConnectPtr conn,
(flags & VIR_DOMAIN_START_AUTODESTROY), (flags & VIR_DOMAIN_START_AUTODESTROY),
VIR_DOMAIN_RUNNING_BOOTED) < 0) { VIR_DOMAIN_RUNNING_BOOTED) < 0) {
virDomainAuditStart(vm, "booted", false); virDomainAuditStart(vm, "booted", false);
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
goto cleanup; goto cleanup;
} }
@ -1128,7 +1130,7 @@ static int lxcDomainGetSecurityLabel(virDomainPtr dom, virSecurityLabelPtr secla
int ret = -1; int ret = -1;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
memset(seclabel, 0, sizeof(*seclabel)); memset(seclabel, 0, sizeof(*seclabel));
@ -1315,7 +1317,7 @@ lxcDomainDestroyFlags(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -1338,7 +1340,7 @@ lxcDomainDestroyFlags(virDomainPtr dom,
priv->doneStopEvent = true; priv->doneStopEvent = true;
virDomainAuditStop(vm, "destroyed"); virDomainAuditStop(vm, "destroyed");
if (!vm->persistent) { if (!vm->persistent) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -1442,7 +1444,7 @@ static int lxcStartup(bool privileged,
} }
lxcDriverLock(lxc_driver); lxcDriverLock(lxc_driver);
if (virDomainObjListInit(&lxc_driver->domains) < 0) if (!(lxc_driver->domains = virDomainObjListNew()))
goto cleanup; goto cleanup;
lxc_driver->domainEventState = virDomainEventStateNew(); lxc_driver->domainEventState = virDomainEventStateNew();
@ -1478,23 +1480,23 @@ static int lxcStartup(bool privileged,
goto cleanup; goto cleanup;
/* Get all the running persistent or transient configs first */ /* Get all the running persistent or transient configs first */
if (virDomainLoadAllConfigs(lxc_driver->caps, if (virDomainObjListLoadAllConfigs(lxc_driver->domains,
&lxc_driver->domains, lxc_driver->caps,
lxc_driver->stateDir, lxc_driver->stateDir,
NULL, NULL,
1, 1 << VIR_DOMAIN_VIRT_LXC, 1, 1 << VIR_DOMAIN_VIRT_LXC,
NULL, NULL) < 0) NULL, NULL) < 0)
goto cleanup; goto cleanup;
virLXCProcessReconnectAll(lxc_driver, &lxc_driver->domains); virLXCProcessReconnectAll(lxc_driver, lxc_driver->domains);
/* Then inactive persistent configs */ /* Then inactive persistent configs */
if (virDomainLoadAllConfigs(lxc_driver->caps, if (virDomainObjListLoadAllConfigs(lxc_driver->domains,
&lxc_driver->domains, lxc_driver->caps,
lxc_driver->configDir, lxc_driver->configDir,
lxc_driver->autostartDir, lxc_driver->autostartDir,
0, 1 << VIR_DOMAIN_VIRT_LXC, 0, 1 << VIR_DOMAIN_VIRT_LXC,
NULL, NULL) < 0) NULL, NULL) < 0)
goto cleanup; goto cleanup;
lxcDriverUnlock(lxc_driver); lxcDriverUnlock(lxc_driver);
@ -1536,12 +1538,12 @@ lxcReload(void) {
return 0; return 0;
lxcDriverLock(lxc_driver); lxcDriverLock(lxc_driver);
virDomainLoadAllConfigs(lxc_driver->caps, virDomainObjListLoadAllConfigs(lxc_driver->domains,
&lxc_driver->domains, lxc_driver->caps,
lxc_driver->configDir, lxc_driver->configDir,
lxc_driver->autostartDir, lxc_driver->autostartDir,
0, 1 << VIR_DOMAIN_VIRT_LXC, 0, 1 << VIR_DOMAIN_VIRT_LXC,
lxcNotifyLoadDomain, lxc_driver); lxcNotifyLoadDomain, lxc_driver);
lxcDriverUnlock(lxc_driver); lxcDriverUnlock(lxc_driver);
return 0; return 0;
@ -1554,7 +1556,7 @@ static int lxcShutdown(void)
lxcDriverLock(lxc_driver); lxcDriverLock(lxc_driver);
virNWFilterUnRegisterCallbackDriver(&lxcCallbackDriver); virNWFilterUnRegisterCallbackDriver(&lxcCallbackDriver);
virDomainObjListDeinit(&lxc_driver->domains); virDomainObjListFree(lxc_driver->domains);
virDomainEventStateFree(lxc_driver->domainEventState); virDomainEventStateFree(lxc_driver->domainEventState);
virLXCProcessAutoDestroyShutdown(lxc_driver); virLXCProcessAutoDestroyShutdown(lxc_driver);
@ -1774,7 +1776,7 @@ lxcSetSchedulerParametersFlags(virDomainPtr dom,
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -1916,7 +1918,7 @@ lxcGetSchedulerParametersFlags(virDomainPtr dom,
cpu_bw_status = !!rc; cpu_bw_status = !!rc;
} }
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -2029,7 +2031,7 @@ lxcDomainSetBlkioParameters(virDomainPtr dom,
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -2127,7 +2129,7 @@ lxcDomainGetBlkioParameters(virDomainPtr dom,
VIR_DOMAIN_AFFECT_CONFIG, -1); VIR_DOMAIN_AFFECT_CONFIG, -1);
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -2228,7 +2230,7 @@ lxcDomainInterfaceStats(virDomainPtr dom,
int ret = -1; int ret = -1;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2283,7 +2285,7 @@ static int lxcDomainGetAutostart(virDomainPtr dom,
int ret = -1; int ret = -1;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2311,7 +2313,7 @@ static int lxcDomainSetAutostart(virDomainPtr dom,
int ret = -1; int ret = -1;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -2479,7 +2481,7 @@ static int lxcDomainSuspend(virDomainPtr dom)
int ret = -1; int ret = -1;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -2544,7 +2546,7 @@ static int lxcDomainResume(virDomainPtr dom)
int ret = -1; int ret = -1;
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -2604,7 +2606,7 @@ lxcDomainOpenConsole(virDomainPtr dom,
lxcDriverLock(driver); lxcDriverLock(driver);
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr); _("no domain with matching uuid '%s'"), uuidstr);
@ -2682,7 +2684,7 @@ lxcDomainSendProcessSignal(virDomainPtr dom,
lxcDriverLock(driver); lxcDriverLock(driver);
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
@ -2747,7 +2749,7 @@ lxcListAllDomains(virConnectPtr conn,
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1); virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
lxcDriverLock(driver); lxcDriverLock(driver);
ret = virDomainList(conn, driver->domains.objs, domains, flags); ret = virDomainObjListExport(driver->domains, conn, domains, flags);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
return ret; return ret;
@ -2769,7 +2771,7 @@ lxcDomainShutdownFlags(virDomainPtr dom,
VIR_DOMAIN_SHUTDOWN_SIGNAL, -1); VIR_DOMAIN_SHUTDOWN_SIGNAL, -1);
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2858,7 +2860,7 @@ lxcDomainReboot(virDomainPtr dom,
VIR_DOMAIN_REBOOT_SIGNAL, -1); VIR_DOMAIN_REBOOT_SIGNAL, -1);
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -4301,7 +4303,7 @@ lxcDomainModifyDeviceFlags(virDomainPtr dom, const char *xml,
affect = flags & (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG); affect = flags & (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG);
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -4485,7 +4487,7 @@ static int lxcDomainOpenNamespace(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];

View File

@ -85,8 +85,8 @@ static void virLXCProcessAutoDestroyDom(void *payload,
return; return;
} }
if (!(dom = virDomainFindByUUID(&data->driver->domains, if (!(dom = virDomainObjListFindByUUID(data->driver->domains,
uuid))) { uuid))) {
VIR_DEBUG("No domain object to kill"); VIR_DEBUG("No domain object to kill");
return; return;
} }
@ -101,7 +101,7 @@ static void virLXCProcessAutoDestroyDom(void *payload,
priv->doneStopEvent = true; priv->doneStopEvent = true;
if (dom && !dom->persistent) if (dom && !dom->persistent)
virDomainRemoveInactive(&data->driver->domains, dom); virDomainObjListRemove(data->driver->domains, dom);
if (dom) if (dom)
virObjectUnlock(dom); virObjectUnlock(dom);
@ -576,7 +576,7 @@ static void virLXCProcessMonitorEOFNotify(virLXCMonitorPtr mon,
VIR_DEBUG("Stop event has already been sent"); VIR_DEBUG("Stop event has already been sent");
} }
if (!vm->persistent) { if (!vm->persistent) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
} else { } else {
@ -590,7 +590,7 @@ static void virLXCProcessMonitorEOFNotify(virLXCMonitorPtr mon,
VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED,
priv->stopReason); priv->stopReason);
if (!vm->persistent) { if (!vm->persistent) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
} }
@ -1290,7 +1290,7 @@ virLXCProcessAutostartAll(virLXCDriverPtr driver)
struct virLXCProcessAutostartData data = { driver, conn }; struct virLXCProcessAutostartData data = { driver, conn };
lxcDriverLock(driver); lxcDriverLock(driver);
virHashForEach(driver->domains.objs, virLXCProcessAutostartDomain, &data); virHashForEach(driver->domains->objs, virLXCProcessAutostartDomain, &data);
lxcDriverUnlock(driver); lxcDriverUnlock(driver);
if (conn) if (conn)

View File

@ -558,7 +558,7 @@ openvzFreeDriver(struct openvz_driver *driver)
if (!driver) if (!driver)
return; return;
virDomainObjListDeinit(&driver->domains); virDomainObjListFree(driver->domains);
virCapabilitiesFree(driver->caps); virCapabilitiesFree(driver->caps);
VIR_FREE(driver); VIR_FREE(driver);
} }
@ -656,14 +656,14 @@ int openvzLoadDomains(struct openvz_driver *driver) {
openvzReadMemConf(dom->def, veid); openvzReadMemConf(dom->def, veid);
virUUIDFormat(dom->def->uuid, uuidstr); virUUIDFormat(dom->def->uuid, uuidstr);
if (virHashLookup(driver->domains.objs, uuidstr)) { if (virHashLookup(driver->domains->objs, uuidstr)) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
_("Duplicate container UUID %s detected for %d"), _("Duplicate container UUID %s detected for %d"),
uuidstr, uuidstr,
veid); veid);
goto cleanup; goto cleanup;
} }
if (virHashAddEntry(driver->domains.objs, uuidstr, dom) < 0) { if (virHashAddEntry(driver->domains->objs, uuidstr, dom) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
_("Could not add UUID for container %d"), veid); _("Could not add UUID for container %d"), veid);
goto cleanup; goto cleanup;

View File

@ -45,7 +45,7 @@ struct openvz_driver {
virMutex lock; virMutex lock;
virCapsPtr caps; virCapsPtr caps;
virDomainObjList domains; virDomainObjListPtr domains;
int version; int version;
}; };

View File

@ -240,9 +240,8 @@ openvzDomainGetHostname(virDomainPtr dom, unsigned int flags)
virDomainObjPtr vm; virDomainObjPtr vm;
virCheckFlags(0, NULL); virCheckFlags(0, NULL);
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -280,7 +279,7 @@ static virDomainPtr openvzDomainLookupByID(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByID(&driver->domains, id); vm = virDomainObjListFindByID(driver->domains, id);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -313,7 +312,7 @@ static char *openvzGetOSType(virDomainPtr dom)
char *ret = NULL; char *ret = NULL;
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -338,7 +337,7 @@ static virDomainPtr openvzDomainLookupByUUID(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, uuid); vm = virDomainObjListFindByUUID(driver->domains, uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -363,7 +362,7 @@ static virDomainPtr openvzDomainLookupByName(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByName(&driver->domains, name); vm = virDomainObjListFindByName(driver->domains, name);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -389,7 +388,7 @@ static int openvzDomainGetInfo(virDomainPtr dom,
int ret = -1; int ret = -1;
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -437,7 +436,7 @@ openvzDomainGetState(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -462,7 +461,7 @@ static int openvzDomainIsActive(virDomainPtr dom)
int ret = -1; int ret = -1;
openvzDriverLock(driver); openvzDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!obj) { if (!obj) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -484,7 +483,7 @@ static int openvzDomainIsPersistent(virDomainPtr dom)
int ret = -1; int ret = -1;
openvzDriverLock(driver); openvzDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!obj) { if (!obj) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -511,7 +510,7 @@ static char *openvzDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) {
/* Flags checked by virDomainDefFormat */ /* Flags checked by virDomainDefFormat */
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -555,7 +554,7 @@ static int openvzDomainSuspend(virDomainPtr dom) {
int ret = -1; int ret = -1;
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -593,7 +592,7 @@ static int openvzDomainResume(virDomainPtr dom) {
int ret = -1; int ret = -1;
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -636,7 +635,7 @@ openvzDomainShutdownFlags(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -687,7 +686,7 @@ static int openvzDomainReboot(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -961,15 +960,16 @@ openvzDomainDefineXML(virConnectPtr conn, const char *xml)
VIR_DOMAIN_XML_INACTIVE)) == NULL) VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup; goto cleanup;
vm = virDomainFindByName(&driver->domains, vmdef->name); vm = virDomainObjListFindByName(driver->domains, vmdef->name);
if (vm) { if (vm) {
virReportError(VIR_ERR_OPERATION_FAILED, virReportError(VIR_ERR_OPERATION_FAILED,
_("Already an OPENVZ VM active with the id '%s'"), _("Already an OPENVZ VM active with the id '%s'"),
vmdef->name); vmdef->name);
goto cleanup; goto cleanup;
} }
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, vmdef, false))) driver->caps,
vmdef, false)))
goto cleanup; goto cleanup;
vmdef = NULL; vmdef = NULL;
vm->persistent = 1; vm->persistent = 1;
@ -1047,15 +1047,16 @@ openvzDomainCreateXML(virConnectPtr conn, const char *xml,
VIR_DOMAIN_XML_INACTIVE)) == NULL) VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup; goto cleanup;
vm = virDomainFindByName(&driver->domains, vmdef->name); vm = virDomainObjListFindByName(driver->domains, vmdef->name);
if (vm) { if (vm) {
virReportError(VIR_ERR_OPERATION_FAILED, virReportError(VIR_ERR_OPERATION_FAILED,
_("Already an OPENVZ VM defined with the id '%s'"), _("Already an OPENVZ VM defined with the id '%s'"),
vmdef->name); vmdef->name);
goto cleanup; goto cleanup;
} }
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, vmdef, false))) driver->caps,
vmdef, false)))
goto cleanup; goto cleanup;
vmdef = NULL; vmdef = NULL;
/* All OpenVZ domains seem to be persistent - this is a bit of a violation /* All OpenVZ domains seem to be persistent - this is a bit of a violation
@ -1126,7 +1127,7 @@ openvzDomainCreateWithFlags(virDomainPtr dom, unsigned int flags)
virCheckFlags(0, -1); virCheckFlags(0, -1);
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByName(&driver->domains, dom->name); vm = virDomainObjListFindByName(driver->domains, dom->name);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1180,7 +1181,7 @@ openvzDomainUndefineFlags(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, "%s", virReportError(VIR_ERR_NO_DOMAIN, "%s",
_("no domain with matching uuid")); _("no domain with matching uuid"));
@ -1198,7 +1199,7 @@ openvzDomainUndefineFlags(virDomainPtr dom,
if (virDomainObjIsActive(vm)) { if (virDomainObjIsActive(vm)) {
vm->persistent = 0; vm->persistent = 0;
} else { } else {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -1227,7 +1228,7 @@ openvzDomainSetAutostart(virDomainPtr dom, int autostart)
int ret = -1; int ret = -1;
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1257,7 +1258,7 @@ openvzDomainGetAutostart(virDomainPtr dom, int *autostart)
int ret = -1; int ret = -1;
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1352,7 +1353,7 @@ static int openvzDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
} }
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1439,7 +1440,7 @@ static virDrvOpenStatus openvzOpen(virConnectPtr conn,
return VIR_DRV_OPEN_ERROR; return VIR_DRV_OPEN_ERROR;
} }
if (virDomainObjListInit(&driver->domains) < 0) if (!(driver->domains = virDomainObjListNew()))
goto cleanup; goto cleanup;
if (!(driver->caps = openvzCapsInit())) if (!(driver->caps = openvzCapsInit()))
@ -1548,7 +1549,7 @@ static int openvzNumDomains(virConnectPtr conn) {
int n; int n;
openvzDriverLock(driver); openvzDriverLock(driver);
n = virDomainObjListNumOfDomains(&driver->domains, 1); n = virDomainObjListNumOfDomains(driver->domains, 1);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
return n; return n;
@ -1662,7 +1663,7 @@ static int openvzNumDefinedDomains(virConnectPtr conn) {
int n; int n;
openvzDriverLock(driver); openvzDriverLock(driver);
n = virDomainObjListNumOfDomains(&driver->domains, 0); n = virDomainObjListNumOfDomains(driver->domains, 0);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
return n; return n;
@ -1951,7 +1952,7 @@ openvzDomainInterfaceStats(virDomainPtr dom,
int ret = -1; int ret = -1;
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2052,7 +2053,7 @@ openvzDomainUpdateDeviceFlags(virDomainPtr dom, const char *xml,
VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1); VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1);
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, "%s", virReportError(VIR_ERR_NO_DOMAIN, "%s",
@ -2105,7 +2106,7 @@ openvzListAllDomains(virConnectPtr conn,
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1); virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
openvzDriverLock(driver); openvzDriverLock(driver);
ret = virDomainList(conn, driver->domains.objs, domains, flags); ret = virDomainObjListExport(driver->domains, conn, domains, flags);
openvzDriverUnlock(driver); openvzDriverUnlock(driver);
return ret; return ret;

View File

@ -830,8 +830,9 @@ parallelsLoadDomain(parallelsConnPtr privconn, virJSONValuePtr jobj)
if (parallelsAddVNCInfo(def, jobj) < 0) if (parallelsAddVNCInfo(def, jobj) < 0)
goto cleanup; goto cleanup;
if (!(dom = virDomainAssignDef(privconn->caps, if (!(dom = virDomainObjListAdd(privconn->domains,
&privconn->domains, def, false))) privconn->caps,
def, false)))
goto cleanup; goto cleanup;
/* dom is locked here */ /* dom is locked here */
@ -928,7 +929,7 @@ parallelsOpenDefault(virConnectPtr conn)
if (!(privconn->caps = parallelsBuildCapabilities())) if (!(privconn->caps = parallelsBuildCapabilities()))
goto error; goto error;
if (virDomainObjListInit(&privconn->domains) < 0) if (!(privconn->domains = virDomainObjListNew()))
goto error; goto error;
conn->privateData = privconn; conn->privateData = privconn;
@ -939,7 +940,7 @@ parallelsOpenDefault(virConnectPtr conn)
return VIR_DRV_OPEN_SUCCESS; return VIR_DRV_OPEN_SUCCESS;
error: error:
virDomainObjListDeinit(&privconn->domains); virDomainObjListFree(privconn->domains);
virCapabilitiesFree(privconn->caps); virCapabilitiesFree(privconn->caps);
virStoragePoolObjListFree(&privconn->pools); virStoragePoolObjListFree(&privconn->pools);
VIR_FREE(privconn); VIR_FREE(privconn);
@ -986,7 +987,7 @@ parallelsClose(virConnectPtr conn)
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
virCapabilitiesFree(privconn->caps); virCapabilitiesFree(privconn->caps);
virDomainObjListDeinit(&privconn->domains); virDomainObjListFree(privconn->domains);
conn->privateData = NULL; conn->privateData = NULL;
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
@ -1049,7 +1050,7 @@ parallelsListDomains(virConnectPtr conn, int *ids, int maxids)
int n; int n;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
n = virDomainObjListGetActiveIDs(&privconn->domains, ids, maxids); n = virDomainObjListGetActiveIDs(privconn->domains, ids, maxids);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
return n; return n;
@ -1062,7 +1063,7 @@ parallelsNumOfDomains(virConnectPtr conn)
int count; int count;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
count = virDomainObjListNumOfDomains(&privconn->domains, 1); count = virDomainObjListNumOfDomains(privconn->domains, 1);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
return count; return count;
@ -1076,7 +1077,7 @@ parallelsListDefinedDomains(virConnectPtr conn, char **const names, int maxnames
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
memset(names, 0, sizeof(*names) * maxnames); memset(names, 0, sizeof(*names) * maxnames);
n = virDomainObjListGetInactiveNames(&privconn->domains, names, n = virDomainObjListGetInactiveNames(privconn->domains, names,
maxnames); maxnames);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
@ -1090,7 +1091,7 @@ parallelsNumOfDefinedDomains(virConnectPtr conn)
int count; int count;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
count = virDomainObjListNumOfDomains(&privconn->domains, 0); count = virDomainObjListNumOfDomains(privconn->domains, 0);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
return count; return count;
@ -1106,7 +1107,7 @@ parallelsListAllDomains(virConnectPtr conn,
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1); virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
ret = virDomainList(conn, privconn->domains.objs, domains, flags); ret = virDomainObjListExport(privconn->domains, conn, domains, flags);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
return ret; return ret;
@ -1120,7 +1121,7 @@ parallelsLookupDomainByID(virConnectPtr conn, int id)
virDomainObjPtr dom; virDomainObjPtr dom;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
dom = virDomainFindByID(&privconn->domains, id); dom = virDomainObjListFindByID(privconn->domains, id);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
if (dom == NULL) { if (dom == NULL) {
@ -1146,7 +1147,7 @@ parallelsLookupDomainByUUID(virConnectPtr conn, const unsigned char *uuid)
virDomainObjPtr dom; virDomainObjPtr dom;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
dom = virDomainFindByUUID(&privconn->domains, uuid); dom = virDomainObjListFindByUUID(privconn->domains, uuid);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
if (dom == NULL) { if (dom == NULL) {
@ -1175,7 +1176,7 @@ parallelsLookupDomainByName(virConnectPtr conn, const char *name)
virDomainObjPtr dom; virDomainObjPtr dom;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
dom = virDomainFindByName(&privconn->domains, name); dom = virDomainObjListFindByName(privconn->domains, name);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
if (dom == NULL) { if (dom == NULL) {
@ -1202,7 +1203,7 @@ parallelsGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
int ret = -1; int ret = -1;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
privdom = virDomainFindByUUID(&privconn->domains, domain->uuid); privdom = virDomainObjListFindByUUID(privconn->domains, domain->uuid);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -1232,7 +1233,7 @@ parallelsGetOSType(virDomainPtr domain)
char *ret = NULL; char *ret = NULL;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
privdom = virDomainFindByUUID(&privconn->domains, domain->uuid); privdom = virDomainObjListFindByUUID(privconn->domains, domain->uuid);
if (privdom == NULL) { if (privdom == NULL) {
parallelsDomNotFoundError(domain); parallelsDomNotFoundError(domain);
goto cleanup; goto cleanup;
@ -1256,7 +1257,7 @@ parallelsDomainIsPersistent(virDomainPtr domain)
int ret = -1; int ret = -1;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
privdom = virDomainFindByUUID(&privconn->domains, domain->uuid); privdom = virDomainObjListFindByUUID(privconn->domains, domain->uuid);
if (privdom == NULL) { if (privdom == NULL) {
parallelsDomNotFoundError(domain); parallelsDomNotFoundError(domain);
goto cleanup; goto cleanup;
@ -1281,7 +1282,7 @@ parallelsDomainGetState(virDomainPtr domain,
virCheckFlags(0, -1); virCheckFlags(0, -1);
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
privdom = virDomainFindByUUID(&privconn->domains, domain->uuid); privdom = virDomainObjListFindByUUID(privconn->domains, domain->uuid);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -1309,7 +1310,7 @@ parallelsDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
/* Flags checked by virDomainDefFormat */ /* Flags checked by virDomainDefFormat */
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
privdom = virDomainFindByUUID(&privconn->domains, domain->uuid); privdom = virDomainObjListFindByUUID(privconn->domains, domain->uuid);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -1336,7 +1337,7 @@ parallelsDomainGetAutostart(virDomainPtr domain, int *autostart)
int ret = -1; int ret = -1;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
privdom = virDomainFindByUUID(&privconn->domains, domain->uuid); privdom = virDomainObjListFindByUUID(privconn->domains, domain->uuid);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -1368,7 +1369,7 @@ parallelsDomainChangeState(virDomainPtr domain,
int ret = -1; int ret = -1;
parallelsDriverLock(privconn); parallelsDriverLock(privconn);
privdom = virDomainFindByUUID(&privconn->domains, domain->uuid); privdom = virDomainObjListFindByUUID(privconn->domains, domain->uuid);
parallelsDriverUnlock(privconn); parallelsDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2334,13 +2335,13 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml)
goto cleanup; goto cleanup;
} }
if ((dupVM = virDomainObjIsDuplicate(&privconn->domains, def, 0)) < 0) { if ((dupVM = virDomainObjListIsDuplicate(privconn->domains, def, 0)) < 0) {
virReportError(VIR_ERR_INVALID_ARG, "%s", _("Already exists")); virReportError(VIR_ERR_INVALID_ARG, "%s", _("Already exists"));
goto cleanup; goto cleanup;
} }
if (dupVM == 1) { if (dupVM == 1) {
olddom = virDomainFindByUUID(&privconn->domains, def->uuid); olddom = virDomainObjListFindByUUID(privconn->domains, def->uuid);
} else { } else {
if (STREQ(def->os.type, "hvm")) { if (STREQ(def->os.type, "hvm")) {
if (parallelsCreateVm(conn, def)) if (parallelsCreateVm(conn, def))
@ -2355,7 +2356,7 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml)
} }
if (parallelsLoadDomains(privconn, def->name)) if (parallelsLoadDomains(privconn, def->name))
goto cleanup; goto cleanup;
olddom = virDomainFindByName(&privconn->domains, def->name); olddom = virDomainObjListFindByName(privconn->domains, def->name);
if (!olddom) { if (!olddom) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
_("Domain for '%s' is not defined after creation"), _("Domain for '%s' is not defined after creation"),
@ -2370,8 +2371,9 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml)
} }
virObjectUnlock(olddom); virObjectUnlock(olddom);
if (!(dom = virDomainAssignDef(privconn->caps, if (!(dom = virDomainObjListAdd(privconn->domains,
&privconn->domains, def, false))) { privconn->caps,
def, false))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Can't allocate domobj")); _("Can't allocate domobj"));
goto cleanup; goto cleanup;

View File

@ -458,7 +458,7 @@ static int parallelsLoadPools(virConnectPtr conn)
data.conn = conn; data.conn = conn;
data.failed = false; data.failed = false;
virHashForEach(privconn->domains.objs, parallelsPoolsAdd, &data); virHashForEach(privconn->domains->objs, parallelsPoolsAdd, &data);
if (data.failed) if (data.failed)
goto error; goto error;

View File

@ -39,7 +39,7 @@
struct _parallelsConn { struct _parallelsConn {
virMutex lock; virMutex lock;
virDomainObjList domains; virDomainObjListPtr domains;
virStoragePoolObjList pools; virStoragePoolObjList pools;
virNetworkObjList networks; virNetworkObjList networks;
virCapsPtr caps; virCapsPtr caps;

View File

@ -673,7 +673,7 @@ qemuDriverCloseCallbackRun(void *payload,
*/ */
virUUIDFormat(uuid, uuidstr); virUUIDFormat(uuid, uuidstr);
if (!(dom = virDomainFindByUUID(&data->driver->domains, uuid))) { if (!(dom = virDomainObjListFindByUUID(data->driver->domains, uuid))) {
VIR_DEBUG("No domain object with UUID %s", uuidstr); VIR_DEBUG("No domain object with UUID %s", uuidstr);
return; return;
} }

View File

@ -169,7 +169,7 @@ struct _virQEMUDriver {
virStateInhibitCallback inhibitCallback; virStateInhibitCallback inhibitCallback;
void *inhibitOpaque; void *inhibitOpaque;
virDomainObjList domains; virDomainObjListPtr domains;
char *qemuImgBinary; char *qemuImgBinary;

View File

@ -1882,7 +1882,7 @@ qemuDomainRemoveInactive(virQEMUDriverPtr driver,
VIR_WARN("unable to remove snapshot directory %s", snapDir); VIR_WARN("unable to remove snapshot directory %s", snapDir);
VIR_FREE(snapDir); VIR_FREE(snapDir);
} }
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
virObjectUnref(cfg); virObjectUnref(cfg);
} }

View File

@ -168,7 +168,7 @@ static int
qemuVMFilterRebuild(virConnectPtr conn ATTRIBUTE_UNUSED, qemuVMFilterRebuild(virConnectPtr conn ATTRIBUTE_UNUSED,
virHashIterator iter, void *data) virHashIterator iter, void *data)
{ {
virHashForEach(qemu_driver->domains.objs, iter, data); virHashForEach(qemu_driver->domains->objs, iter, data);
return 0; return 0;
} }
@ -206,7 +206,7 @@ qemuDomObjFromDomainDriver(virDomainPtr domain, virQEMUDriverPtr *drv)
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, domain->uuid); vm = virDomainObjListFindByUUID(driver->domains, domain->uuid);
if (!vm) { if (!vm) {
virUUIDFormat(domain->uuid, uuidstr); virUUIDFormat(domain->uuid, uuidstr);
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
@ -336,7 +336,7 @@ qemuAutostartDomains(virQEMUDriverPtr driver)
struct qemuAutostartData data = { driver, conn }; struct qemuAutostartData data = { driver, conn };
qemuDriverLock(driver); qemuDriverLock(driver);
virHashForEach(driver->domains.objs, qemuAutostartDomain, &data); virHashForEach(driver->domains->objs, qemuAutostartDomain, &data);
qemuDriverUnlock(driver); qemuDriverUnlock(driver);
if (conn) if (conn)
@ -681,8 +681,8 @@ qemuStartup(bool privileged,
/* Don't have a dom0 so start from 1 */ /* Don't have a dom0 so start from 1 */
qemu_driver->nextvmid = 1; qemu_driver->nextvmid = 1;
if (virDomainObjListInit(&qemu_driver->domains) < 0) if (!(qemu_driver->domains = virDomainObjListNew()))
goto out_of_memory; goto error;
/* Init domain events */ /* Init domain events */
qemu_driver->domainEventState = virDomainEventStateNew(); qemu_driver->domainEventState = virDomainEventStateNew();
@ -863,42 +863,42 @@ qemuStartup(bool privileged,
goto error; goto error;
/* Get all the running persistent or transient configs first */ /* Get all the running persistent or transient configs first */
if (virDomainLoadAllConfigs(qemu_driver->caps, if (virDomainObjListLoadAllConfigs(qemu_driver->domains,
&qemu_driver->domains, qemu_driver->caps,
cfg->stateDir, cfg->stateDir,
NULL, NULL,
1, QEMU_EXPECTED_VIRT_TYPES, 1, QEMU_EXPECTED_VIRT_TYPES,
NULL, NULL) < 0) NULL, NULL) < 0)
goto error; goto error;
/* find the maximum ID from active and transient configs to initialize /* find the maximum ID from active and transient configs to initialize
* the driver with. This is to avoid race between autostart and reconnect * the driver with. This is to avoid race between autostart and reconnect
* threads */ * threads */
virHashForEach(qemu_driver->domains.objs, virHashForEach(qemu_driver->domains->objs,
qemuDomainFindMaxID, qemuDomainFindMaxID,
&qemu_driver->nextvmid); &qemu_driver->nextvmid);
virHashForEach(qemu_driver->domains.objs, qemuDomainNetsRestart, NULL); virHashForEach(qemu_driver->domains->objs, qemuDomainNetsRestart, NULL);
conn = virConnectOpen(cfg->uri); conn = virConnectOpen(cfg->uri);
qemuProcessReconnectAll(conn, qemu_driver); qemuProcessReconnectAll(conn, qemu_driver);
/* Then inactive persistent configs */ /* Then inactive persistent configs */
if (virDomainLoadAllConfigs(qemu_driver->caps, if (virDomainObjListLoadAllConfigs(qemu_driver->domains,
&qemu_driver->domains, qemu_driver->caps,
cfg->configDir, cfg->configDir,
cfg->autostartDir, cfg->autostartDir,
0, QEMU_EXPECTED_VIRT_TYPES, 0, QEMU_EXPECTED_VIRT_TYPES,
NULL, NULL) < 0) NULL, NULL) < 0)
goto error; goto error;
virHashForEach(qemu_driver->domains.objs, virHashForEach(qemu_driver->domains->objs,
qemuDomainSnapshotLoad, qemuDomainSnapshotLoad,
cfg->snapshotDir); cfg->snapshotDir);
virHashForEach(qemu_driver->domains.objs, virHashForEach(qemu_driver->domains->objs,
qemuDomainManagedSaveLoad, qemuDomainManagedSaveLoad,
qemu_driver); qemu_driver);
@ -959,12 +959,12 @@ qemuReload(void) {
qemuDriverLock(qemu_driver); qemuDriverLock(qemu_driver);
cfg = virQEMUDriverGetConfig(qemu_driver); cfg = virQEMUDriverGetConfig(qemu_driver);
virDomainLoadAllConfigs(qemu_driver->caps, virDomainObjListLoadAllConfigs(qemu_driver->domains,
&qemu_driver->domains, qemu_driver->caps,
cfg->configDir, cfg->configDir,
cfg->autostartDir, cfg->autostartDir,
0, QEMU_EXPECTED_VIRT_TYPES, 0, QEMU_EXPECTED_VIRT_TYPES,
qemuNotifyLoadDomain, qemu_driver); qemuNotifyLoadDomain, qemu_driver);
qemuDriverUnlock(qemu_driver); qemuDriverUnlock(qemu_driver);
virObjectUnref(cfg); virObjectUnref(cfg);
return 0; return 0;
@ -1054,7 +1054,7 @@ qemuShutdown(void) {
virCapabilitiesFree(qemu_driver->caps); virCapabilitiesFree(qemu_driver->caps);
qemuCapsCacheFree(qemu_driver->capsCache); qemuCapsCacheFree(qemu_driver->capsCache);
virDomainObjListDeinit(&qemu_driver->domains); virDomainObjListFree(qemu_driver->domains);
virObjectUnref(qemu_driver->remotePorts); virObjectUnref(qemu_driver->remotePorts);
virSysinfoDefFree(qemu_driver->hostsysinfo); virSysinfoDefFree(qemu_driver->hostsysinfo);
@ -1379,7 +1379,7 @@ static virDomainPtr qemuDomainLookupByID(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByID(&driver->domains, id); vm = virDomainObjListFindByID(driver->domains, id);
qemuDriverUnlock(driver); qemuDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1404,7 +1404,7 @@ static virDomainPtr qemuDomainLookupByUUID(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, uuid); vm = virDomainObjListFindByUUID(driver->domains, uuid);
qemuDriverUnlock(driver); qemuDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1431,7 +1431,7 @@ static virDomainPtr qemuDomainLookupByName(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByName(&driver->domains, name); vm = virDomainObjListFindByName(driver->domains, name);
qemuDriverUnlock(driver); qemuDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1521,7 +1521,7 @@ static int qemuListDomains(virConnectPtr conn, int *ids, int nids) {
int n; int n;
qemuDriverLock(driver); qemuDriverLock(driver);
n = virDomainObjListGetActiveIDs(&driver->domains, ids, nids); n = virDomainObjListGetActiveIDs(driver->domains, ids, nids);
qemuDriverUnlock(driver); qemuDriverUnlock(driver);
return n; return n;
@ -1532,7 +1532,7 @@ static int qemuNumDomains(virConnectPtr conn) {
int n; int n;
qemuDriverLock(driver); qemuDriverLock(driver);
n = virDomainObjListNumOfDomains(&driver->domains, 1); n = virDomainObjListNumOfDomains(driver->domains, 1);
qemuDriverUnlock(driver); qemuDriverUnlock(driver);
return n; return n;
@ -1589,7 +1589,7 @@ static virDomainPtr qemuDomainCreate(virConnectPtr conn, const char *xml,
if (virSecurityManagerVerify(driver->securityManager, def) < 0) if (virSecurityManagerVerify(driver->securityManager, def) < 0)
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&driver->domains, def, 1) < 0) if (virDomainObjListIsDuplicate(driver->domains, def, 1) < 0)
goto cleanup; goto cleanup;
if (!(caps = qemuCapsCacheLookup(driver->capsCache, def->emulator))) if (!(caps = qemuCapsCacheLookup(driver->capsCache, def->emulator)))
@ -1601,9 +1601,9 @@ static virDomainPtr qemuDomainCreate(virConnectPtr conn, const char *xml,
if (qemuDomainAssignAddresses(def, caps, NULL) < 0) if (qemuDomainAssignAddresses(def, caps, NULL) < 0)
goto cleanup; goto cleanup;
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, driver->caps,
def, false))) def, false)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
@ -1670,7 +1670,7 @@ static int qemuDomainSuspend(virDomainPtr dom) {
virQEMUDriverConfigPtr cfg = NULL; virQEMUDriverConfigPtr cfg = NULL;
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -1753,7 +1753,7 @@ static int qemuDomainResume(virDomainPtr dom) {
virQEMUDriverConfigPtr cfg = NULL; virQEMUDriverConfigPtr cfg = NULL;
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -2048,7 +2048,7 @@ qemuDomainDestroyFlags(virDomainPtr dom,
virCheckFlags(VIR_DOMAIN_DESTROY_GRACEFUL, -1); virCheckFlags(VIR_DOMAIN_DESTROY_GRACEFUL, -1);
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -2275,7 +2275,7 @@ static int qemuDomainInjectNMI(virDomainPtr domain, unsigned int flags)
virCheckFlags(0, -1); virCheckFlags(0, -1);
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, domain->uuid); vm = virDomainObjListFindByUUID(driver->domains, domain->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(domain->uuid, uuidstr); virUUIDFormat(domain->uuid, uuidstr);
@ -3031,7 +3031,7 @@ qemuDomainSaveFlags(virDomainPtr dom, const char *path, const char *dxml,
} }
} }
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -3341,7 +3341,7 @@ static int qemuDomainCoreDump(virDomainPtr dom,
VIR_DUMP_MEMORY_ONLY, -1); VIR_DUMP_MEMORY_ONLY, -1);
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -4525,7 +4525,7 @@ static int qemuDomainGetSecurityLabel(virDomainPtr dom, virSecurityLabelPtr secl
int ret = -1; int ret = -1;
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
memset(seclabel, 0, sizeof(*seclabel)); memset(seclabel, 0, sizeof(*seclabel));
@ -4585,7 +4585,7 @@ static int qemuDomainGetSecurityLabelList(virDomainPtr dom,
/* Protect domain data with qemu lock */ /* Protect domain data with qemu lock */
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -4990,13 +4990,13 @@ qemuDomainRestoreFlags(virConnectPtr conn,
if (fd < 0) if (fd < 0)
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&driver->domains, def, 1) < 0) if (virDomainObjListIsDuplicate(driver->domains, def, 1) < 0)
goto cleanup; goto cleanup;
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, driver->caps,
def, true))) { def, true))) {
/* virDomainAssignDef already set the error */ /* virDomainLitsAdd already set the error */
goto cleanup; goto cleanup;
} }
def = NULL; def = NULL;
@ -5203,7 +5203,7 @@ static char *qemuDomainGetXMLDesc(virDomainPtr dom,
/* Flags checked by virDomainDefFormat */ /* Flags checked by virDomainDefFormat */
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -5437,7 +5437,7 @@ static int qemuListDefinedDomains(virConnectPtr conn,
int n; int n;
qemuDriverLock(driver); qemuDriverLock(driver);
n = virDomainObjListGetInactiveNames(&driver->domains, names, nnames); n = virDomainObjListGetInactiveNames(driver->domains, names, nnames);
qemuDriverUnlock(driver); qemuDriverUnlock(driver);
return n; return n;
} }
@ -5447,7 +5447,7 @@ static int qemuNumDefinedDomains(virConnectPtr conn) {
int n; int n;
qemuDriverLock(driver); qemuDriverLock(driver);
n = virDomainObjListNumOfDomains(&driver->domains, 0); n = virDomainObjListNumOfDomains(driver->domains, 0);
qemuDriverUnlock(driver); qemuDriverUnlock(driver);
return n; return n;
@ -5544,7 +5544,7 @@ qemuDomainStartWithFlags(virDomainPtr dom, unsigned int flags)
VIR_DOMAIN_START_FORCE_BOOT, -1); VIR_DOMAIN_START_FORCE_BOOT, -1);
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -5606,7 +5606,7 @@ static virDomainPtr qemuDomainDefine(virConnectPtr conn, const char *xml) {
if (virSecurityManagerVerify(driver->securityManager, def) < 0) if (virSecurityManagerVerify(driver->securityManager, def) < 0)
goto cleanup; goto cleanup;
if ((dupVM = virDomainObjIsDuplicate(&driver->domains, def, 0)) < 0) if ((dupVM = virDomainObjListIsDuplicate(driver->domains, def, 0)) < 0)
goto cleanup; goto cleanup;
if (!(caps = qemuCapsCacheLookup(driver->capsCache, def->emulator))) if (!(caps = qemuCapsCacheLookup(driver->capsCache, def->emulator)))
@ -5621,9 +5621,9 @@ static virDomainPtr qemuDomainDefine(virConnectPtr conn, const char *xml) {
/* We need to differentiate two cases: /* We need to differentiate two cases:
* a) updating an existing domain - must preserve previous definition * a) updating an existing domain - must preserve previous definition
* so we can roll back if something fails * so we can roll back if something fails
* b) defining a brand new domain - virDomainAssignDef is just sufficient * b) defining a brand new domain - virDomainObjListAdd is just sufficient
*/ */
if ((vm = virDomainFindByUUID(&driver->domains, def->uuid))) { if ((vm = virDomainObjListFindByUUID(driver->domains, def->uuid))) {
if (virDomainObjIsActive(vm)) { if (virDomainObjIsActive(vm)) {
def_backup = vm->newDef; def_backup = vm->newDef;
vm->newDef = def; vm->newDef = def;
@ -5632,9 +5632,9 @@ static virDomainPtr qemuDomainDefine(virConnectPtr conn, const char *xml) {
vm->def = def; vm->def = def;
} }
} else { } else {
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, driver->caps,
def, false))) { def, false))) {
goto cleanup; goto cleanup;
} }
} }
@ -5707,7 +5707,7 @@ qemuDomainUndefineFlags(virDomainPtr dom,
qemuDriverLock(driver); qemuDriverLock(driver);
cfg = virQEMUDriverGetConfig(driver); cfg = virQEMUDriverGetConfig(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -6433,7 +6433,7 @@ qemuDomainModifyDeviceFlags(virDomainPtr dom, const char *xml,
affect = flags & (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG); affect = flags & (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG);
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -6634,7 +6634,7 @@ static int qemuDomainSetAutostart(virDomainPtr dom,
virQEMUDriverConfigPtr cfg = NULL; virQEMUDriverConfigPtr cfg = NULL;
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
cfg = virQEMUDriverGetConfig(driver); cfg = virQEMUDriverGetConfig(driver);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -6915,7 +6915,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
return -1; return -1;
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
_("No such domain %s"), dom->uuid); _("No such domain %s"), dom->uuid);
@ -7070,7 +7070,7 @@ qemuDomainGetBlkioParameters(virDomainPtr dom,
* that can't parse it. */ * that can't parse it. */
flags &= ~VIR_TYPED_PARAM_STRING_OKAY; flags &= ~VIR_TYPED_PARAM_STRING_OKAY;
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -7266,7 +7266,7 @@ qemuDomainSetMemoryParameters(virDomainPtr dom,
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -7426,7 +7426,7 @@ qemuDomainGetMemoryParameters(virDomainPtr dom,
/* We don't return strings, and thus trivially support this flag. */ /* We don't return strings, and thus trivially support this flag. */
flags &= ~VIR_TYPED_PARAM_STRING_OKAY; flags &= ~VIR_TYPED_PARAM_STRING_OKAY;
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -7589,7 +7589,7 @@ qemuDomainSetNumaParameters(virDomainPtr dom,
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -7741,7 +7741,7 @@ qemuDomainGetNumaParameters(virDomainPtr dom,
* that can't parse it. */ * that can't parse it. */
flags &= ~VIR_TYPED_PARAM_STRING_OKAY; flags &= ~VIR_TYPED_PARAM_STRING_OKAY;
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -7947,7 +7947,7 @@ qemuSetSchedulerParametersFlags(virDomainPtr dom,
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -8233,7 +8233,7 @@ qemuGetSchedulerParametersFlags(virDomainPtr dom,
cpu_bw_status = !!rc; cpu_bw_status = !!rc;
} }
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -8764,7 +8764,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
return -1; return -1;
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -8930,7 +8930,7 @@ qemuDomainGetInterfaceParameters(virDomainPtr dom,
flags &= ~VIR_TYPED_PARAM_STRING_OKAY; flags &= ~VIR_TYPED_PARAM_STRING_OKAY;
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
@ -9594,7 +9594,7 @@ qemuDomainMigratePerform(virDomainPtr dom,
goto cleanup; goto cleanup;
} }
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -9642,7 +9642,7 @@ qemuDomainMigrateFinish2(virConnectPtr dconn,
virCheckFlags(QEMU_MIGRATION_FLAGS, NULL); virCheckFlags(QEMU_MIGRATION_FLAGS, NULL);
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByName(&driver->domains, dname); vm = virDomainObjListFindByName(driver->domains, dname);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching name '%s'"), dname); _("no domain with matching name '%s'"), dname);
@ -9684,7 +9684,7 @@ qemuDomainMigrateBegin3(virDomainPtr domain,
virCheckFlags(QEMU_MIGRATION_FLAGS, NULL); virCheckFlags(QEMU_MIGRATION_FLAGS, NULL);
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, domain->uuid); vm = virDomainObjListFindByUUID(driver->domains, domain->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(domain->uuid, uuidstr); virUUIDFormat(domain->uuid, uuidstr);
@ -9871,7 +9871,7 @@ qemuDomainMigratePerform3(virDomainPtr dom,
virCheckFlags(QEMU_MIGRATION_FLAGS, -1); virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -9910,7 +9910,7 @@ qemuDomainMigrateFinish3(virConnectPtr dconn,
virCheckFlags(QEMU_MIGRATION_FLAGS, NULL); virCheckFlags(QEMU_MIGRATION_FLAGS, NULL);
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByName(&driver->domains, dname); vm = virDomainObjListFindByName(driver->domains, dname);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching name '%s'"), dname); _("no domain with matching name '%s'"), dname);
@ -9943,7 +9943,7 @@ qemuDomainMigrateConfirm3(virDomainPtr domain,
virCheckFlags(QEMU_MIGRATION_FLAGS, -1); virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, domain->uuid); vm = virDomainObjListFindByUUID(driver->domains, domain->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(domain->uuid, uuidstr); virUUIDFormat(domain->uuid, uuidstr);
@ -11355,7 +11355,7 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain,
qemuDriverLock(driver); qemuDriverLock(driver);
virUUIDFormat(domain->uuid, uuidstr); virUUIDFormat(domain->uuid, uuidstr);
vm = virDomainFindByUUID(&driver->domains, domain->uuid); vm = virDomainObjListFindByUUID(driver->domains, domain->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr); _("no domain with matching uuid '%s'"), uuidstr);
@ -12058,7 +12058,7 @@ static int qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
qemuDriverLock(driver); qemuDriverLock(driver);
virUUIDFormat(snapshot->domain->uuid, uuidstr); virUUIDFormat(snapshot->domain->uuid, uuidstr);
vm = virDomainFindByUUID(&driver->domains, snapshot->domain->uuid); vm = virDomainObjListFindByUUID(driver->domains, snapshot->domain->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr); _("no domain with matching uuid '%s'"), uuidstr);
@ -12425,7 +12425,7 @@ static int qemuDomainSnapshotDelete(virDomainSnapshotPtr snapshot,
qemuDriverLock(driver); qemuDriverLock(driver);
virUUIDFormat(snapshot->domain->uuid, uuidstr); virUUIDFormat(snapshot->domain->uuid, uuidstr);
vm = virDomainFindByUUID(&driver->domains, snapshot->domain->uuid); vm = virDomainObjListFindByUUID(driver->domains, snapshot->domain->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr); _("no domain with matching uuid '%s'"), uuidstr);
@ -12615,7 +12615,7 @@ static virDomainPtr qemuDomainAttach(virConnectPtr conn,
if (!(caps = qemuCapsCacheLookup(driver->capsCache, def->emulator))) if (!(caps = qemuCapsCacheLookup(driver->capsCache, def->emulator)))
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&driver->domains, def, 1) < 0) if (virDomainObjListIsDuplicate(driver->domains, def, 1) < 0)
goto cleanup; goto cleanup;
if (qemuCanonicalizeMachine(def, caps) < 0) if (qemuCanonicalizeMachine(def, caps) < 0)
@ -12624,9 +12624,9 @@ static virDomainPtr qemuDomainAttach(virConnectPtr conn,
if (qemuDomainAssignAddresses(def, caps, NULL) < 0) if (qemuDomainAssignAddresses(def, caps, NULL) < 0)
goto cleanup; goto cleanup;
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, driver->caps,
def, false))) def, false)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
@ -13027,7 +13027,7 @@ qemuDomainBlockJobImpl(virDomainPtr dom, const char *path, const char *base,
qemuDriverLock(driver); qemuDriverLock(driver);
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr); _("no domain with matching uuid '%s'"), uuidstr);
@ -13585,7 +13585,7 @@ qemuDomainOpenGraphics(virDomainPtr dom,
qemuDriverLock(driver); qemuDriverLock(driver);
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr); _("no domain with matching uuid '%s'"), uuidstr);
@ -13681,7 +13681,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
qemuDriverLock(driver); qemuDriverLock(driver);
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr); _("no domain with matching uuid '%s'"), uuidstr);
@ -13839,7 +13839,7 @@ qemuDomainGetBlockIoTune(virDomainPtr dom,
qemuDriverLock(driver); qemuDriverLock(driver);
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr); _("no domain with matching uuid '%s'"), uuidstr);
@ -14416,7 +14416,7 @@ qemuDomainGetCPUStats(virDomainPtr domain,
qemuDriverLock(driver); qemuDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, domain->uuid); vm = virDomainObjListFindByUUID(driver->domains, domain->uuid);
if (vm == NULL) { if (vm == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
_("No such domain %s"), domain->uuid); _("No such domain %s"), domain->uuid);
@ -14613,7 +14613,7 @@ qemuListAllDomains(virConnectPtr conn,
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1); virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
qemuDriverLock(driver); qemuDriverLock(driver);
ret = virDomainList(conn, driver->domains.objs, domains, flags); ret = virDomainObjListExport(driver->domains, conn, domains, flags);
qemuDriverUnlock(driver); qemuDriverUnlock(driver);
return ret; return ret;

View File

@ -1639,12 +1639,12 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver,
} }
} }
if (virDomainObjIsDuplicate(&driver->domains, def, 1) < 0) if (virDomainObjListIsDuplicate(driver->domains, def, 1) < 0)
goto cleanup; goto cleanup;
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, driver->caps,
def, true))) { def, true))) {
/* virDomainAssignDef already set the error */ /* virDomainAssignDef already set the error */
goto cleanup; goto cleanup;
} }

View File

@ -3446,7 +3446,7 @@ void
qemuProcessReconnectAll(virConnectPtr conn, virQEMUDriverPtr driver) qemuProcessReconnectAll(virConnectPtr conn, virQEMUDriverPtr driver)
{ {
struct qemuProcessReconnectData data = {.conn = conn, .driver = driver}; struct qemuProcessReconnectData data = {.conn = conn, .driver = driver};
virHashForEach(driver->domains.objs, qemuProcessReconnectHelper, &data); virHashForEach(driver->domains->objs, qemuProcessReconnectHelper, &data);
} }
int int

View File

@ -83,7 +83,7 @@ struct _testConn {
int nextDomID; int nextDomID;
virCapsPtr caps; virCapsPtr caps;
virNodeInfo nodeInfo; virNodeInfo nodeInfo;
virDomainObjList domains; virDomainObjListPtr domains;
virNetworkObjList networks; virNetworkObjList networks;
virInterfaceObjList ifaces; virInterfaceObjList ifaces;
bool transaction_running; bool transaction_running;
@ -546,7 +546,7 @@ static int testOpenDefault(virConnectPtr conn) {
testDriverLock(privconn); testDriverLock(privconn);
conn->privateData = privconn; conn->privateData = privconn;
if (virDomainObjListInit(&privconn->domains) < 0) if (!(privconn->domains = virDomainObjListNew()))
goto error; goto error;
memmove(&privconn->nodeInfo, &defaultNodeInfo, sizeof(defaultNodeInfo)); memmove(&privconn->nodeInfo, &defaultNodeInfo, sizeof(defaultNodeInfo));
@ -582,8 +582,9 @@ static int testOpenDefault(virConnectPtr conn) {
if (testDomainGenerateIfnames(domdef) < 0) if (testDomainGenerateIfnames(domdef) < 0)
goto error; goto error;
if (!(domobj = virDomainAssignDef(privconn->caps, if (!(domobj = virDomainObjListAdd(privconn->domains,
&privconn->domains, domdef, false))) privconn->caps,
domdef, false)))
goto error; goto error;
domdef = NULL; domdef = NULL;
@ -645,7 +646,7 @@ static int testOpenDefault(virConnectPtr conn) {
return VIR_DRV_OPEN_SUCCESS; return VIR_DRV_OPEN_SUCCESS;
error: error:
virDomainObjListDeinit(&privconn->domains); virDomainObjListFree(privconn->domains);
virNetworkObjListFree(&privconn->networks); virNetworkObjListFree(&privconn->networks);
virInterfaceObjListFree(&privconn->ifaces); virInterfaceObjListFree(&privconn->ifaces);
virStoragePoolObjListFree(&privconn->pools); virStoragePoolObjListFree(&privconn->pools);
@ -795,7 +796,7 @@ static int testOpenFromFile(virConnectPtr conn,
testDriverLock(privconn); testDriverLock(privconn);
conn->privateData = privconn; conn->privateData = privconn;
if (virDomainObjListInit(&privconn->domains) < 0) if (!(privconn->domains = virDomainObjListNew()))
goto error; goto error;
if (!(privconn->caps = testBuildCapabilities(conn))) if (!(privconn->caps = testBuildCapabilities(conn)))
@ -926,8 +927,9 @@ static int testOpenFromFile(virConnectPtr conn,
} }
if (testDomainGenerateIfnames(def) < 0 || if (testDomainGenerateIfnames(def) < 0 ||
!(dom = virDomainAssignDef(privconn->caps, !(dom = virDomainObjListAdd(privconn->domains,
&privconn->domains, def, false))) { privconn->caps,
def, false))) {
virDomainDefFree(def); virDomainDefFree(def);
goto error; goto error;
} }
@ -1113,7 +1115,7 @@ static int testOpenFromFile(virConnectPtr conn,
VIR_FREE(ifaces); VIR_FREE(ifaces);
VIR_FREE(pools); VIR_FREE(pools);
VIR_FREE(devs); VIR_FREE(devs);
virDomainObjListDeinit(&privconn->domains); virDomainObjListFree(privconn->domains);
virNetworkObjListFree(&privconn->networks); virNetworkObjListFree(&privconn->networks);
virInterfaceObjListFree(&privconn->ifaces); virInterfaceObjListFree(&privconn->ifaces);
virStoragePoolObjListFree(&privconn->pools); virStoragePoolObjListFree(&privconn->pools);
@ -1182,7 +1184,7 @@ static int testClose(virConnectPtr conn)
testConnPtr privconn = conn->privateData; testConnPtr privconn = conn->privateData;
testDriverLock(privconn); testDriverLock(privconn);
virCapabilitiesFree(privconn->caps); virCapabilitiesFree(privconn->caps);
virDomainObjListDeinit(&privconn->domains); virDomainObjListFree(privconn->domains);
virNodeDeviceObjListFree(&privconn->devs); virNodeDeviceObjListFree(&privconn->devs);
virNetworkObjListFree(&privconn->networks); virNetworkObjListFree(&privconn->networks);
virInterfaceObjListFree(&privconn->ifaces); virInterfaceObjListFree(&privconn->ifaces);
@ -1253,7 +1255,7 @@ static int testNumOfDomains(virConnectPtr conn)
int count; int count;
testDriverLock(privconn); testDriverLock(privconn);
count = virDomainObjListNumOfDomains(&privconn->domains, 1); count = virDomainObjListNumOfDomains(privconn->domains, 1);
testDriverUnlock(privconn); testDriverUnlock(privconn);
return count; return count;
@ -1266,7 +1268,7 @@ static int testDomainIsActive(virDomainPtr dom)
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
obj = virDomainFindByUUID(&privconn->domains, dom->uuid); obj = virDomainObjListFindByUUID(privconn->domains, dom->uuid);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (!obj) { if (!obj) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -1287,7 +1289,7 @@ static int testDomainIsPersistent(virDomainPtr dom)
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
obj = virDomainFindByUUID(&privconn->domains, dom->uuid); obj = virDomainObjListFindByUUID(privconn->domains, dom->uuid);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (!obj) { if (!obj) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -1324,13 +1326,14 @@ testDomainCreateXML(virConnectPtr conn, const char *xml,
VIR_DOMAIN_XML_INACTIVE)) == NULL) VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&privconn->domains, def, 1) < 0) if (virDomainObjListIsDuplicate(privconn->domains, def, 1) < 0)
goto cleanup; goto cleanup;
if (testDomainGenerateIfnames(def) < 0) if (testDomainGenerateIfnames(def) < 0)
goto cleanup; goto cleanup;
if (!(dom = virDomainAssignDef(privconn->caps, if (!(dom = virDomainObjListAdd(privconn->domains,
&privconn->domains, def, false))) privconn->caps,
def, false)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
@ -1364,7 +1367,7 @@ static virDomainPtr testLookupDomainByID(virConnectPtr conn,
virDomainObjPtr dom; virDomainObjPtr dom;
testDriverLock(privconn); testDriverLock(privconn);
dom = virDomainFindByID(&privconn->domains, id); dom = virDomainObjListFindByID(privconn->domains, id);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (dom == NULL) { if (dom == NULL) {
@ -1390,7 +1393,7 @@ static virDomainPtr testLookupDomainByUUID(virConnectPtr conn,
virDomainObjPtr dom ; virDomainObjPtr dom ;
testDriverLock(privconn); testDriverLock(privconn);
dom = virDomainFindByUUID(&privconn->domains, uuid); dom = virDomainObjListFindByUUID(privconn->domains, uuid);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (dom == NULL) { if (dom == NULL) {
@ -1416,7 +1419,7 @@ static virDomainPtr testLookupDomainByName(virConnectPtr conn,
virDomainObjPtr dom; virDomainObjPtr dom;
testDriverLock(privconn); testDriverLock(privconn);
dom = virDomainFindByName(&privconn->domains, name); dom = virDomainObjListFindByName(privconn->domains, name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (dom == NULL) { if (dom == NULL) {
@ -1442,7 +1445,7 @@ static int testListDomains(virConnectPtr conn,
int n; int n;
testDriverLock(privconn); testDriverLock(privconn);
n = virDomainObjListGetActiveIDs(&privconn->domains, ids, maxids); n = virDomainObjListGetActiveIDs(privconn->domains, ids, maxids);
testDriverUnlock(privconn); testDriverUnlock(privconn);
return n; return n;
@ -1456,8 +1459,8 @@ static int testDestroyDomain(virDomainPtr domain)
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
if (privdom == NULL) { if (privdom == NULL) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__); virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
@ -1470,8 +1473,8 @@ static int testDestroyDomain(virDomainPtr domain)
VIR_DOMAIN_EVENT_STOPPED_DESTROYED); VIR_DOMAIN_EVENT_STOPPED_DESTROYED);
if (!privdom->persistent) { if (!privdom->persistent) {
virDomainRemoveInactive(&privconn->domains, virDomainObjListRemove(privconn->domains,
privdom); privdom);
privdom = NULL; privdom = NULL;
} }
@ -1493,8 +1496,8 @@ static int testResumeDomain(virDomainPtr domain)
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -1535,8 +1538,8 @@ static int testPauseDomain(virDomainPtr domain)
int state; int state;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -1580,8 +1583,8 @@ static int testShutdownDomainFlags(virDomainPtr domain,
virCheckFlags(0, -1); virCheckFlags(0, -1);
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
if (privdom == NULL) { if (privdom == NULL) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__); virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
@ -1600,8 +1603,8 @@ static int testShutdownDomainFlags(virDomainPtr domain,
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN); VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
if (!privdom->persistent) { if (!privdom->persistent) {
virDomainRemoveInactive(&privconn->domains, virDomainObjListRemove(privconn->domains,
privdom); privdom);
privdom = NULL; privdom = NULL;
} }
@ -1630,8 +1633,8 @@ static int testRebootDomain(virDomainPtr domain,
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
if (privdom == NULL) { if (privdom == NULL) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__); virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
@ -1675,8 +1678,8 @@ static int testRebootDomain(virDomainPtr domain,
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN); VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
if (!privdom->persistent) { if (!privdom->persistent) {
virDomainRemoveInactive(&privconn->domains, virDomainObjListRemove(privconn->domains,
privdom); privdom);
privdom = NULL; privdom = NULL;
} }
} }
@ -1700,8 +1703,8 @@ static int testGetDomainInfo(virDomainPtr domain,
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -1741,8 +1744,8 @@ testDomainGetState(virDomainPtr domain,
virCheckFlags(0, -1); virCheckFlags(0, -1);
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -1781,8 +1784,8 @@ testDomainSaveFlags(virDomainPtr domain, const char *path,
} }
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
if (privdom == NULL) { if (privdom == NULL) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__); virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
@ -1839,8 +1842,8 @@ testDomainSaveFlags(virDomainPtr domain, const char *path,
VIR_DOMAIN_EVENT_STOPPED_SAVED); VIR_DOMAIN_EVENT_STOPPED_SAVED);
if (!privdom->persistent) { if (!privdom->persistent) {
virDomainRemoveInactive(&privconn->domains, virDomainObjListRemove(privconn->domains,
privdom); privdom);
privdom = NULL; privdom = NULL;
} }
@ -1940,13 +1943,14 @@ testDomainRestoreFlags(virConnectPtr conn,
if (!def) if (!def)
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&privconn->domains, def, 1) < 0) if (virDomainObjListIsDuplicate(privconn->domains, def, 1) < 0)
goto cleanup; goto cleanup;
if (testDomainGenerateIfnames(def) < 0) if (testDomainGenerateIfnames(def) < 0)
goto cleanup; goto cleanup;
if (!(dom = virDomainAssignDef(privconn->caps, if (!(dom = virDomainObjListAdd(privconn->domains,
&privconn->domains, def, true))) privconn->caps,
def, true)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
@ -1990,8 +1994,8 @@ static int testDomainCoreDump(virDomainPtr domain,
virCheckFlags(VIR_DUMP_CRASH, -1); virCheckFlags(VIR_DUMP_CRASH, -1);
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
if (privdom == NULL) { if (privdom == NULL) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__); virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
@ -2023,8 +2027,8 @@ static int testDomainCoreDump(virDomainPtr domain,
VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_CRASHED); VIR_DOMAIN_EVENT_STOPPED_CRASHED);
if (!privdom->persistent) { if (!privdom->persistent) {
virDomainRemoveInactive(&privconn->domains, virDomainObjListRemove(privconn->domains,
privdom); privdom);
privdom = NULL; privdom = NULL;
} }
} }
@ -2053,8 +2057,8 @@ static unsigned long long testGetMaxMemory(virDomainPtr domain) {
unsigned long long ret = 0; unsigned long long ret = 0;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2078,8 +2082,8 @@ static int testSetMaxMemory(virDomainPtr domain,
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2105,8 +2109,8 @@ static int testSetMemory(virDomainPtr domain,
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2141,7 +2145,7 @@ testDomainGetVcpusFlags(virDomainPtr domain, unsigned int flags)
VIR_DOMAIN_VCPU_MAXIMUM, -1); VIR_DOMAIN_VCPU_MAXIMUM, -1);
testDriverLock(privconn); testDriverLock(privconn);
vm = virDomainFindByUUID(&privconn->domains, domain->uuid); vm = virDomainObjListFindByUUID(privconn->domains, domain->uuid);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (!vm) { if (!vm) {
@ -2202,7 +2206,7 @@ testDomainSetVcpusFlags(virDomainPtr domain, unsigned int nrCpus,
} }
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByUUID(&privconn->domains, domain->uuid); privdom = virDomainObjListFindByUUID(privconn->domains, domain->uuid);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2285,7 +2289,7 @@ static int testDomainGetVcpus(virDomainPtr domain,
unsigned long long statbase; unsigned long long statbase;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, domain->name); privdom = virDomainObjListFindByName(privconn->domains, domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2371,7 +2375,7 @@ static int testDomainPinVcpu(virDomainPtr domain,
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, domain->name); privdom = virDomainObjListFindByName(privconn->domains, domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2425,8 +2429,8 @@ static char *testDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
/* Flags checked by virDomainDefFormat */ /* Flags checked by virDomainDefFormat */
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2451,7 +2455,7 @@ static int testNumOfDefinedDomains(virConnectPtr conn) {
int count; int count;
testDriverLock(privconn); testDriverLock(privconn);
count = virDomainObjListNumOfDomains(&privconn->domains, 0); count = virDomainObjListNumOfDomains(privconn->domains, 0);
testDriverUnlock(privconn); testDriverUnlock(privconn);
return count; return count;
@ -2466,7 +2470,7 @@ static int testListDefinedDomains(virConnectPtr conn,
testDriverLock(privconn); testDriverLock(privconn);
memset(names, 0, sizeof(*names)*maxnames); memset(names, 0, sizeof(*names)*maxnames);
n = virDomainObjListGetInactiveNames(&privconn->domains, names, maxnames); n = virDomainObjListGetInactiveNames(privconn->domains, names, maxnames);
testDriverUnlock(privconn); testDriverUnlock(privconn);
return n; return n;
@ -2487,13 +2491,14 @@ static virDomainPtr testDomainDefineXML(virConnectPtr conn,
VIR_DOMAIN_XML_INACTIVE)) == NULL) VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup; goto cleanup;
if ((dupVM = virDomainObjIsDuplicate(&privconn->domains, def, 0)) < 0) if ((dupVM = virDomainObjListIsDuplicate(privconn->domains, def, 0)) < 0)
goto cleanup; goto cleanup;
if (testDomainGenerateIfnames(def) < 0) if (testDomainGenerateIfnames(def) < 0)
goto cleanup; goto cleanup;
if (!(dom = virDomainAssignDef(privconn->caps, if (!(dom = virDomainObjListAdd(privconn->domains,
&privconn->domains, def, false))) privconn->caps,
def, false)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
dom->persistent = 1; dom->persistent = 1;
@ -2554,8 +2559,8 @@ static int testDomainCreateWithFlags(virDomainPtr domain, unsigned int flags) {
virCheckFlags(0, -1); virCheckFlags(0, -1);
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
if (privdom == NULL) { if (privdom == NULL) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__); virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
@ -2602,8 +2607,8 @@ static int testDomainUndefineFlags(virDomainPtr domain,
virCheckFlags(0, -1); virCheckFlags(0, -1);
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
if (privdom == NULL) { if (privdom == NULL) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__); virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
@ -2616,8 +2621,8 @@ static int testDomainUndefineFlags(virDomainPtr domain,
if (virDomainObjIsActive(privdom)) { if (virDomainObjIsActive(privdom)) {
privdom->persistent = 0; privdom->persistent = 0;
} else { } else {
virDomainRemoveInactive(&privconn->domains, virDomainObjListRemove(privconn->domains,
privdom); privdom);
privdom = NULL; privdom = NULL;
} }
@ -2645,8 +2650,8 @@ static int testDomainGetAutostart(virDomainPtr domain,
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2672,8 +2677,8 @@ static int testDomainSetAutostart(virDomainPtr domain,
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2718,8 +2723,8 @@ testDomainGetSchedulerParamsFlags(virDomainPtr domain,
virCheckFlags(0, -1); virCheckFlags(0, -1);
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2768,8 +2773,8 @@ testDomainSetSchedulerParamsFlags(virDomainPtr domain,
return -1; return -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2811,8 +2816,8 @@ static int testDomainBlockStats(virDomainPtr domain,
int ret = -1; int ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -2858,8 +2863,8 @@ static int testDomainInterfaceStats(virDomainPtr domain,
int i, found = 0, ret = -1; int i, found = 0, ret = -1;
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainObjListFindByName(privconn->domains,
domain->name); domain->name);
testDriverUnlock(privconn); testDriverUnlock(privconn);
if (privdom == NULL) { if (privdom == NULL) {
@ -5710,7 +5715,7 @@ static int testListAllDomains(virConnectPtr conn,
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1); virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
testDriverLock(privconn); testDriverLock(privconn);
ret = virDomainList(conn, privconn->domains.objs, domains, flags); ret = virDomainObjListExport(privconn->domains, conn, domains, flags);
testDriverUnlock(privconn); testDriverUnlock(privconn);
return ret; return ret;

View File

@ -51,7 +51,7 @@ struct uml_driver {
unsigned long umlVersion; unsigned long umlVersion;
int nextvmid; int nextvmid;
virDomainObjList domains; virDomainObjListPtr domains;
size_t nactive; size_t nactive;
char *configDir; char *configDir;

View File

@ -150,7 +150,7 @@ static int
umlVMFilterRebuild(virConnectPtr conn ATTRIBUTE_UNUSED, umlVMFilterRebuild(virConnectPtr conn ATTRIBUTE_UNUSED,
virHashIterator iter, void *data) virHashIterator iter, void *data)
{ {
virHashForEach(uml_driver->domains.objs, iter, data); virHashForEach(uml_driver->domains->objs, iter, data);
return 0; return 0;
} }
@ -223,7 +223,7 @@ umlAutostartConfigs(struct uml_driver *driver) {
struct umlAutostartData data = { driver, conn }; struct umlAutostartData data = { driver, conn };
umlDriverLock(driver); umlDriverLock(driver);
virHashForEach(driver->domains.objs, umlAutostartDomain, &data); virHashForEach(driver->domains->objs, umlAutostartDomain, &data);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (conn) if (conn)
@ -336,7 +336,7 @@ reread:
name = (char *)&(e->name); name = (char *)&(e->name);
dom = virDomainFindByName(&driver->domains, name); dom = virDomainObjListFindByName(driver->domains, name);
if (!dom) { if (!dom) {
continue; continue;
@ -355,8 +355,8 @@ reread:
VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN); VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
if (!dom->persistent) { if (!dom->persistent) {
virDomainRemoveInactive(&driver->domains, virDomainObjListRemove(driver->domains,
dom); dom);
dom = NULL; dom = NULL;
} }
} else if (e->mask & (IN_CREATE | IN_MODIFY)) { } else if (e->mask & (IN_CREATE | IN_MODIFY)) {
@ -389,8 +389,8 @@ reread:
VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_FAILED); VIR_DOMAIN_EVENT_STOPPED_FAILED);
if (!dom->persistent) { if (!dom->persistent) {
virDomainRemoveInactive(&driver->domains, virDomainObjListRemove(driver->domains,
dom); dom);
dom = NULL; dom = NULL;
} }
} else if (umlIdentifyChrPTY(driver, dom) < 0) { } else if (umlIdentifyChrPTY(driver, dom) < 0) {
@ -402,8 +402,8 @@ reread:
VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_FAILED); VIR_DOMAIN_EVENT_STOPPED_FAILED);
if (!dom->persistent) { if (!dom->persistent) {
virDomainRemoveInactive(&driver->domains, virDomainObjListRemove(driver->domains,
dom); dom);
dom = NULL; dom = NULL;
} }
} }
@ -450,7 +450,7 @@ umlStartup(bool privileged,
uml_driver->nextvmid = 1; uml_driver->nextvmid = 1;
uml_driver->inotifyWatch = -1; uml_driver->inotifyWatch = -1;
if (virDomainObjListInit(&uml_driver->domains) < 0) if (!(uml_driver->domains = virDomainObjListNew()))
goto error; goto error;
uml_driver->domainEventState = virDomainEventStateNew(); uml_driver->domainEventState = virDomainEventStateNew();
@ -535,12 +535,12 @@ umlStartup(bool privileged,
if (umlProcessAutoDestroyInit(uml_driver) < 0) if (umlProcessAutoDestroyInit(uml_driver) < 0)
goto error; goto error;
if (virDomainLoadAllConfigs(uml_driver->caps, if (virDomainObjListLoadAllConfigs(uml_driver->domains,
&uml_driver->domains, uml_driver->caps,
uml_driver->configDir, uml_driver->configDir,
uml_driver->autostartDir, uml_driver->autostartDir,
0, 1 << VIR_DOMAIN_VIRT_UML, 0, 1 << VIR_DOMAIN_VIRT_UML,
NULL, NULL) < 0) NULL, NULL) < 0)
goto error; goto error;
umlDriverUnlock(uml_driver); umlDriverUnlock(uml_driver);
@ -590,12 +590,12 @@ umlReload(void) {
return 0; return 0;
umlDriverLock(uml_driver); umlDriverLock(uml_driver);
virDomainLoadAllConfigs(uml_driver->caps, virDomainObjListLoadAllConfigs(uml_driver->domains,
&uml_driver->domains, uml_driver->caps,
uml_driver->configDir, uml_driver->configDir,
uml_driver->autostartDir, uml_driver->autostartDir,
0, 1 << VIR_DOMAIN_VIRT_UML, 0, 1 << VIR_DOMAIN_VIRT_UML,
umlNotifyLoadDomain, uml_driver); umlNotifyLoadDomain, uml_driver);
umlDriverUnlock(uml_driver); umlDriverUnlock(uml_driver);
return 0; return 0;
@ -635,9 +635,9 @@ umlShutdown(void) {
/* shutdown active VMs /* shutdown active VMs
* XXX allow them to stay around & reconnect */ * XXX allow them to stay around & reconnect */
virHashForEach(uml_driver->domains.objs, umlShutdownOneVM, uml_driver); virHashForEach(uml_driver->domains->objs, umlShutdownOneVM, uml_driver);
virDomainObjListDeinit(&uml_driver->domains); virDomainObjListFree(uml_driver->domains);
virDomainEventStateFree(uml_driver->domainEventState); virDomainEventStateFree(uml_driver->domainEventState);
@ -690,8 +690,8 @@ static void umlProcessAutoDestroyDom(void *payload,
return; return;
} }
if (!(dom = virDomainFindByUUID(&data->driver->domains, if (!(dom = virDomainObjListFindByUUID(data->driver->domains,
uuid))) { uuid))) {
VIR_DEBUG("No domain object to kill"); VIR_DEBUG("No domain object to kill");
return; return;
} }
@ -704,7 +704,7 @@ static void umlProcessAutoDestroyDom(void *payload,
VIR_DOMAIN_EVENT_STOPPED_DESTROYED); VIR_DOMAIN_EVENT_STOPPED_DESTROYED);
if (dom && !dom->persistent) if (dom && !dom->persistent)
virDomainRemoveInactive(&data->driver->domains, dom); virDomainObjListRemove(data->driver->domains, dom);
if (dom) if (dom)
virObjectUnlock(dom); virObjectUnlock(dom);
@ -1309,7 +1309,7 @@ static virDomainPtr umlDomainLookupByID(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByID(&driver->domains, id); vm = virDomainObjListFindByID(driver->domains, id);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1333,7 +1333,7 @@ static virDomainPtr umlDomainLookupByUUID(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, uuid); vm = virDomainObjListFindByUUID(driver->domains, uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1357,7 +1357,7 @@ static virDomainPtr umlDomainLookupByName(virConnectPtr conn,
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByName(&driver->domains, name); vm = virDomainObjListFindByName(driver->domains, name);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1382,7 +1382,7 @@ static int umlDomainIsActive(virDomainPtr dom)
int ret = -1; int ret = -1;
umlDriverLock(driver); umlDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!obj) { if (!obj) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -1404,7 +1404,7 @@ static int umlDomainIsPersistent(virDomainPtr dom)
int ret = -1; int ret = -1;
umlDriverLock(driver); umlDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!obj) { if (!obj) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -1425,7 +1425,7 @@ static int umlDomainIsUpdated(virDomainPtr dom)
int ret = -1; int ret = -1;
umlDriverLock(driver); umlDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!obj) { if (!obj) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -1469,7 +1469,7 @@ static int umlListDomains(virConnectPtr conn, int *ids, int nids) {
int n; int n;
umlDriverLock(driver); umlDriverLock(driver);
n = virDomainObjListGetActiveIDs(&driver->domains, ids, nids); n = virDomainObjListGetActiveIDs(driver->domains, ids, nids);
umlDriverUnlock(driver); umlDriverUnlock(driver);
return n; return n;
@ -1479,7 +1479,7 @@ static int umlNumDomains(virConnectPtr conn) {
int n; int n;
umlDriverLock(driver); umlDriverLock(driver);
n = virDomainObjListNumOfDomains(&driver->domains, 1); n = virDomainObjListNumOfDomains(driver->domains, 1);
umlDriverUnlock(driver); umlDriverUnlock(driver);
return n; return n;
@ -1500,20 +1500,20 @@ static virDomainPtr umlDomainCreate(virConnectPtr conn, const char *xml,
VIR_DOMAIN_XML_INACTIVE))) VIR_DOMAIN_XML_INACTIVE)))
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&driver->domains, def, 1) < 0) if (virDomainObjListIsDuplicate(driver->domains, def, 1) < 0)
goto cleanup; goto cleanup;
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, driver->caps,
def, false))) def, false)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
if (umlStartVMDaemon(conn, driver, vm, if (umlStartVMDaemon(conn, driver, vm,
(flags & VIR_DOMAIN_START_AUTODESTROY)) < 0) { (flags & VIR_DOMAIN_START_AUTODESTROY)) < 0) {
virDomainAuditStart(vm, "booted", false); virDomainAuditStart(vm, "booted", false);
virDomainRemoveInactive(&driver->domains, virDomainObjListRemove(driver->domains,
vm); vm);
vm = NULL; vm = NULL;
goto cleanup; goto cleanup;
} }
@ -1546,7 +1546,7 @@ static int umlDomainShutdownFlags(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByID(&driver->domains, dom->id); vm = virDomainObjListFindByID(driver->domains, dom->id);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
@ -1588,7 +1588,7 @@ umlDomainDestroyFlags(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByID(&driver->domains, dom->id); vm = virDomainObjListFindByID(driver->domains, dom->id);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching id %d"), dom->id); _("no domain with matching id %d"), dom->id);
@ -1601,8 +1601,8 @@ umlDomainDestroyFlags(virDomainPtr dom,
VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_DESTROYED); VIR_DOMAIN_EVENT_STOPPED_DESTROYED);
if (!vm->persistent) { if (!vm->persistent) {
virDomainRemoveInactive(&driver->domains, virDomainObjListRemove(driver->domains,
vm); vm);
vm = NULL; vm = NULL;
} }
ret = 0; ret = 0;
@ -1629,7 +1629,7 @@ static char *umlDomainGetOSType(virDomainPtr dom) {
char *type = NULL; char *type = NULL;
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, "%s", virReportError(VIR_ERR_NO_DOMAIN, "%s",
@ -1655,7 +1655,7 @@ umlDomainGetMaxMemory(virDomainPtr dom)
unsigned long long ret = 0; unsigned long long ret = 0;
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1680,7 +1680,7 @@ static int umlDomainSetMaxMemory(virDomainPtr dom, unsigned long newmax) {
int ret = -1; int ret = -1;
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1713,7 +1713,7 @@ static int umlDomainSetMemory(virDomainPtr dom, unsigned long newmem) {
int ret = -1; int ret = -1;
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1753,7 +1753,7 @@ static int umlDomainGetInfo(virDomainPtr dom,
int ret = -1; int ret = -1;
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1799,7 +1799,7 @@ umlDomainGetState(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1828,7 +1828,7 @@ static char *umlDomainGetXMLDesc(virDomainPtr dom,
/* Flags checked by virDomainDefFormat */ /* Flags checked by virDomainDefFormat */
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1854,7 +1854,7 @@ static int umlListDefinedDomains(virConnectPtr conn,
int n; int n;
umlDriverLock(driver); umlDriverLock(driver);
n = virDomainObjListGetInactiveNames(&driver->domains, names, nnames); n = virDomainObjListGetInactiveNames(driver->domains, names, nnames);
umlDriverUnlock(driver); umlDriverUnlock(driver);
return n; return n;
@ -1865,7 +1865,7 @@ static int umlNumDefinedDomains(virConnectPtr conn) {
int n; int n;
umlDriverLock(driver); umlDriverLock(driver);
n = virDomainObjListNumOfDomains(&driver->domains, 0); n = virDomainObjListNumOfDomains(driver->domains, 0);
umlDriverUnlock(driver); umlDriverUnlock(driver);
return n; return n;
@ -1881,7 +1881,7 @@ static int umlDomainStartWithFlags(virDomainPtr dom, unsigned int flags) {
virCheckFlags(VIR_DOMAIN_START_AUTODESTROY, -1); virCheckFlags(VIR_DOMAIN_START_AUTODESTROY, -1);
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, "%s", virReportError(VIR_ERR_NO_DOMAIN, "%s",
@ -1922,20 +1922,20 @@ static virDomainPtr umlDomainDefine(virConnectPtr conn, const char *xml) {
VIR_DOMAIN_XML_INACTIVE))) VIR_DOMAIN_XML_INACTIVE)))
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&driver->domains, def, 0) < 0) if (virDomainObjListIsDuplicate(driver->domains, def, 0) < 0)
goto cleanup; goto cleanup;
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, driver->caps,
def, false))) def, false)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
vm->persistent = 1; vm->persistent = 1;
if (virDomainSaveConfig(driver->configDir, if (virDomainSaveConfig(driver->configDir,
vm->newDef ? vm->newDef : vm->def) < 0) { vm->newDef ? vm->newDef : vm->def) < 0) {
virDomainRemoveInactive(&driver->domains, virDomainObjListRemove(driver->domains,
vm); vm);
vm = NULL; vm = NULL;
goto cleanup; goto cleanup;
} }
@ -1961,7 +1961,7 @@ static int umlDomainUndefineFlags(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, "%s", virReportError(VIR_ERR_NO_DOMAIN, "%s",
_("no domain with matching uuid")); _("no domain with matching uuid"));
@ -1980,7 +1980,7 @@ static int umlDomainUndefineFlags(virDomainPtr dom,
if (virDomainObjIsActive(vm)) { if (virDomainObjIsActive(vm)) {
vm->persistent = 0; vm->persistent = 0;
} else { } else {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -2059,7 +2059,7 @@ static int umlDomainAttachDevice(virDomainPtr dom, const char *xml)
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -2177,7 +2177,7 @@ static int umlDomainDetachDevice(virDomainPtr dom, const char *xml) {
int ret = -1; int ret = -1;
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -2243,7 +2243,7 @@ static int umlDomainGetAutostart(virDomainPtr dom,
int ret = -1; int ret = -1;
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, "%s", virReportError(VIR_ERR_NO_DOMAIN, "%s",
@ -2269,7 +2269,7 @@ static int umlDomainSetAutostart(virDomainPtr dom,
int ret = -1; int ret = -1;
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, "%s", virReportError(VIR_ERR_NO_DOMAIN, "%s",
@ -2343,7 +2343,7 @@ umlDomainBlockPeek(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
umlDriverUnlock(driver); umlDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -2412,7 +2412,7 @@ umlDomainOpenConsole(virDomainPtr dom,
umlDriverLock(driver); umlDriverLock(driver);
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr); _("no domain with matching uuid '%s'"), uuidstr);
@ -2557,7 +2557,7 @@ static int umlListAllDomains(virConnectPtr conn,
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1); virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
umlDriverLock(driver); umlDriverLock(driver);
ret = virDomainList(conn, driver->domains.objs, domains, flags); ret = virDomainObjListExport(driver->domains, conn, domains, flags);
umlDriverUnlock(driver); umlDriverUnlock(driver);
return ret; return ret;

View File

@ -43,7 +43,7 @@ vmwareFreeDriver(struct vmware_driver *driver)
return; return;
virMutexDestroy(&driver->lock); virMutexDestroy(&driver->lock);
virDomainObjListDeinit(&driver->domains); virDomainObjListFree(driver->domains);
virCapabilitiesFree(driver->caps); virCapabilitiesFree(driver->caps);
VIR_FREE(driver); VIR_FREE(driver);
} }
@ -177,8 +177,9 @@ vmwareLoadDomains(struct vmware_driver *driver)
goto cleanup; goto cleanup;
} }
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, vmdef, false))) driver->caps,
vmdef, false)))
goto cleanup; goto cleanup;
pDomain = vm->privateData; pDomain = vm->privateData;

View File

@ -37,7 +37,7 @@ struct vmware_driver {
virMutex lock; virMutex lock;
virCapsPtr caps; virCapsPtr caps;
virDomainObjList domains; virDomainObjListPtr domains;
int version; int version;
int type; int type;
}; };

View File

@ -128,7 +128,7 @@ vmwareOpen(virConnectPtr conn,
driver->type = STRNEQ(conn->uri->scheme, "vmwareplayer") ? driver->type = STRNEQ(conn->uri->scheme, "vmwareplayer") ?
TYPE_WORKSTATION : TYPE_PLAYER; TYPE_WORKSTATION : TYPE_PLAYER;
if (virDomainObjListInit(&driver->domains) < 0) if (!(driver->domains = virDomainObjListNew()))
goto cleanup; goto cleanup;
if (!(driver->caps = vmwareCapsInit())) if (!(driver->caps = vmwareCapsInit()))
@ -320,7 +320,7 @@ vmwareDomainDefineXML(virConnectPtr conn, const char *xml)
VIR_DOMAIN_XML_INACTIVE)) == NULL) VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&driver->domains, vmdef, 1) < 0) if (virDomainObjListIsDuplicate(driver->domains, vmdef, 1) < 0)
goto cleanup; goto cleanup;
/* generate vmx file */ /* generate vmx file */
@ -339,8 +339,9 @@ vmwareDomainDefineXML(virConnectPtr conn, const char *xml)
} }
/* assign def */ /* assign def */
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, vmdef, false))) driver->caps,
vmdef, false)))
goto cleanup; goto cleanup;
pDomain = vm->privateData; pDomain = vm->privateData;
@ -382,7 +383,7 @@ vmwareDomainShutdownFlags(virDomainPtr dom,
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN, "%s", virReportError(VIR_ERR_NO_DOMAIN, "%s",
@ -403,7 +404,7 @@ vmwareDomainShutdownFlags(virDomainPtr dom,
goto cleanup; goto cleanup;
if (!vm->persistent) { if (!vm->persistent) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -441,7 +442,7 @@ vmwareDomainSuspend(virDomainPtr dom)
} }
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -490,7 +491,7 @@ vmwareDomainResume(virDomainPtr dom)
} }
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -534,7 +535,7 @@ vmwareDomainReboot(virDomainPtr dom, unsigned int flags)
virCheckFlags(0, -1); virCheckFlags(0, -1);
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -591,7 +592,7 @@ vmwareDomainCreateXML(virConnectPtr conn, const char *xml,
VIR_DOMAIN_XML_INACTIVE)) == NULL) VIR_DOMAIN_XML_INACTIVE)) == NULL)
goto cleanup; goto cleanup;
if (virDomainObjIsDuplicate(&driver->domains, vmdef, 1) < 0) if (virDomainObjListIsDuplicate(driver->domains, vmdef, 1) < 0)
goto cleanup; goto cleanup;
/* generate vmx file */ /* generate vmx file */
@ -610,8 +611,9 @@ vmwareDomainCreateXML(virConnectPtr conn, const char *xml,
} }
/* assign def */ /* assign def */
if (!(vm = virDomainAssignDef(driver->caps, if (!(vm = virDomainObjListAdd(driver->domains,
&driver->domains, vmdef, false))) driver->caps,
vmdef, false)))
goto cleanup; goto cleanup;
pDomain = vm->privateData; pDomain = vm->privateData;
@ -621,7 +623,7 @@ vmwareDomainCreateXML(virConnectPtr conn, const char *xml,
vmdef = NULL; vmdef = NULL;
if (vmwareStartVM(driver, vm) < 0) { if (vmwareStartVM(driver, vm) < 0) {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
goto cleanup; goto cleanup;
} }
@ -651,7 +653,7 @@ vmwareDomainCreateWithFlags(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr); virUUIDFormat(dom->uuid, uuidstr);
@ -695,7 +697,7 @@ vmwareDomainUndefineFlags(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
if (!vm) { if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
@ -718,7 +720,7 @@ vmwareDomainUndefineFlags(virDomainPtr dom,
if (virDomainObjIsActive(vm)) { if (virDomainObjIsActive(vm)) {
vm->persistent = 0; vm->persistent = 0;
} else { } else {
virDomainRemoveInactive(&driver->domains, vm); virDomainObjListRemove(driver->domains, vm);
vm = NULL; vm = NULL;
} }
@ -745,7 +747,7 @@ vmwareDomainLookupByID(virConnectPtr conn, int id)
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByID(&driver->domains, id); vm = virDomainObjListFindByID(driver->domains, id);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -771,7 +773,7 @@ vmwareGetOSType(virDomainPtr dom)
char *ret = NULL; char *ret = NULL;
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -797,7 +799,7 @@ vmwareDomainLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, uuid); vm = virDomainObjListFindByUUID(driver->domains, uuid);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -823,7 +825,7 @@ vmwareDomainLookupByName(virConnectPtr conn, const char *name)
virDomainPtr dom = NULL; virDomainPtr dom = NULL;
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByName(&driver->domains, name); vm = virDomainObjListFindByName(driver->domains, name);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -849,7 +851,7 @@ vmwareDomainIsActive(virDomainPtr dom)
int ret = -1; int ret = -1;
vmwareDriverLock(driver); vmwareDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!obj) { if (!obj) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -872,7 +874,7 @@ vmwareDomainIsPersistent(virDomainPtr dom)
int ret = -1; int ret = -1;
vmwareDriverLock(driver); vmwareDriverLock(driver);
obj = virDomainFindByUUID(&driver->domains, dom->uuid); obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!obj) { if (!obj) {
virReportError(VIR_ERR_NO_DOMAIN, NULL); virReportError(VIR_ERR_NO_DOMAIN, NULL);
@ -897,7 +899,7 @@ vmwareDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
/* Flags checked by virDomainDefFormat */ /* Flags checked by virDomainDefFormat */
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -966,8 +968,8 @@ vmwareNumDefinedDomains(virConnectPtr conn)
int n; int n;
vmwareDriverLock(driver); vmwareDriverLock(driver);
vmwareDomainObjListUpdateAll(&driver->domains, driver); vmwareDomainObjListUpdateAll(driver->domains, driver);
n = virDomainObjListNumOfDomains(&driver->domains, 0); n = virDomainObjListNumOfDomains(driver->domains, 0);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
return n; return n;
@ -980,8 +982,8 @@ vmwareNumDomains(virConnectPtr conn)
int n; int n;
vmwareDriverLock(driver); vmwareDriverLock(driver);
vmwareDomainObjListUpdateAll(&driver->domains, driver); vmwareDomainObjListUpdateAll(driver->domains, driver);
n = virDomainObjListNumOfDomains(&driver->domains, 1); n = virDomainObjListNumOfDomains(driver->domains, 1);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
return n; return n;
@ -995,8 +997,8 @@ vmwareListDomains(virConnectPtr conn, int *ids, int nids)
int n; int n;
vmwareDriverLock(driver); vmwareDriverLock(driver);
vmwareDomainObjListUpdateAll(&driver->domains, driver); vmwareDomainObjListUpdateAll(driver->domains, driver);
n = virDomainObjListGetActiveIDs(&driver->domains, ids, nids); n = virDomainObjListGetActiveIDs(driver->domains, ids, nids);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
return n; return n;
@ -1010,8 +1012,8 @@ vmwareListDefinedDomains(virConnectPtr conn,
int n; int n;
vmwareDriverLock(driver); vmwareDriverLock(driver);
vmwareDomainObjListUpdateAll(&driver->domains, driver); vmwareDomainObjListUpdateAll(driver->domains, driver);
n = virDomainObjListGetInactiveNames(&driver->domains, names, nnames); n = virDomainObjListGetInactiveNames(driver->domains, names, nnames);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
return n; return n;
} }
@ -1024,7 +1026,7 @@ vmwareDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info)
int ret = -1; int ret = -1;
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1062,7 +1064,7 @@ vmwareDomainGetState(virDomainPtr dom,
virCheckFlags(0, -1); virCheckFlags(0, -1);
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
if (!vm) { if (!vm) {
@ -1100,8 +1102,8 @@ vmwareListAllDomains(virConnectPtr conn,
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1); virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
vmwareDriverLock(driver); vmwareDriverLock(driver);
vmwareDomainObjListUpdateAll(&driver->domains, driver); vmwareDomainObjListUpdateAll(driver->domains, driver);
ret = virDomainList(conn, driver->domains.objs, domains, flags); ret = virDomainObjListExport(driver->domains, conn, domains, flags);
vmwareDriverUnlock(driver); vmwareDriverUnlock(driver);
return ret; return ret;
} }