The following pull request was submitted through Github.
It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/7726

This e-mail was sent by the LXC bot, direct replies will not reach the author
unless they happen to be subscribed to this list.

=== Description (from pull-request) ===
- OVS command wrapper function naming consistency and efficiency.
- Import ordering.
- Doc typo.
From 20f252e907a7efec64a87fd4276c7860c2d0be4c Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parr...@canonical.com>
Date: Tue, 4 Aug 2020 12:26:06 +0100
Subject: [PATCH 1/6] doc/networks: Fixes typo in bridge docs

Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com>
---
 doc/networks.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/networks.md b/doc/networks.md
index 23d4ea2770..e33e7b5ab4 100644
--- a/doc/networks.md
+++ b/doc/networks.md
@@ -68,7 +68,7 @@ bridge.hwaddr                   | string    | -               
      | -
 bridge.mode                     | string    | -                     | standard 
                 | Bridge operation mode ("standard" or "fan")
 bridge.mtu                      | integer   | -                     | 1500     
                 | Bridge MTU (default varies if tunnel or fan setup)
 dns.domain                      | string    | -                     | lxd      
                 | Domain to advertise to DHCP clients and use for DNS 
resolution
-dns.search                      | string    | -                     | -        
                 | Full comma eparate domain search list, defaulting to 
dns.domain
+dns.search                      | string    | -                     | -        
                 | Full comma separated domain search list, defaulting to 
dns.domain
 dns.mode                        | string    | -                     | managed  
                 | DNS registration mode ("none" for no DNS record, "managed" 
for LXD generated static records or "dynamic" for client generated records)
 fan.overlay\_subnet             | string    | fan mode              | 
240.0.0.0/8               | Subnet to use as the overlay for the FAN (CIDR 
notation)
 fan.type                        | string    | fan mode              | vxlan    
                 | The tunneling type for the FAN ("vxlan" or "ipip")

From 3263e271e165959f2fc359664d0c9308cc563128 Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parr...@canonical.com>
Date: Tue, 4 Aug 2020 16:11:15 +0100
Subject: [PATCH 2/6] lxd/cluster/config: Fix import ordering of external
 package

Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com>
---
 lxd/cluster/config.go | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lxd/cluster/config.go b/lxd/cluster/config.go
index 479f28836e..05e7969e14 100644
--- a/lxd/cluster/config.go
+++ b/lxd/cluster/config.go
@@ -10,11 +10,11 @@ import (
        "time"
 
        "github.com/kballard/go-shellquote"
+       "github.com/pkg/errors"
        "golang.org/x/crypto/scrypt"
 
        "github.com/lxc/lxd/lxd/config"
        "github.com/lxc/lxd/lxd/db"
-       "github.com/pkg/errors"
 )
 
 // Config holds cluster-wide configuration values.

From 7a9c38d637434badaee4b986afbbeecc4e876f4c Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parr...@canonical.com>
Date: Wed, 5 Aug 2020 15:53:13 +0100
Subject: [PATCH 3/6] lxd/network/openvswitch: Name functions consistently
 using ObjectAction format

- Also add mayExist argument.
- Use more efficient detection of missing objects.

Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com>
---
 lxd/network/openvswitch/ovs.go | 50 ++++++++++++++++++++--------------
 1 file changed, 29 insertions(+), 21 deletions(-)

diff --git a/lxd/network/openvswitch/ovs.go b/lxd/network/openvswitch/ovs.go
index cd385045b8..306629dad1 100644
--- a/lxd/network/openvswitch/ovs.go
+++ b/lxd/network/openvswitch/ovs.go
@@ -45,8 +45,16 @@ func (o *OVS) BridgeExists(bridgeName string) (bool, error) {
 }
 
 // BridgeAdd adds an OVS bridge.
