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

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) ===
When we have a new enough version we should use the new network configuration
keys.

Signed-off-by: Christian Brauner <[email protected]>
From c9ab4a47d0369af7045b5bf79995f0bbd9881b76 Mon Sep 17 00:00:00 2001
From: Christian Brauner <[email protected]>
Date: Thu, 22 Jun 2017 09:55:57 +0200
Subject: [PATCH] container_lxc: use new network keys

When we have a new enough version we should use the new network configuration
keys.

Signed-off-by: Christian Brauner <[email protected]>
---
 lxd/container_lxc.go | 60 ++++++++++++++++++++++++++++++++++------------------
 1 file changed, 40 insertions(+), 20 deletions(-)

diff --git a/lxd/container_lxc.go b/lxd/container_lxc.go
index 07f34ac98..d0bd3648e 100644
--- a/lxd/container_lxc.go
+++ b/lxd/container_lxc.go
@@ -149,7 +149,12 @@ func lxcValidConfig(rawLxc string) error {
                        return fmt.Errorf("Setting lxc.ephemeral is not 
allowed")
                }
 
-               if strings.HasPrefix(key, "lxc.network.") {
+               networkKeyPrefix := "lxc.net."
+               if !lxc.VersionAtLeast(2, 1, 0) {
+                       networkKeyPrefix = "lxc.network."
+               }
+
+               if strings.HasPrefix(key, networkKeyPrefix) {
                        fields := strings.Split(key, ".")
                        if len(fields) == 4 && shared.StringInSlice(fields[3], 
[]string{"ipv4", "ipv6"}) {
                                continue
@@ -159,7 +164,7 @@ func lxcValidConfig(rawLxc string) error {
                                continue
                        }
 
-                       return fmt.Errorf("Only interface-specific ipv4/ipv6 
lxc.network keys are allowed")
+                       return fmt.Errorf("Only interface-specific ipv4/ipv6 %s 
keys are allowed", networkKeyPrefix)
                }
        }
 
@@ -1217,41 +1222,46 @@ func (c *containerLXC) initLXC() error {
                                return err
                        }
 
+                       networkKeyPrefix := "lxc.net"
+                       if !lxc.VersionAtLeast(2, 1, 0) {
+                               networkKeyPrefix = "lxc.network"
+                       }
+
                        // Interface type specific configuration
                        if shared.StringInSlice(m["nictype"], 
[]string{"bridged", "p2p"}) {
-                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("lxc.network.%d.type", networkidx), "veth")
+                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("%s.%d.type", networkKeyPrefix, networkidx), "veth")
                                if err != nil {
                                        return err
                                }
                        } else if m["nictype"] == "physical" {
-                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("lxc.network.%d.type", networkidx), "phys")
+                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("%s.%d.type", networkKeyPrefix, networkidx), "phys")
                                if err != nil {
                                        return err
                                }
                        } else if m["nictype"] == "macvlan" {
-                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("lxc.network.%d.type", networkidx), "macvlan")
+                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("%s.%d.type", networkKeyPrefix, networkidx), "macvlan")
                                if err != nil {
                                        return err
                                }
 
-                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("lxc.network.%d.macvlan.mode", networkidx), "bridge")
+                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("%s.%d.macvlan.mode", networkKeyPrefix, networkidx), "bridge")
                                if err != nil {
                                        return err
                                }
                        }
 
-                       err = lxcSetConfigItem(cc, 
fmt.Sprintf("lxc.network.%d.flags", networkidx), "up")
+                       err = lxcSetConfigItem(cc, fmt.Sprintf("%s.%d.flags", 
networkKeyPrefix, networkidx), "up")
                        if err != nil {
                                return err
                        }
 
                        if shared.StringInSlice(m["nictype"], 
[]string{"bridged", "physical"}) {
-                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("lxc.network.%d.link", networkidx), m["parent"])
+                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("%s.%d.link", networkKeyPrefix, networkidx), m["parent"])
                                if err != nil {
                                        return err
                                }
                        } else if m["nictype"] == "macvlan" {
-                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("lxc.network.%d.link", networkidx), 
networkGetHostDevice(m["parent"], m["vlan"]))
+                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("%s.%d.link", networkKeyPrefix, networkidx), 
networkGetHostDevice(m["parent"], m["vlan"]))
                                if err != nil {
                                        return err
                                }
