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

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) ===
This lets us fix the lack of MAC expension in the dnsmasq lease handling logic.

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
From 81ae7a9e5ab314b72481104c241dc91db512283f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Tue, 31 Dec 2019 14:08:22 -0500
Subject: [PATCH] lxd/instances: Export FillNetworkDevice
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This lets us fix the lack of MAC expension in the dnsmasq lease handling logic.

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 lxd/container_lxc.go               |  8 ++++----
 lxd/instance/instance_interface.go |  2 +-
 lxd/instance/qemu/vm_qemu.go       | 10 +++++-----
 lxd/networks_utils.go              | 10 ++++------
 4 files changed, 14 insertions(+), 16 deletions(-)

diff --git a/lxd/container_lxc.go b/lxd/container_lxc.go
index 231501ddb6..7eede32fcd 100644
--- a/lxd/container_lxc.go
+++ b/lxd/container_lxc.go
@@ -1288,7 +1288,7 @@ func (c *containerLXC) deviceLoad(deviceName string, 
rawConfig deviceConfig.Devi
 
        // Create copy of config and load some fields from volatile if device 
is nic or infiniband.
        if shared.StringInSlice(rawConfig["type"], []string{"nic", 
"infiniband"}) {
-               configCopy, err = c.fillNetworkDevice(deviceName, rawConfig)
+               configCopy, err = c.FillNetworkDevice(deviceName, rawConfig)
                if err != nil {
                        return nil, nil, err
                }
@@ -6326,9 +6326,9 @@ func (c *containerLXC) removeUnixDevices() error {
        return nil
 }
 
-// fillNetworkDevice takes a nic or infiniband device type and enriches it 
with automatically
+// FillNetworkDevice takes a nic or infiniband device type and enriches it 
with automatically
 // generated name and hwaddr properties if these are missing from the device.
-func (c *containerLXC) fillNetworkDevice(name string, m deviceConfig.Device) 
(deviceConfig.Device, error) {
+func (c *containerLXC) FillNetworkDevice(name string, m deviceConfig.Device) 
(deviceConfig.Device, error) {
        var err error
        newDevice := m.Clone()
 
@@ -6822,7 +6822,7 @@ func (c *containerLXC) maasInterfaces(devices 
map[string]map[string]string) ([]m
                        continue
                }
 
-               m, err := c.fillNetworkDevice(k, m)
+               m, err := c.FillNetworkDevice(k, m)
                if err != nil {
                        return nil, err
                }
diff --git a/lxd/instance/instance_interface.go 
b/lxd/instance/instance_interface.go
index 9c56b0ddfe..3951db18c3 100644
--- a/lxd/instance/instance_interface.go
+++ b/lxd/instance/instance_interface.go
@@ -85,6 +85,7 @@ type Instance interface {
        InitPID() int
        State() string
        ExpiryDate() time.Time
+       FillNetworkDevice(name string, m deviceConfig.Device) 
(deviceConfig.Device, error)
 
        // Paths
        Path() string
@@ -100,7 +101,6 @@ type Instance interface {
        StoragePool() (string, error)
 
        // Progress reporting
-
        SetOperation(op *operations.Operation)
 
        // FIXME: Those should be internal functions
diff --git a/lxd/instance/qemu/vm_qemu.go b/lxd/instance/qemu/vm_qemu.go
index bd98be086e..b1c0536e72 100644
--- a/lxd/instance/qemu/vm_qemu.go
+++ b/lxd/instance/qemu/vm_qemu.go
@@ -787,7 +787,7 @@ func (vm *Qemu) deviceLoad(deviceName string, rawConfig 
deviceConfig.Device) (de
 
        // Create copy of config and load some fields from volatile if device 
is nic or infiniband.
        if shared.StringInSlice(rawConfig["type"], []string{"nic", 
"infiniband"}) {
-               configCopy, err = vm.fillNetworkDevice(deviceName, rawConfig)
+               configCopy, err = vm.FillNetworkDevice(deviceName, rawConfig)
                if err != nil {
                        return nil, nil, err
                }
@@ -2729,7 +2729,7 @@ func (vm *Qemu) RenderState() (*api.InstanceState, error) 
{
                                }
 
                                // Fill the MAC address.
-                               m, err := vm.fillNetworkDevice(k, m)
+                               m, err := vm.FillNetworkDevice(k, m)
                                if err != nil {
                                        return nil, err
                                }
@@ -3095,9 +3095,9 @@ func (vm *Qemu) DaemonState() *state.State {
        return vm.state
 }
 
-// fillNetworkDevice takes a nic or infiniband device type and enriches it 
with automatically
+// FillNetworkDevice takes a nic or infiniband device type and enriches it 
with automatically
 // generated name and hwaddr properties if these are missing from the device.
-func (vm *Qemu) fillNetworkDevice(name string, m deviceConfig.Device) 
(deviceConfig.Device, error) {
+func (vm *Qemu) FillNetworkDevice(name string, m deviceConfig.Device) 
(deviceConfig.Device, error) {
        var err error
 
        newDevice := m.Clone()
@@ -3173,7 +3173,7 @@ func (vm *Qemu) maasInterfaces(devices 
map[string]map[string]string) ([]maas.Con
                        continue
                }
 
-               m, err := vm.fillNetworkDevice(k, m)
+               m, err := vm.FillNetworkDevice(k, m)
                if err != nil {
                        return nil, err
                }
diff --git a/lxd/networks_utils.go b/lxd/networks_utils.go
index 0f6194edef..6122b57069 100644
--- a/lxd/networks_utils.go
+++ b/lxd/networks_utils.go
@@ -655,12 +655,10 @@ func networkUpdateStatic(s *state.State, networkName 
string) error {
                                continue
                        }
 
-                       if inst.Type() == instancetype.Container {
-                               // Fill in the hwaddr from volatile
-                               d, err = 
inst.(*containerLXC).fillNetworkDevice(k, d)
-                               if err != nil {
-                                       continue
-                               }
+                       // Fill in the hwaddr from volatile
+                       d, err = inst.FillNetworkDevice(k, d)
+                       if err != nil {
+                               continue
                        }
 
                        // Add the new host entries
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to