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

Reply via email to