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

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) ===

From 193d15431bc0d65e6a87ddcbfdcfba6184699cc3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Thu, 5 Mar 2020 00:00:37 +0100
Subject: [PATCH 1/2] lxd/vm: Tweak to mount field names
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Rename to better line up with usual kernel names for those arguments.
Also set JSON field names so the JSON file looks more like a normal LXD one.

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 lxd-agent/main_agent.go                            | 8 ++++----
 lxd/instance/drivers/driver_qemu.go                | 8 ++++----
 lxd/instance/instancetype/instance_vmagentmount.go | 8 ++++----
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/lxd-agent/main_agent.go b/lxd-agent/main_agent.go
index 3d959c7f33..6eeaf20485 100644
--- a/lxd-agent/main_agent.go
+++ b/lxd-agent/main_agent.go
@@ -201,18 +201,18 @@ func (c *cmdAgent) mountHostShares() {
        }
 
        for _, mount := range agentMounts {
-               args := []string{"-t", mount.FSType, mount.Source, 
mount.TargetPath}
+               args := []string{"-t", mount.FSType, mount.Source, mount.Target}
 
-               for _, opt := range mount.Opts {
+               for _, opt := range mount.Options {
                        args = append(args, "-o", opt)
                }
 
                _, err = shared.RunCommand("mount", args...)
                if err != nil {
-                       logger.Errorf("Failed mount %q (Type: %q, Opts: %v) to 
%q: %v", mount.Source, mount.FSType, mount.Opts, mount.TargetPath, err)
+                       logger.Errorf("Failed mount %q (Type: %q, Options: %v) 
to %q: %v", mount.Source, mount.FSType, mount.Options, mount.Target, err)
                        continue
                }
 
-               logger.Infof("Mounted %q (Type: %q, Opts: %v) to %q", 
mount.Source, mount.FSType, mount.Opts, mount.TargetPath)
+               logger.Infof("Mounted %q (Type: %q, Options: %v) to %q", 
mount.Source, mount.FSType, mount.Options, mount.Target)
        }
 }
diff --git a/lxd/instance/drivers/driver_qemu.go 
b/lxd/instance/drivers/driver_qemu.go
index d0aedaa732..8863e3fb78 100644
--- a/lxd/instance/drivers/driver_qemu.go
+++ b/lxd/instance/drivers/driver_qemu.go
@@ -1745,15 +1745,15 @@ func (vm *qemu) addDriveDirConfig(sb *strings.Builder, 
fdFiles *[]string, agentM
        mountTag := fmt.Sprintf("lxd_%s", driveConf.DevName)
 
        agentMount := instancetype.VMAgentMount{
-               Source:     mountTag,
-               TargetPath: driveConf.TargetPath,
-               FSType:     driveConf.FSType,
+               Source: mountTag,
+               Target: driveConf.TargetPath,
+               FSType: driveConf.FSType,
        }
 
        // Indicate to agent to mount this readonly. Note: This is purely to 
indicate to VM guest that this is
        // readonly, it should *not* be used as a security measure, as the VM 
guest could remount it R/W.
        if shared.StringInSlice("ro", driveConf.Opts) {
-               agentMount.Opts = append(agentMount.Opts, "ro")
+               agentMount.Options = append(agentMount.Options, "ro")
        }
 
        // Record the 9p mount for the agent.
diff --git a/lxd/instance/instancetype/instance_vmagentmount.go 
b/lxd/instance/instancetype/instance_vmagentmount.go
index a8383aa9c0..113da022ff 100644
--- a/lxd/instance/instancetype/instance_vmagentmount.go
+++ b/lxd/instance/instancetype/instance_vmagentmount.go
@@ -2,8 +2,8 @@ package instancetype
 
 // VMAgentMount defines mounts to perform inside VM via agent.
 type VMAgentMount struct {
-       Source     string
-       TargetPath string
-       FSType     string
-       Opts       []string
+       Source  string   `json:"source"`
+       Target  string   `json:"target"`
+       FSType  string   `json:"fstype"`
+       Options []string `json:"options"`
 }

From 2cd935c70e5c0165c89e823e2cc6d883e1f802e3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Thu, 5 Mar 2020 00:04:26 +0100
Subject: [PATCH 2/2] lxd-agent: Create mount path if missing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 lxd-agent/main_agent.go | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/lxd-agent/main_agent.go b/lxd-agent/main_agent.go
index 6eeaf20485..085ea639eb 100644
--- a/lxd-agent/main_agent.go
+++ b/lxd-agent/main_agent.go
@@ -201,6 +201,13 @@ func (c *cmdAgent) mountHostShares() {
        }
 
        for _, mount := range agentMounts {
+               if !shared.PathExists(mount.Target) {
+                       err := os.MkdirAll(mount.Target, 0755)
+                       if err != nil {
+                               logger.Errorf("Failed to create mount target 
%q", mount.Target)
+                       }
+               }
+
                args := []string{"-t", mount.FSType, mount.Source, mount.Target}
 
                for _, opt := range mount.Options {
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to