[lxc-devel] [lxd/master] Prefix paths when lxc is run in a snap
albertodonato on Github
lxc-bot at linuxcontainers.org
Wed Oct 11 12:02:09 UTC 2017
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 374 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20171011/36f370d7/attachment.bin>
-------------- next part --------------
From 32cc148ce1a35a51929caad2544c315867b2e00a Mon Sep 17 00:00:00 2001
From: Alberto Donato <alberto.donato at canonical.com>
Date: Tue, 10 Oct 2017 09:29:53 +0200
Subject: [PATCH 1/2] lxc/file: use shared.HostPath for push/pull
Signed-off-by: Alberto Donato <alberto.donato at canonical.com>
---
lxc/file.go | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lxc/file.go b/lxc/file.go
index 8373ca7e6..1d1a3e893 100644
--- a/lxc/file.go
+++ b/lxc/file.go
@@ -77,7 +77,7 @@ func (c *fileCmd) recursivePullFile(d lxd.ContainerServer, container string, p s
return err
}
- target := filepath.Join(targetDir, filepath.Base(p))
+ target := filepath.Join(shared.HostPath(targetDir), filepath.Base(p))
if resp.Type == "directory" {
err := os.Mkdir(target, os.FileMode(resp.Mode))
if err != nil {
@@ -116,7 +116,7 @@ func (c *fileCmd) recursivePullFile(d lxd.ContainerServer, container string, p s
}
func (c *fileCmd) recursivePushFile(d lxd.ContainerServer, container string, source string, target string) error {
- source = filepath.Clean(source)
+ source = shared.HostPath(filepath.Clean(source))
sourceDir, _ := filepath.Split(source)
sourceLen := len(sourceDir)
From bad4777d875bb9406fc1e4ba74c7a4f2c9be6092 Mon Sep 17 00:00:00 2001
From: Alberto Donato <alberto.donato at canonical.com>
Date: Tue, 10 Oct 2017 09:37:50 +0200
Subject: [PATCH 2/2] lxc/image: use shared.HostPath for import/export
Signed-off-by: Alberto Donato <alberto.donato at canonical.com>
---
lxc/image.go | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/lxc/image.go b/lxc/image.go
index 286bb4681..4a629083b 100644
--- a/lxc/image.go
+++ b/lxc/image.go
@@ -630,7 +630,7 @@ func (c *imageCmd) run(conf *config.Config, args []string) error {
for _, arg := range args[1:] {
split := strings.Split(arg, "=")
- if len(split) == 1 || shared.PathExists(arg) {
+ if len(split) == 1 || shared.PathExists(shared.HostPath(arg)) {
if strings.HasSuffix(arg, ":") {
var err error
remote, _, err = conf.ParseRemote(arg)
@@ -657,6 +657,7 @@ func (c *imageCmd) run(conf *config.Config, args []string) error {
imageFile = args[1]
properties = properties[1:]
}
+ imageFile = shared.HostPath(imageFile)
d, err := conf.GetContainerServer(remote)
if err != nil {
@@ -881,7 +882,8 @@ func (c *imageCmd) run(conf *config.Config, args []string) error {
targetMeta = args[2]
}
}
- targetRootfs := targetMeta + ".root"
+ targetMeta = shared.HostPath(targetMeta)
+ targetRootfs := shared.HostPath(targetMeta + ".root")
// Prepare the files
dest, err := os.Create(targetMeta)
@@ -927,7 +929,7 @@ func (c *imageCmd) run(conf *config.Config, args []string) error {
// Rename files
if shared.IsDir(target) {
if resp.MetaName != "" {
- err := os.Rename(targetMeta, filepath.Join(target, resp.MetaName))
+ err := os.Rename(targetMeta, shared.HostPath(filepath.Join(target, resp.MetaName)))
if err != nil {
os.Remove(targetMeta)
os.Remove(targetRootfs)
@@ -937,7 +939,7 @@ func (c *imageCmd) run(conf *config.Config, args []string) error {
}
if resp.RootfsSize > 0 && resp.RootfsName != "" {
- err := os.Rename(targetRootfs, filepath.Join(target, resp.RootfsName))
+ err := os.Rename(targetRootfs, shared.HostPath(filepath.Join(target, resp.RootfsName)))
if err != nil {
os.Remove(targetMeta)
os.Remove(targetRootfs)
More information about the lxc-devel
mailing list