On Tue, Apr 09, 2013 at 01:53:16PM +0800, [email protected] wrote: > From: Yunping Zheng <[email protected]> > > Now when add a tap device will call the decorator @__init_openvswitch, > even if the tap is add to a normal bridge, that will call error if > the host not support openvswitch, this patch modify this behavior, > init done only when the bridge is not normal bridge. > > Signed-off-by: Yunping Zheng <[email protected]>
Reviewed-by: Amos Kong <[email protected]> > --- > virttest/utils_net.py | 43 ++++++++++++++++++++++++------------------- > 1 file changed, 24 insertions(+), 19 deletions(-) > > diff --git a/virttest/utils_net.py b/virttest/utils_net.py > index 49dbe10..9c622dc 100644 > --- a/virttest/utils_net.py > +++ b/virttest/utils_net.py > @@ -595,8 +595,17 @@ def change_iface_bridge(ifname, new_bridge, ovs=None): > raise error.AutotestError("Network interface %s is wrong type %s." % > (ifname, new_bridge)) > > - > @__init_openvswitch > +def add_to_openvswitch(ifname, brname, ovs=None): > + if ovs is None: > + ovs = __ovs > + if ovs is None: > + raise BRAddIfError(ifname, brname, "There is no ovs bridge in > system.") > + #Try add port to OpenVSwitch bridge. > + if brname in ovs.list_br(): > + ovs.add_port(brname, ifname) > + > + > def add_to_bridge(ifname, brname, ovs=None): > """ > Add a TAP device to bridge > @@ -605,9 +614,6 @@ def add_to_bridge(ifname, brname, ovs=None): > @param brname: Name of the bridge > @param ovs: OpenVSwitch object. > """ > - if ovs is None: > - ovs = __ovs > - > _ifname = None > if type(ifname) is str: > _ifname = ifname > @@ -617,16 +623,24 @@ def add_to_bridge(ifname, brname, ovs=None): > if brname in __bridge.list_br(): > #Try add port to standard bridge or openvswitch in compatible mode. > __bridge.add_port(brname, _ifname) > - return > + else: > + add_to_openvswitch(_ifname, brname) > > + > +@__init_openvswitch > +def del_from_ovs_bridge(ifname, brname, ovs=None): > + """ > + delte port form OpenVSwitch > + """ > + if ovs is None: > + ovs = __ovs > if ovs is None: > - raise BRAddIfError(ifname, brname, "There is no bridge in system.") > + raise BRDelIfError(ifname, brname, "There is no ovs bridge in > system.") > #Try add port to OpenVSwitch bridge. > if brname in ovs.list_br(): > - ovs.add_port(brname, ifname) > + ovs.del_port(brname, ifname) > > > -@__init_openvswitch > def del_from_bridge(ifname, brname, ovs=None): > """ > Del a TAP device to bridge > @@ -635,26 +649,17 @@ def del_from_bridge(ifname, brname, ovs=None): > @param brname: Name of the bridge > @param ovs: OpenVSwitch object. > """ > - if ovs is None: > - ovs = __ovs > - > _ifname = None > if type(ifname) is str: > _ifname = ifname > elif issubclass(type(ifname), VirtIface): > _ifname = ifname.ifname > > - if ovs is None: > - raise BRDelIfError(ifname, brname, "There is no bridge in system.") > - > if brname in __bridge.list_br(): > #Try add port to standard bridge or openvswitch in compatible mode. > __bridge.del_port(brname, _ifname) > - return > - > - #Try add port to OpenVSwitch bridge. > - if brname in ovs.list_br(): > - ovs.del_port(brname, _ifname) > + else: > + del_from_ovs_bridge(_ifname, brname) > > > def bring_up_ifname(ifname): > -- > 1.7.11.7 > > _______________________________________________ > Virt-test-devel mailing list > [email protected] > https://www.redhat.com/mailman/listinfo/virt-test-devel -- Amos. _______________________________________________ Virt-test-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/virt-test-devel
