test: Switch to reference counting with testDomObjFromDomain

Retrieve domain objects with reference and release them with
virDomainObjEndAPI.
This commit is contained in:
Peter Krempa 2015-06-16 14:05:18 +02:00
parent 0cce10714f
commit 207afcf677

View File

@ -484,7 +484,7 @@ testDomObjFromDomain(virDomainPtr domain)
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
testDriverLock(driver); testDriverLock(driver);
vm = virDomainObjListFindByUUID(driver->domains, domain->uuid); vm = virDomainObjListFindByUUIDRef(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,
@ -6262,19 +6262,17 @@ static int
testDomainSnapshotNum(virDomainPtr domain, unsigned int flags) testDomainSnapshotNum(virDomainPtr domain, unsigned int flags)
{ {
virDomainObjPtr vm = NULL; virDomainObjPtr vm = NULL;
int n = -1; int n;
virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_ROOTS | virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_ROOTS |
VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1);
if (!(vm = testDomObjFromDomain(domain))) if (!(vm = testDomObjFromDomain(domain)))
goto cleanup; return -1;
n = virDomainSnapshotObjListNum(vm->snapshots, NULL, flags); n = virDomainSnapshotObjListNum(vm->snapshots, NULL, flags);
cleanup: virDomainObjEndAPI(&vm);
if (vm)
virObjectUnlock(vm);
return n; return n;
} }
@ -6285,20 +6283,18 @@ testDomainSnapshotListNames(virDomainPtr domain,
unsigned int flags) unsigned int flags)
{ {
virDomainObjPtr vm = NULL; virDomainObjPtr vm = NULL;
int n = -1; int n;
virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_ROOTS | virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_ROOTS |
VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1);
if (!(vm = testDomObjFromDomain(domain))) if (!(vm = testDomObjFromDomain(domain)))
goto cleanup; return -1;
n = virDomainSnapshotObjListGetNames(vm->snapshots, NULL, names, nameslen, n = virDomainSnapshotObjListGetNames(vm->snapshots, NULL, names, nameslen,
flags); flags);
cleanup: virDomainObjEndAPI(&vm);
if (vm)
virObjectUnlock(vm);
return n; return n;
} }
@ -6308,19 +6304,17 @@ testDomainListAllSnapshots(virDomainPtr domain,
unsigned int flags) unsigned int flags)
{ {
virDomainObjPtr vm = NULL; virDomainObjPtr vm = NULL;
int n = -1; int n;
virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_ROOTS | virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_ROOTS |
VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1);
if (!(vm = testDomObjFromDomain(domain))) if (!(vm = testDomObjFromDomain(domain)))
goto cleanup; return -1;
n = virDomainListSnapshots(vm->snapshots, NULL, domain, snaps, flags); n = virDomainListSnapshots(vm->snapshots, NULL, domain, snaps, flags);
cleanup: virDomainObjEndAPI(&vm);
if (vm)
virObjectUnlock(vm);
return n; return n;
} }
@ -6338,7 +6332,7 @@ testDomainSnapshotListChildrenNames(virDomainSnapshotPtr snapshot,
VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1);
if (!(vm = testDomObjFromSnapshot(snapshot))) if (!(vm = testDomObjFromSnapshot(snapshot)))
goto cleanup; return -1;
if (!(snap = testSnapObjFromSnapshot(vm, snapshot))) if (!(snap = testSnapObjFromSnapshot(vm, snapshot)))
goto cleanup; goto cleanup;
@ -6347,8 +6341,7 @@ testDomainSnapshotListChildrenNames(virDomainSnapshotPtr snapshot,
flags); flags);
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return n; return n;
} }
@ -6364,7 +6357,7 @@ testDomainSnapshotNumChildren(virDomainSnapshotPtr snapshot,
VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1);
if (!(vm = testDomObjFromSnapshot(snapshot))) if (!(vm = testDomObjFromSnapshot(snapshot)))
goto cleanup; return -1;
if (!(snap = testSnapObjFromSnapshot(vm, snapshot))) if (!(snap = testSnapObjFromSnapshot(vm, snapshot)))
goto cleanup; goto cleanup;
@ -6372,8 +6365,7 @@ testDomainSnapshotNumChildren(virDomainSnapshotPtr snapshot,
n = virDomainSnapshotObjListNum(vm->snapshots, snap, flags); n = virDomainSnapshotObjListNum(vm->snapshots, snap, flags);
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return n; return n;
} }
@ -6390,7 +6382,7 @@ testDomainSnapshotListAllChildren(virDomainSnapshotPtr snapshot,
VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1);
if (!(vm = testDomObjFromSnapshot(snapshot))) if (!(vm = testDomObjFromSnapshot(snapshot)))
goto cleanup; return -1;
if (!(snap = testSnapObjFromSnapshot(vm, snapshot))) if (!(snap = testSnapObjFromSnapshot(vm, snapshot)))
goto cleanup; goto cleanup;
@ -6399,8 +6391,7 @@ testDomainSnapshotListAllChildren(virDomainSnapshotPtr snapshot,
flags); flags);
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return n; return n;
} }
@ -6416,7 +6407,7 @@ testDomainSnapshotLookupByName(virDomainPtr domain,
virCheckFlags(0, NULL); virCheckFlags(0, NULL);
if (!(vm = testDomObjFromDomain(domain))) if (!(vm = testDomObjFromDomain(domain)))
goto cleanup; return NULL;
if (!(snap = testSnapObjFromName(vm, name))) if (!(snap = testSnapObjFromName(vm, name)))
goto cleanup; goto cleanup;
@ -6424,8 +6415,7 @@ testDomainSnapshotLookupByName(virDomainPtr domain,
snapshot = virGetDomainSnapshot(domain, snap->def->name); snapshot = virGetDomainSnapshot(domain, snap->def->name);
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return snapshot; return snapshot;
} }
@ -6434,18 +6424,16 @@ testDomainHasCurrentSnapshot(virDomainPtr domain,
unsigned int flags) unsigned int flags)
{ {
virDomainObjPtr vm; virDomainObjPtr vm;
int ret = -1; int ret;
virCheckFlags(0, -1); virCheckFlags(0, -1);
if (!(vm = testDomObjFromDomain(domain))) if (!(vm = testDomObjFromDomain(domain)))
goto cleanup; return -1;
ret = (vm->current_snapshot != NULL); ret = (vm->current_snapshot != NULL);
cleanup: virDomainObjEndAPI(&vm);
if (vm)
virObjectUnlock(vm);
return ret; return ret;
} }
@ -6460,7 +6448,7 @@ testDomainSnapshotGetParent(virDomainSnapshotPtr snapshot,
virCheckFlags(0, NULL); virCheckFlags(0, NULL);
if (!(vm = testDomObjFromSnapshot(snapshot))) if (!(vm = testDomObjFromSnapshot(snapshot)))
goto cleanup; return NULL;
if (!(snap = testSnapObjFromSnapshot(vm, snapshot))) if (!(snap = testSnapObjFromSnapshot(vm, snapshot)))
goto cleanup; goto cleanup;
@ -6475,8 +6463,7 @@ testDomainSnapshotGetParent(virDomainSnapshotPtr snapshot,
parent = virGetDomainSnapshot(snapshot->domain, snap->def->parent); parent = virGetDomainSnapshot(snapshot->domain, snap->def->parent);
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return parent; return parent;
} }
@ -6490,7 +6477,7 @@ testDomainSnapshotCurrent(virDomainPtr domain,
virCheckFlags(0, NULL); virCheckFlags(0, NULL);
if (!(vm = testDomObjFromDomain(domain))) if (!(vm = testDomObjFromDomain(domain)))
goto cleanup; return NULL;
if (!vm->current_snapshot) { if (!vm->current_snapshot) {
virReportError(VIR_ERR_NO_DOMAIN_SNAPSHOT, "%s", virReportError(VIR_ERR_NO_DOMAIN_SNAPSHOT, "%s",
@ -6501,8 +6488,7 @@ testDomainSnapshotCurrent(virDomainPtr domain,
snapshot = virGetDomainSnapshot(domain, vm->current_snapshot->def->name); snapshot = virGetDomainSnapshot(domain, vm->current_snapshot->def->name);
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return snapshot; return snapshot;
} }
@ -6518,7 +6504,7 @@ testDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
virCheckFlags(VIR_DOMAIN_XML_SECURE, NULL); virCheckFlags(VIR_DOMAIN_XML_SECURE, NULL);
if (!(vm = testDomObjFromSnapshot(snapshot))) if (!(vm = testDomObjFromSnapshot(snapshot)))
goto cleanup; return NULL;
if (!(snap = testSnapObjFromSnapshot(vm, snapshot))) if (!(snap = testSnapObjFromSnapshot(vm, snapshot)))
goto cleanup; goto cleanup;
@ -6530,8 +6516,7 @@ testDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
0); 0);
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return xml; return xml;
} }
@ -6540,19 +6525,17 @@ testDomainSnapshotIsCurrent(virDomainSnapshotPtr snapshot,
unsigned int flags) unsigned int flags)
{ {
virDomainObjPtr vm = NULL; virDomainObjPtr vm = NULL;
int ret = -1; int ret;
virCheckFlags(0, -1); virCheckFlags(0, -1);
if (!(vm = testDomObjFromSnapshot(snapshot))) if (!(vm = testDomObjFromSnapshot(snapshot)))
goto cleanup; return -1;
ret = (vm->current_snapshot && ret = (vm->current_snapshot &&
STREQ(snapshot->name, vm->current_snapshot->def->name)); STREQ(snapshot->name, vm->current_snapshot->def->name));
cleanup: virDomainObjEndAPI(&vm);
if (vm)
virObjectUnlock(vm);
return ret; return ret;
} }
@ -6567,7 +6550,7 @@ testDomainSnapshotHasMetadata(virDomainSnapshotPtr snapshot,
virCheckFlags(0, -1); virCheckFlags(0, -1);
if (!(vm = testDomObjFromSnapshot(snapshot))) if (!(vm = testDomObjFromSnapshot(snapshot)))
goto cleanup; return -1;
if (!testSnapObjFromSnapshot(vm, snapshot)) if (!testSnapObjFromSnapshot(vm, snapshot))
goto cleanup; goto cleanup;
@ -6575,8 +6558,7 @@ testDomainSnapshotHasMetadata(virDomainSnapshotPtr snapshot,
ret = 1; ret = 1;
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
@ -6717,7 +6699,7 @@ testDomainSnapshotCreateXML(virDomainPtr domain,
snap->sibling = other->first_child; snap->sibling = other->first_child;
other->first_child = snap; other->first_child = snap;
} }
virObjectUnlock(vm); virDomainObjEndAPI(&vm);
} }
if (event) { if (event) {
testDriverLock(privconn); testDriverLock(privconn);
@ -6854,8 +6836,7 @@ testDomainSnapshotDelete(virDomainSnapshotPtr snapshot,
ret = 0; ret = 0;
cleanup: cleanup:
if (vm) virDomainObjEndAPI(&vm);
virObjectUnlock(vm);
return ret; return ret;
} }
@ -7067,7 +7048,7 @@ testDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
} else { } else {
virObjectUnref(event2); virObjectUnref(event2);
} }
virObjectUnlock(vm); virDomainObjEndAPI(&vm);
testDriverUnlock(privconn); testDriverUnlock(privconn);
return ret; return ret;