@@ -1267,7 +1277,7 @@ func (c *containerLXC) initLXC() error {
                        }
 
                        if vethName != "" {
-                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("lxc.network.%d.veth.pair", networkidx), vethName)
+                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("%s.%d.veth.pair", networkKeyPrefix, networkidx), vethName)
                                if err != nil {
                                        return err
                                }
@@ -1275,7 +1285,7 @@ func (c *containerLXC) initLXC() error {
 
                        // MAC address
                        if m["hwaddr"] != "" {
-                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("lxc.network.%d.hwaddr", networkidx), m["hwaddr"])
+                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("%s.%d.hwaddr", networkKeyPrefix, networkidx), m["hwaddr"])
                                if err != nil {
                                        return err
                                }
@@ -1283,7 +1293,7 @@ func (c *containerLXC) initLXC() error {
 
                        // MTU
                        if m["mtu"] != "" {
-                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("lxc.network.%d.mtu", networkidx), m["mtu"])
+                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("%s.%d.mtu", networkKeyPrefix, networkidx), m["mtu"])
                                if err != nil {
                                        return err
                                }
@@ -1291,7 +1301,7 @@ func (c *containerLXC) initLXC() error {
 
                        // Name
                        if m["name"] != "" {
-                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("lxc.network.%d.name", networkidx), m["name"])
+                               err = lxcSetConfigItem(cc, 
fmt.Sprintf("%s.%d.name", networkKeyPrefix, networkidx), m["name"])
                                if err != nil {
                                        return err
                                }
@@ -1778,20 +1788,25 @@ func (c *containerLXC) startCommon() (string, error) {
                                        return "", err
                                }
 
+                               networkKeyPrefix := "lxc.net"
+                               if !lxc.VersionAtLeast(2, 1, 0) {
+                                       networkKeyPrefix = "lxc.network"
+                               }
+
                                // Read device name from config
                                vethName := ""
-                               for i := 0; i < 
len(c.c.ConfigItem("lxc.network")); i++ {
-                                       val := 
c.c.ConfigItem(fmt.Sprintf("lxc.network.%d.hwaddr", i))
+                               for i := 0; i < 
len(c.c.ConfigItem(networkKeyPrefix)); i++ {
+                                       val := 
c.c.ConfigItem(fmt.Sprintf("%s.%d.hwaddr", networkKeyPrefix, i))
                                        if len(val) == 0 || val[0] != 
m["hwaddr"] {
                                                continue
                                        }
 
-                                       val = 
c.c.ConfigItem(fmt.Sprintf("lxc.network.%d.link", i))
+                                       val = 
c.c.ConfigItem(fmt.Sprintf("%s.%d.link", networkKeyPrefix, i))
                                        if len(val) == 0 || val[0] != 
m["parent"] {
                                                continue
                                        }
 
-                                       val = 
c.c.ConfigItem(fmt.Sprintf("lxc.network.%d.veth.pair", i))
+                                       val = 
c.c.ConfigItem(fmt.Sprintf("%s.%d.veth.pair", networkKeyPrefix, i))
                                        if len(val) == 0 {
                                                continue
                                        }
@@ -6539,13 +6554,18 @@ func (c *containerLXC) setNetworkPriority() error {
 
 func (c *containerLXC) getHostInterface(name string) string {
        if c.IsRunning() {
-               for i := 0; i < len(c.c.ConfigItem("lxc.network")); i++ {
-                       nicName := 
c.c.RunningConfigItem(fmt.Sprintf("lxc.network.%d.name", i))[0]
+               networkKeyPrefix := "lxc.net"
+               if !lxc.VersionAtLeast(2, 1, 0) {
+                       networkKeyPrefix = "lxc.network"
+               }
+
+               for i := 0; i < len(c.c.ConfigItem(networkKeyPrefix)); i++ {
+                       nicName := 
c.c.RunningConfigItem(fmt.Sprintf("%s.%d.name", networkKeyPrefix, i))[0]
                        if nicName != name {
                                continue
                        }
 
-                       veth := 
c.c.RunningConfigItem(fmt.Sprintf("lxc.network.%d.veth.pair", i))[0]
+                       veth := 
c.c.RunningConfigItem(fmt.Sprintf("%s.%d.veth.pair", networkKeyPrefix, i))[0]
                        if veth != "" {
                                return veth
                        }
_______________________________________________
lxc-devel mailing list
[email protected]
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to