[prev in list] [next in list] [prev in thread] [next in thread]
List: lxc-devel
Subject: [lxc-devel] [lxd/master] GET of a nonexistent file 404s
From: tych0 on Github <lxc-bot () linuxcontainers ! org>
Date: 2016-05-31 16:25:26
Message-ID: 20160531162526.1006D341E9 () mailman01 ! srv ! dcmtl ! stgraber ! net
[Download RAW message or body]
[Attachment #2 (text/x-mailbox)]
The following pull request was submitted through Github.
It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/2060
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) ===
Closes #2059
Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
[Attachment #3 (text/plain)]
From c11058ef81ee109cb82a6ea0cc70a5b32949bea4 Mon Sep 17 00:00:00 2001
From: Tycho Andersen <tycho.andersen@canonical.com>
Date: Tue, 31 May 2016 09:55:40 -0600
Subject: [PATCH] GET of a nonexistent file 404s
Closes #2059
Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
---
lxd/container_file.go | 2 +-
lxd/container_lxc.go | 3 +++
test/suites/filemanip.sh | 5 +++++
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/lxd/container_file.go b/lxd/container_file.go
index 06590a5..7ac2085 100644
--- a/lxd/container_file.go
+++ b/lxd/container_file.go
@@ -52,7 +52,7 @@ func containerFileGet(c container, path string, r *http.Request) \
Response { // Pul the file from the container
uid, gid, mode, err := c.FilePull(path, temp.Name())
if err != nil {
- return InternalError(err)
+ return SmartError(err)
}
headers := map[string]string{
diff --git a/lxd/container_lxc.go b/lxd/container_lxc.go
index 6aa3510..e07d974 100644
--- a/lxd/container_lxc.go
+++ b/lxd/container_lxc.go
@@ -2886,6 +2886,9 @@ func (c *containerLXC) FilePull(srcpath string, dstpath string) \
(int, int, os.Fi
// Extract errors
if strings.HasPrefix(line, "error: ") {
+ if strings.HasSuffix(line, "No such file or directory") {
+ return -1, -1, 0, os.ErrNotExist
+ }
return -1, -1, 0, fmt.Errorf(strings.TrimPrefix(line, "error: "))
}
diff --git a/test/suites/filemanip.sh b/test/suites/filemanip.sh
index f4b7b05..07ca148 100644
--- a/test/suites/filemanip.sh
+++ b/test/suites/filemanip.sh
@@ -2,6 +2,7 @@
test_filemanip() {
ensure_import_testimage
+ ensure_has_localhost_remote "${LXD_ADDR}"
lxc launch testimage filemanip
lxc exec filemanip -- ln -s /tmp/ /tmp/outside
@@ -10,5 +11,9 @@ test_filemanip() {
[ ! -f /tmp/main.sh ]
lxc exec filemanip -- ls /tmp/main.sh
+ # missing files should return 404
+ err=$(my_curl -o /dev/null -w "%{http_code}" -X GET \
"https://${LXD_ADDR}/1.0/containers/filemanip/files?path=/tmp/foo") + [ "${err}" -eq \
"404" ] +
lxc delete filemanip -f
}
[Attachment #4 (text/plain)]
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic