bridge_driver: Introduce networkObjFromNetwork

Similarly to qemu_driver.c, we can join often repeating code of looking
up network into one function: networkObjFromNetwork.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Michal Privoznik 2013-08-28 14:34:34 +02:00
parent 14da45c8e4
commit 0f396366fe

View File

@ -112,6 +112,27 @@ static int networkUnplugBandwidth(virNetworkObjPtr net,
static virNetworkDriverStatePtr driverState = NULL; static virNetworkDriverStatePtr driverState = NULL;
static virNetworkObjPtr
networkObjFromNetwork(virNetworkPtr net)
{
virNetworkDriverStatePtr driver = net->conn->networkPrivateData;
virNetworkObjPtr network;
char uuidstr[VIR_UUID_STRING_BUFLEN];
networkDriverLock(driver);
network = virNetworkFindByUUID(&driver->networks, net->uuid);
networkDriverUnlock(driver);
if (!network) {
virUUIDFormat(net->uuid, uuidstr);
virReportError(VIR_ERR_NO_NETWORK,
_("no network with matching uuid '%s' (%s)"),
uuidstr, net->name);
}
return network;
}
static char * static char *
networkDnsmasqLeaseFileNameDefault(const char *netname) networkDnsmasqLeaseFileNameDefault(const char *netname)
{ {
@ -2260,17 +2281,11 @@ cleanup:
static int networkIsActive(virNetworkPtr net) static int networkIsActive(virNetworkPtr net)
{ {
virNetworkDriverStatePtr driver = net->conn->networkPrivateData;
virNetworkObjPtr obj; virNetworkObjPtr obj;
int ret = -1; int ret = -1;
networkDriverLock(driver); if (!(obj = networkObjFromNetwork(net)))
obj = virNetworkFindByUUID(&driver->networks, net->uuid); return ret;
networkDriverUnlock(driver);
if (!obj) {
virReportError(VIR_ERR_NO_NETWORK, NULL);
goto cleanup;
}
if (virNetworkIsActiveEnsureACL(net->conn, obj->def) < 0) if (virNetworkIsActiveEnsureACL(net->conn, obj->def) < 0)
goto cleanup; goto cleanup;
@ -2285,17 +2300,11 @@ cleanup:
static int networkIsPersistent(virNetworkPtr net) static int networkIsPersistent(virNetworkPtr net)
{ {
virNetworkDriverStatePtr driver = net->conn->networkPrivateData;
virNetworkObjPtr obj; virNetworkObjPtr obj;
int ret = -1; int ret = -1;
networkDriverLock(driver); if (!(obj = networkObjFromNetwork(net)))
obj = virNetworkFindByUUID(&driver->networks, net->uuid); return ret;
networkDriverUnlock(driver);
if (!obj) {
virReportError(VIR_ERR_NO_NETWORK, NULL);
goto cleanup;
}
if (virNetworkIsPersistentEnsureACL(net->conn, obj->def) < 0) if (virNetworkIsPersistentEnsureACL(net->conn, obj->def) < 0)
goto cleanup; goto cleanup;
@ -2832,22 +2841,14 @@ cleanup:
static char *networkGetXMLDesc(virNetworkPtr net, static char *networkGetXMLDesc(virNetworkPtr net,
unsigned int flags) unsigned int flags)
{ {
virNetworkDriverStatePtr driver = net->conn->networkPrivateData;
virNetworkObjPtr network; virNetworkObjPtr network;
virNetworkDefPtr def; virNetworkDefPtr def;
char *ret = NULL; char *ret = NULL;
virCheckFlags(VIR_NETWORK_XML_INACTIVE, NULL); virCheckFlags(VIR_NETWORK_XML_INACTIVE, NULL);
networkDriverLock(driver); if (!(network = networkObjFromNetwork(net)))
network = virNetworkFindByUUID(&driver->networks, net->uuid); return ret;
networkDriverUnlock(driver);
if (!network) {
virReportError(VIR_ERR_NO_NETWORK,
"%s", _("no network with matching uuid"));
goto cleanup;
}
if (virNetworkGetXMLDescEnsureACL(net->conn, network->def) < 0) if (virNetworkGetXMLDescEnsureACL(net->conn, network->def) < 0)
goto cleanup; goto cleanup;
@ -2866,19 +2867,11 @@ cleanup:
} }
static char *networkGetBridgeName(virNetworkPtr net) { static char *networkGetBridgeName(virNetworkPtr net) {
virNetworkDriverStatePtr driver = net->conn->networkPrivateData;
virNetworkObjPtr network; virNetworkObjPtr network;
char *bridge = NULL; char *bridge = NULL;
networkDriverLock(driver); if (!(network = networkObjFromNetwork(net)))
network = virNetworkFindByUUID(&driver->networks, net->uuid); return bridge;
networkDriverUnlock(driver);
if (!network) {
virReportError(VIR_ERR_NO_NETWORK,
"%s", _("no network with matching id"));
goto cleanup;
}
if (virNetworkGetBridgeNameEnsureACL(net->conn, network->def) < 0) if (virNetworkGetBridgeNameEnsureACL(net->conn, network->def) < 0)
goto cleanup; goto cleanup;
@ -2900,18 +2893,11 @@ cleanup:
static int networkGetAutostart(virNetworkPtr net, static int networkGetAutostart(virNetworkPtr net,
int *autostart) { int *autostart) {
virNetworkDriverStatePtr driver = net->conn->networkPrivateData;
virNetworkObjPtr network; virNetworkObjPtr network;
int ret = -1; int ret = -1;
networkDriverLock(driver); if (!(network = networkObjFromNetwork(net)))
network = virNetworkFindByUUID(&driver->networks, net->uuid); return ret;
networkDriverUnlock(driver);
if (!network) {
virReportError(VIR_ERR_NO_NETWORK,
"%s", _("no network with matching uuid"));
goto cleanup;
}
if (virNetworkGetAutostartEnsureACL(net->conn, network->def) < 0) if (virNetworkGetAutostartEnsureACL(net->conn, network->def) < 0)
goto cleanup; goto cleanup;