test: Make common test*ObjFindByUUID helpers

Make common helpers testNetworkObjFindByUUID and testStoragePoolObjFindByUUID
which will replace the repeated patter for each to find objects by UUID.

As a bonus, the error message processing will also provide the failed uuidstr
rather than a generic error message.
This commit is contained in:
John Ferlan 2017-03-04 09:48:11 -05:00
parent cf98d4e1ae
commit 39df53b901

View File

@ -3217,6 +3217,24 @@ static int testDomainInterfaceStats(virDomainPtr domain,
} }
static virNetworkObjPtr
testNetworkObjFindByUUID(testDriverPtr privconn,
const unsigned char *uuid)
{
virNetworkObjPtr net;
char uuidstr[VIR_UUID_STRING_BUFLEN];
if (!(net = virNetworkObjFindByUUID(privconn->networks, uuid))) {
virUUIDFormat(uuid, uuidstr);
virReportError(VIR_ERR_NO_NETWORK,
_("no network with matching uuid '%s'"),
uuidstr);
}
return net;
}
static virNetworkPtr testNetworkLookupByUUID(virConnectPtr conn, static virNetworkPtr testNetworkLookupByUUID(virConnectPtr conn,
const unsigned char *uuid) const unsigned char *uuid)
{ {
@ -3224,11 +3242,8 @@ static virNetworkPtr testNetworkLookupByUUID(virConnectPtr conn,
virNetworkObjPtr net; virNetworkObjPtr net;
virNetworkPtr ret = NULL; virNetworkPtr ret = NULL;
net = virNetworkObjFindByUUID(privconn->networks, uuid); if (!(net = testNetworkObjFindByUUID(privconn, uuid)))
if (net == NULL) {
virReportError(VIR_ERR_NO_NETWORK, NULL);
goto cleanup; goto cleanup;
}
ret = virGetNetwork(conn, net->def->name, net->def->uuid); ret = virGetNetwork(conn, net->def->name, net->def->uuid);
@ -3327,11 +3342,9 @@ static int testNetworkIsActive(virNetworkPtr net)
virNetworkObjPtr obj; virNetworkObjPtr obj;
int ret = -1; int ret = -1;
obj = virNetworkObjFindByUUID(privconn->networks, net->uuid); if (!(obj = testNetworkObjFindByUUID(privconn, net->uuid)))
if (!obj) {
virReportError(VIR_ERR_NO_NETWORK, NULL);
goto cleanup; goto cleanup;
}
ret = virNetworkObjIsActive(obj); ret = virNetworkObjIsActive(obj);
cleanup: cleanup:
@ -3345,11 +3358,9 @@ static int testNetworkIsPersistent(virNetworkPtr net)
virNetworkObjPtr obj; virNetworkObjPtr obj;
int ret = -1; int ret = -1;
obj = virNetworkObjFindByUUID(privconn->networks, net->uuid); if (!(obj = testNetworkObjFindByUUID(privconn, net->uuid)))
if (!obj) {
virReportError(VIR_ERR_NO_NETWORK, NULL);
goto cleanup; goto cleanup;
}
ret = obj->persistent; ret = obj->persistent;
cleanup: cleanup:
@ -3463,12 +3474,8 @@ testNetworkUpdate(virNetworkPtr net,
VIR_NETWORK_UPDATE_AFFECT_CONFIG, VIR_NETWORK_UPDATE_AFFECT_CONFIG,
-1); -1);
network = virNetworkObjFindByUUID(privconn->networks, net->uuid); if (!(network = testNetworkObjFindByUUID(privconn, net->uuid)))
if (!network) {
virReportError(VIR_ERR_NO_NETWORK,
"%s", _("no network with matching uuid"));
goto cleanup; goto cleanup;
}
/* VIR_NETWORK_UPDATE_AFFECT_CURRENT means "change LIVE if network /* VIR_NETWORK_UPDATE_AFFECT_CURRENT means "change LIVE if network
* is active, else change CONFIG * is active, else change CONFIG
@ -4049,6 +4056,28 @@ testStoragePoolObjFindByName(testDriverPtr privconn,
} }
static virStoragePoolObjPtr
testStoragePoolObjFindByUUID(testDriverPtr privconn,
const unsigned char *uuid)
{
virStoragePoolObjPtr pool;
char uuidstr[VIR_UUID_STRING_BUFLEN];
testDriverLock(privconn);
pool = virStoragePoolObjFindByUUID(&privconn->pools, uuid);
testDriverUnlock(privconn);
if (!pool) {
virUUIDFormat(uuid, uuidstr);
virReportError(VIR_ERR_NO_STORAGE_POOL,
_("no storage pool with matching uuid '%s'"),
uuidstr);
}
return pool;
}
static virStoragePoolPtr static virStoragePoolPtr
testStoragePoolLookupByUUID(virConnectPtr conn, testStoragePoolLookupByUUID(virConnectPtr conn,
const unsigned char *uuid) const unsigned char *uuid)
@ -4057,14 +4086,8 @@ testStoragePoolLookupByUUID(virConnectPtr conn,
virStoragePoolObjPtr pool; virStoragePoolObjPtr pool;
virStoragePoolPtr ret = NULL; virStoragePoolPtr ret = NULL;
testDriverLock(privconn); if (!(pool = testStoragePoolObjFindByUUID(privconn, uuid)))
pool = virStoragePoolObjFindByUUID(&privconn->pools, uuid);
testDriverUnlock(privconn);
if (pool == NULL) {
virReportError(VIR_ERR_NO_STORAGE_POOL, NULL);
goto cleanup; goto cleanup;
}
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid, ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
NULL, NULL); NULL, NULL);
@ -4222,13 +4245,9 @@ static int testStoragePoolIsActive(virStoragePoolPtr pool)
virStoragePoolObjPtr obj; virStoragePoolObjPtr obj;
int ret = -1; int ret = -1;
testDriverLock(privconn); if (!(obj = testStoragePoolObjFindByUUID(privconn, pool->uuid)))
obj = virStoragePoolObjFindByUUID(&privconn->pools, pool->uuid);
testDriverUnlock(privconn);
if (!obj) {
virReportError(VIR_ERR_NO_STORAGE_POOL, NULL);
goto cleanup; goto cleanup;
}
ret = virStoragePoolObjIsActive(obj); ret = virStoragePoolObjIsActive(obj);
cleanup: cleanup:
@ -4243,13 +4262,9 @@ static int testStoragePoolIsPersistent(virStoragePoolPtr pool)
virStoragePoolObjPtr obj; virStoragePoolObjPtr obj;
int ret = -1; int ret = -1;
testDriverLock(privconn); if (!(obj = testStoragePoolObjFindByUUID(privconn, pool->uuid)))
obj = virStoragePoolObjFindByUUID(&privconn->pools, pool->uuid);
testDriverUnlock(privconn);
if (!obj) {
virReportError(VIR_ERR_NO_STORAGE_POOL, NULL);
goto cleanup; goto cleanup;
}
ret = obj->configFile ? 1 : 0; ret = obj->configFile ? 1 : 0;
cleanup: cleanup:
@ -4781,15 +4796,8 @@ testStoragePoolListAllVolumes(virStoragePoolPtr obj,
virCheckFlags(0, -1); virCheckFlags(0, -1);
testDriverLock(privconn); if (!(pool = testStoragePoolObjFindByUUID(privconn, obj->uuid)))
pool = virStoragePoolObjFindByUUID(&privconn->pools, obj->uuid);
testDriverUnlock(privconn);
if (!pool) {
virReportError(VIR_ERR_NO_STORAGE_POOL, "%s",
_("no storage pool with matching uuid"));
goto cleanup; goto cleanup;
}
if (!virStoragePoolObjIsActive(pool)) { if (!virStoragePoolObjIsActive(pool)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s", virReportError(VIR_ERR_OPERATION_INVALID, "%s",