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]> --- 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