-func (o *OVS) BridgeAdd(bridgeName string) error {
-       _, err := shared.RunCommand("ovs-vsctl", "add-br", bridgeName)
+func (o *OVS) BridgeAdd(bridgeName string, mayExist bool) error {
+       args := []string{}
+
+       if mayExist {
+               args = append(args, "--may-exist")
+       }
+
+       args = append(args, "add-br", bridgeName)
+
+       _, err := shared.RunCommand("ovs-vsctl", args...)
        if err != nil {
                return err
        }
@@ -64,36 +72,36 @@ func (o *OVS) BridgeDelete(bridgeName string) error {
        return nil
 }
 
-// BridgeAddPort adds a port to the bridge (if already attached does nothing).
-func (o *OVS) BridgeAddPort(bridgeName string, portName string) error {
-       // Check if interface is already connected to a bridge, if not, connect 
it to the specified bridge.
-       _, err := shared.RunCommand("ovs-vsctl", "port-to-br", portName)
+// BridgePortAdd adds a port to the bridge (if already attached does nothing).
+func (o *OVS) BridgePortAdd(bridgeName string, portName string, mayExist bool) 
error {
+       args := []string{}
+
+       if mayExist {
+               args = append(args, "--may-exist")
+       }
+
+       args = append(args, "add-port", bridgeName, portName)
+
+       _, err := shared.RunCommand("ovs-vsctl", args...)
        if err != nil {
-               _, err := shared.RunCommand("ovs-vsctl", "add-port", 
bridgeName, portName)
-               if err != nil {
-                       return err
-               }
+               return err
        }
 
        return nil
 }
 
-// BridgeDeletePort deletes a port from the bridge (if already deteached does 
nothing).
-func (o *OVS) BridgeDeletePort(bridgeName string, portName string) error {
-       // Check if interface is connected to a bridge, if so, then remove it 
from the bridge.
-       _, err := shared.RunCommand("ovs-vsctl", "port-to-br", portName)
-       if err == nil {
-               _, err := shared.RunCommand("ovs-vsctl", "del-port", 
bridgeName, portName)
-               if err != nil {
-                       return err
-               }
+// BridgePortDelete deletes a port from the bridge (if already detached does 
nothing).
+func (o *OVS) BridgePortDelete(bridgeName string, portName string) error {
+       _, err := shared.RunCommand("ovs-vsctl", "--if-exists", "del-port", 
bridgeName, portName)
+       if err != nil {
+               return err
        }
 
        return nil
 }
 
-// PortSet sets port options.
-func (o *OVS) PortSet(portName string, options ...string) error {
+// BridgePortSet sets port options.
+func (o *OVS) BridgePortSet(portName string, options ...string) error {
        _, err := shared.RunCommand("ovs-vsctl", append([]string{"set", "port", 
portName}, options...)...)
        if err != nil {
                return err

From 4aef987962f04cad9429743f19c5a0bd2ce36a73 Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parr...@canonical.com>
Date: Wed, 5 Aug 2020 15:54:57 +0100
Subject: [PATCH 4/6] lxd/network/driver/bridge: OVS function naming usage

Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com>
---
 lxd/network/driver_bridge.go | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lxd/network/driver_bridge.go b/lxd/network/driver_bridge.go
index d705c4b3d4..82943e95f7 100644
--- a/lxd/network/driver_bridge.go
+++ b/lxd/network/driver_bridge.go
@@ -436,7 +436,7 @@ func (n *bridge) setup(oldConfig map[string]string) error {
                                return fmt.Errorf("Open vSwitch isn't installed 
on this system")
                        }
 
-                       err := ovs.BridgeAdd(n.name)
+                       err := ovs.BridgeAdd(n.name, false)
                        if err != nil {
                                return err
                        }

From 7697eec7df583467ad1112b37cf577254e2544b6 Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parr...@canonical.com>
Date: Wed, 5 Aug 2020 15:55:17 +0100
Subject: [PATCH 5/6] lxd/network/network/utils: OVS function naming usage

Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com>
---
 lxd/network/network_utils.go | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lxd/network/network_utils.go b/lxd/network/network_utils.go
index 65693a2345..cd221009f6 100644
--- a/lxd/network/network_utils.go
+++ b/lxd/network/network_utils.go
@@ -133,7 +133,7 @@ func AttachInterface(bridgeName string, devName string) 
error {
                }
        } else {
                ovs := openvswitch.NewOVS()
-               err := ovs.BridgeAddPort(bridgeName, devName)
+               err := ovs.BridgePortAdd(bridgeName, devName, true)
                if err != nil {
                        return err
                }
@@ -151,7 +151,7 @@ func DetachInterface(bridgeName string, devName string) 
error {
                }
        } else {
                ovs := openvswitch.NewOVS()
-               err := ovs.BridgeDeletePort(bridgeName, devName)
+               err := ovs.BridgePortDelete(bridgeName, devName)
                if err != nil {
                        return err
                }

From 596e8ad5a3dd75378cfb9ec76ad461eb4a06bcfe Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parr...@canonical.com>
Date: Wed, 5 Aug 2020 15:54:38 +0100
Subject: [PATCH 6/6] lxd/device/nic/bridged: OVS function naming usage

Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com>
---
 lxd/device/nic_bridged.go | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lxd/device/nic_bridged.go b/lxd/device/nic_bridged.go
index 2124c1202f..b30ba66d91 100644
--- a/lxd/device/nic_bridged.go
+++ b/lxd/device/nic_bridged.go
@@ -1045,7 +1045,7 @@ func (d *nicBridged) setupOVSBridgePortVLANs(hostName 
string) error {
                // Order is important here, as vlan_mode is set to "access", 
assuming that vlan.tagged is not used.
                // If vlan.tagged is specified, then we expect it to also 
change the vlan_mode as needed.
                if d.config["vlan"] != "none" {
-                       err := ovs.PortSet(hostName, "vlan_mode=access", 
fmt.Sprintf("tag=%s", d.config["vlan"]))
+                       err := ovs.BridgePortSet(hostName, "vlan_mode=access", 
fmt.Sprintf("tag=%s", d.config["vlan"]))
                        if err != nil {
                                return err
                        }
@@ -1071,7 +1071,7 @@ func (d *nicBridged) setupOVSBridgePortVLANs(hostName 
string) error {
                // Also set the vlan_mode as needed from above.
                // Must come after the PortSet command used for setting "vlan" 
mode above so that the correct
                // vlan_mode is retained.
-               err := ovs.PortSet(hostName, fmt.Sprintf("vlan_mode=%s", 
vlanMode), fmt.Sprintf("trunks=%s", strings.Join(vlanIDs, ",")))
+               err := ovs.BridgePortSet(hostName, fmt.Sprintf("vlan_mode=%s", 
vlanMode), fmt.Sprintf("trunks=%s", strings.Join(vlanIDs, ",")))
                if err != nil {
                        return err
                }
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to