On Wed, Mar 25, 2015 at 07:35:12PM +0530, Shivaprasad G Bhat wrote:
virNetworkBridgeInUse() doesn't check if the bridge is manually
created
outside of libvirt. Check if the bridge actually exist on host using the
virNetDevExists().
Signed-off-by: Shivaprasad G Bhat <sbhat(a)linux.vnet.ibm.com>
---
src/conf/network_conf.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index b334b64..8e9f3ac 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -3294,6 +3294,7 @@ int virNetworkBridgeInUse(virNetworkObjListPtr nets,
const char *bridge,
const char *skipname)
{
+ int ret;
virNetworkObjPtr obj;
struct virNetworkBridgeInUseHelperData data = {bridge, skipname};
@@ -3301,7 +3302,12 @@ int virNetworkBridgeInUse(virNetworkObjListPtr nets,
obj = virHashSearch(nets->objs, virNetworkBridgeInUseHelper, &data);
virObjectUnlock(nets);
- return obj != NULL;
+ if (obj)
+ ret = 1;
+ else /* Bridge might have been created by a user manually outside libvirt */
+ ret = virNetDevExists(bridge) ? 1 : 0;
I don't think we should parse the network differently based on the host
state. The existing check only looks at existing configs.
Can this be checked in networkValidate instead?
Jan
+
+ return ret;
}
char *virNetworkAllocateBridge(virNetworkObjListPtr nets,
--
libvir-list mailing list
libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list