The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/3478
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 3b0886f3af0d69f89c417d372475db0c7709b09e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com> Date: Sun, 2 Jul 2017 01:06:58 -0400 Subject: [PATCH 1/2] Implement support for symlinks in file API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #3335 Signed-off-by: Stéphane Graber <stgra...@ubuntu.com> --- client/lxd_containers.go | 6 ++++++ doc/api-extensions.md | 4 ++++ doc/rest-api.md | 2 +- lxc/file.go | 55 ++++++++++++++++++++++++++---------------------- lxd/api_1.0.go | 1 + lxd/container.go | 2 +- lxd/container_file.go | 15 +++++++++++-- lxd/container_lxc.go | 5 +++-- lxd/main_nsexec.go | 40 ++++++++++++++++++++++++++++++----- test/suites/filemanip.sh | 2 ++ 10 files changed, 96 insertions(+), 36 deletions(-) diff --git a/client/lxd_containers.go b/client/lxd_containers.go index e8d03a144..24a7f2d11 100644 --- a/client/lxd_containers.go +++ b/client/lxd_containers.go @@ -538,6 +538,12 @@ func (r *ProtocolLXD) CreateContainerFile(containerName string, path string, arg } } + if args.Type == "symlink" { + if !r.HasExtension("file_symlinks") { + return fmt.Errorf("The server is missing the required \"file_symlinks\" API extension") + } + } + if args.WriteMode == "append" { if !r.HasExtension("file_append") { return fmt.Errorf("The server is missing the required \"file_append\" API extension") diff --git a/doc/api-extensions.md b/doc/api-extensions.md index a54b4d101..4590b3eab 100644 --- a/doc/api-extensions.md +++ b/doc/api-extensions.md @@ -284,3 +284,7 @@ property in the containers root disk device. This introduces a new security.idmap.base allowing the user to skip the map auto-selection process for isolated containers and specify what host uid/gid to use as the base. + +## file\_symlinks +This adds support for transfering symlinks through the file API. +X-LXD-type can now be "symlink" with the request content being the target path. diff --git a/doc/rest-api.md b/doc/rest-api.md index f35873419..3728dfa50 100644 --- a/doc/rest-api.md +++ b/doc/rest-api.md @@ -839,7 +839,7 @@ The following headers may be set by the client: * X-LXD-uid: 0 * X-LXD-gid: 0 * X-LXD-mode: 0700 - * X-LXD-type: one of "directory" or "file" + * X-LXD-type: one of "directory", "file" or "symlink" * X-LXD-write: overwrite (or append, introduced with API extension "file\_append") This is designed to be easily usable from the command line or even a web diff --git a/lxc/file.go b/lxc/file.go index 52cc12ce4..8373ca7e6 100644 --- a/lxc/file.go +++ b/lxc/file.go @@ -1,6 +1,7 @@ package main import ( + "bytes" "fmt" "io" "io/ioutil" @@ -124,38 +125,42 @@ func (c *fileCmd) recursivePushFile(d lxd.ContainerServer, container string, sou return fmt.Errorf(i18n.G("Failed to walk path for %s: %s"), p, err) } - // Detect symlinks - if !fInfo.Mode().IsRegular() && !fInfo.Mode().IsDir() { - return fmt.Errorf(i18n.G("'%s' isn't a regular file or directory."), p) + // Detect unsupported files + if !fInfo.Mode().IsRegular() && !fInfo.Mode().IsDir() && fInfo.Mode()&os.ModeSymlink != os.ModeSymlink { + return fmt.Errorf(i18n.G("'%s' isn't a supported file type."), p) } + // Prepare for file transfer targetPath := path.Join(target, filepath.ToSlash(p[sourceLen:])) - if fInfo.IsDir() { - mode, uid, gid := shared.GetOwnerMode(fInfo) - args := lxd.ContainerFileArgs{ - UID: int64(uid), - GID: int64(gid), - Mode: int(mode.Perm()), - Type: "directory", - } - - return d.CreateContainerFile(container, targetPath, args) + mode, uid, gid := shared.GetOwnerMode(fInfo) + args := lxd.ContainerFileArgs{ + UID: int64(uid), + GID: int64(gid), + Mode: int(mode.Perm()), } - f, err := os.Open(p) - if err != nil { - return err - } - defer f.Close() + if fInfo.IsDir() { + // Directory handling + args.Type = "directory" + } else if fInfo.Mode()&os.ModeSymlink == os.ModeSymlink { + // Symlink handling + symlinkTarget, err := os.Readlink(p) + if err != nil { + return err + } - mode, uid, gid := shared.GetOwnerMode(fInfo) + args.Type = "symlink" + args.Content = bytes.NewReader([]byte(symlinkTarget)) + } else { + // File handling + f, err := os.Open(p) + if err != nil { + return err + } + defer f.Close() - args := lxd.ContainerFileArgs{ - Content: f, - UID: int64(uid), - GID: int64(gid), - Mode: int(mode.Perm()), - Type: "file", + args.Type = "file" + args.Content = f } return d.CreateContainerFile(container, targetPath, args) diff --git a/lxd/api_1.0.go b/lxd/api_1.0.go index 743cb2ce2..0c0ad691b 100644 --- a/lxd/api_1.0.go +++ b/lxd/api_1.0.go @@ -110,6 +110,7 @@ func api10Get(d *Daemon, r *http.Request) Response { "image_force_refresh", "storage_lvm_lv_resizing", "id_map_base", + "file_symlinks", }, APIStatus: "stable", APIVersion: version.APIVersion, diff --git a/lxd/container.go b/lxd/container.go index 0ad88b3f6..3baea4595 100644 --- a/lxd/container.go +++ b/lxd/container.go @@ -447,7 +447,7 @@ type container interface { // File handling FileExists(path string) error FilePull(srcpath string, dstpath string) (int64, int64, os.FileMode, string, []string, error) - FilePush(srcpath string, dstpath string, uid int64, gid int64, mode int, write string) error + FilePush(type_ string, srcpath string, dstpath string, uid int64, gid int64, mode int, write string) error FileRemove(path string) error /* Command execution: diff --git a/lxd/container_file.go b/lxd/container_file.go index eb443a354..ea97ac8e6 100644 --- a/lxd/container_file.go +++ b/lxd/container_file.go @@ -107,14 +107,25 @@ func containerFilePut(c container, path string, r *http.Request) Response { } // Transfer the file into the container - err = c.FilePush(temp.Name(), path, uid, gid, mode, write) + err = c.FilePush("file", temp.Name(), path, uid, gid, mode, write) if err != nil { return InternalError(err) } return EmptySyncResponse + } else if type_ == "symlink" { + target, err := ioutil.ReadAll(r.Body) + if err != nil { + return InternalError(err) + } + + err = c.FilePush("symlink", string(target), path, uid, gid, mode, write) + if err != nil { + return InternalError(err) + } + return EmptySyncResponse } else if type_ == "directory" { - err := c.FilePush("", path, uid, gid, mode, write) + err := c.FilePush("directory", "", path, uid, gid, mode, write) if err != nil { return InternalError(err) } diff --git a/lxd/container_lxc.go b/lxd/container_lxc.go index 46ce11030..7484a3319 100644 --- a/lxd/container_lxc.go +++ b/lxd/container_lxc.go @@ -4722,7 +4722,7 @@ func (c *containerLXC) FilePull(srcpath string, dstpath string) (int64, int64, o return uid, gid, os.FileMode(mode), type_, dirEnts, nil } -func (c *containerLXC) FilePush(srcpath string, dstpath string, uid int64, gid int64, mode int, write string) error { +func (c *containerLXC) FilePush(type_ string, srcpath string, dstpath string, uid int64, gid int64, mode int, write string) error { var rootUid int64 var rootGid int64 var errStr string @@ -4751,7 +4751,7 @@ func (c *containerLXC) FilePush(srcpath string, dstpath string, uid int64, gid i } defaultMode := 0640 - if srcpath == "" { + if type_ == "directory" { defaultMode = 0750 } @@ -4763,6 +4763,7 @@ func (c *containerLXC) FilePush(srcpath string, dstpath string, uid int64, gid i fmt.Sprintf("%d", c.InitPID()), srcpath, dstpath, + type_, fmt.Sprintf("%d", uid), fmt.Sprintf("%d", gid), fmt.Sprintf("%d", mode), diff --git a/lxd/main_nsexec.go b/lxd/main_nsexec.go index 67c3c146e..dde8b3d23 100644 --- a/lxd/main_nsexec.go +++ b/lxd/main_nsexec.go @@ -180,15 +180,16 @@ void attach_userns(int pid) { } } -int manip_file_in_ns(char *rootfs, int pid, char *host, char *container, bool is_put, uid_t uid, gid_t gid, mode_t mode, uid_t defaultUid, gid_t defaultGid, mode_t defaultMode, bool append) { +int manip_file_in_ns(char *rootfs, int pid, char *host, char *container, bool is_put, char *type, uid_t uid, gid_t gid, mode_t mode, uid_t defaultUid, gid_t defaultGid, mode_t defaultMode, bool append) { int host_fd = -1, container_fd = -1; int ret = -1; int container_open_flags; struct stat st; int exists = 1; - bool is_dir_manip = !strcmp(host, ""); + bool is_dir_manip = type != NULL && !strcmp(type, "directory"); + bool is_symlink_manip = type != NULL && !strcmp(type, "symlink"); - if (!is_dir_manip) { + if (!is_dir_manip && !is_symlink_manip) { host_fd = open(host, O_RDWR); if (host_fd < 0) { error("error: open"); @@ -241,6 +242,32 @@ int manip_file_in_ns(char *rootfs, int pid, char *host, char *container, bool is return 0; } + if (is_put && is_symlink_manip) { + if (mode == -1) { + mode = defaultMode; + } + + if (uid == -1) { + uid = defaultUid; + } + + if (gid == -1) { + gid = defaultGid; + } + + if (symlink(host, container) < 0 && errno != EEXIST) { + error("error: symlink"); + return -1; + } + + if (fchownat(0, container, uid, gid, AT_SYMLINK_NOFOLLOW) < 0) { + error("error: chown"); + return -1; + } + + return 0; + } + if (stat(container, &st) < 0) exists = 0; @@ -502,7 +529,7 @@ void forkdofile(char *buf, char *cur, bool is_put, ssize_t size) { uid_t defaultUid = 0; gid_t defaultGid = 0; mode_t defaultMode = 0; - char *command = cur, *rootfs = NULL, *source = NULL, *target = NULL, *writeMode = NULL; + char *command = cur, *rootfs = NULL, *source = NULL, *target = NULL, *writeMode = NULL, *type = NULL; pid_t pid; bool append = false; @@ -520,6 +547,9 @@ void forkdofile(char *buf, char *cur, bool is_put, ssize_t size) { if (is_put) { ADVANCE_ARG_REQUIRED(); + type = cur; + + ADVANCE_ARG_REQUIRED(); uid = atoi(cur); ADVANCE_ARG_REQUIRED(); @@ -543,7 +573,7 @@ void forkdofile(char *buf, char *cur, bool is_put, ssize_t size) { } } - _exit(manip_file_in_ns(rootfs, pid, source, target, is_put, uid, gid, mode, defaultUid, defaultGid, defaultMode, append)); + _exit(manip_file_in_ns(rootfs, pid, source, target, is_put, type, uid, gid, mode, defaultUid, defaultGid, defaultMode, append)); } void forkcheckfile(char *buf, char *cur, bool is_put, ssize_t size) { diff --git a/test/suites/filemanip.sh b/test/suites/filemanip.sh index 1eb6f2847..d1e8e58c2 100644 --- a/test/suites/filemanip.sh +++ b/test/suites/filemanip.sh @@ -23,6 +23,7 @@ test_filemanip() { chown 1000:1000 "${TEST_DIR}"/source/another_level echo "foo" > "${TEST_DIR}"/source/foo echo "bar" > "${TEST_DIR}"/source/bar + ln -s bar "${TEST_DIR}"/source/baz lxc file push -p -r "${TEST_DIR}"/source filemanip/tmp/ptest @@ -31,6 +32,7 @@ test_filemanip() { [ "$(lxc exec filemanip -- stat -c "%u" /tmp/ptest/source/another_level)" = "1000" ] [ "$(lxc exec filemanip -- stat -c "%g" /tmp/ptest/source/another_level)" = "1000" ] [ "$(lxc exec filemanip -- stat -c "%a" /tmp/ptest/source)" = "755" ] + [ "$(lxc exec filemanip -- readlink /tmp/ptest/source/baz)" = "bar" ] lxc exec filemanip -- rm -rf /tmp/ptest/source From 964aa972dbea6e041ad9ec8f95b29a20a4a5c29b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com> Date: Sun, 2 Jul 2017 01:07:28 -0400 Subject: [PATCH 2/2] i18n: Update templates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <stgra...@ubuntu.com> --- po/de.po | 38 +++++++++++++++++++------------------- po/el.po | 38 +++++++++++++++++++------------------- po/fr.po | 38 +++++++++++++++++++------------------- po/it.po | 38 +++++++++++++++++++------------------- po/ja.po | 38 +++++++++++++++++++------------------- po/lxd.pot | 38 +++++++++++++++++++------------------- po/nl.po | 38 +++++++++++++++++++------------------- po/ru.po | 38 +++++++++++++++++++------------------- po/sr.po | 38 +++++++++++++++++++------------------- po/sv.po | 38 +++++++++++++++++++------------------- po/tr.po | 38 +++++++++++++++++++------------------- 11 files changed, 209 insertions(+), 209 deletions(-) diff --git a/po/de.po b/po/de.po index 5e3bd2a00..62c8e425b 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n" -"POT-Creation-Date: 2017-07-01 16:31-0400\n" +"POT-Creation-Date: 2017-07-02 01:07-0400\n" "PO-Revision-Date: 2017-02-14 17:11+0000\n" "Last-Translator: Tim Rose <t...@netlope.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/linux-containers/" @@ -213,7 +213,7 @@ msgstr "" msgid "%s (%d more)" msgstr "" -#: lxc/file.go:187 +#: lxc/file.go:192 #, c-format msgid "%s is not a directory" msgstr "" @@ -223,9 +223,9 @@ msgstr "" msgid "%v (interrupt two more times to force)" msgstr "" -#: lxc/file.go:129 +#: lxc/file.go:130 #, c-format -msgid "'%s' isn't a regular file or directory." +msgid "'%s' isn't a supported file type." msgstr "" #: lxc/snapshot.go:53 @@ -307,7 +307,7 @@ msgstr " Prozessorauslastung:" msgid "CREATED AT" msgstr "ERSTELLT AM" -#: lxc/file.go:480 +#: lxc/file.go:485 msgid "Can't pull a directory without --recursive" msgstr "" @@ -394,7 +394,7 @@ msgstr "" msgid "Could not create server cert dir" msgstr "Kann Verzeichnis für Zertifikate auf dem Server nicht erstellen" -#: lxc/file.go:69 lxc/file.go:70 +#: lxc/file.go:70 lxc/file.go:71 msgid "Create any directories necessary" msgstr "" @@ -521,7 +521,7 @@ msgstr "" msgid "Failed to get the new container name" msgstr "kann nicht zum selben Container Namen kopieren" -#: lxc/file.go:124 +#: lxc/file.go:125 #, c-format msgid "Failed to walk path for %s: %s" msgstr "" @@ -621,17 +621,17 @@ msgstr "Akzeptiere Zertifikat" msgid "Invalid configuration key" msgstr "" -#: lxc/file.go:523 +#: lxc/file.go:528 #, fuzzy, c-format msgid "Invalid path %s" msgstr "Ungültiges Ziel %s" -#: lxc/file.go:452 +#: lxc/file.go:457 #, c-format msgid "Invalid source %s" msgstr "Ungültige Quelle %s" -#: lxc/file.go:229 +#: lxc/file.go:234 #, c-format msgid "Invalid target %s" msgstr "Ungültiges Ziel %s" @@ -698,7 +698,7 @@ msgstr "Fehlende Zusammenfassung." msgid "More than one device matches, specify the device name." msgstr "" -#: lxc/file.go:439 +#: lxc/file.go:444 msgid "More than one file to download, but target is not a directory" msgstr "" "Mehr als eine Datei herunterzuladen, aber das Ziel ist kein Verzeichnis" @@ -919,7 +919,7 @@ msgstr "" msgid "Public: %s" msgstr "Öffentlich: %s\n" -#: lxc/file.go:67 lxc/file.go:68 +#: lxc/file.go:68 lxc/file.go:69 msgid "Recursively push or pull files" msgstr "" @@ -1002,15 +1002,15 @@ msgstr "" msgid "Server protocol (lxd or simplestreams)" msgstr "" -#: lxc/file.go:65 +#: lxc/file.go:66 msgid "Set the file's gid on push" msgstr "Setzt die gid der Datei beim Übertragen" -#: lxc/file.go:66 +#: lxc/file.go:67 msgid "Set the file's perms on push" msgstr "Setzt die Dateiberechtigungen beim Übertragen" -#: lxc/file.go:64 +#: lxc/file.go:65 msgid "Set the file's uid on push" msgstr "Setzt die uid der Datei beim Übertragen" @@ -1239,7 +1239,7 @@ msgstr "" msgid "Unable to read remote TLS certificate" msgstr "" -#: lxc/file.go:111 +#: lxc/file.go:112 #, fuzzy, c-format msgid "Unknown file type '%s'" msgstr "Unbekannter Befehl %s für Abbild" @@ -1418,7 +1418,7 @@ msgstr "" "\n" "lxc exec <Container> [--env EDITOR=/usr/bin/vim]... <Befehl>\n" -#: lxc/file.go:38 +#: lxc/file.go:39 #, fuzzy msgid "" "Usage: lxc file <subcommand> [options]\n" @@ -2200,7 +2200,7 @@ msgstr "" msgid "can't remove the default remote" msgstr "" -#: lxc/file.go:277 +#: lxc/file.go:282 msgid "can't supply uid/gid/mode in recursive mode" msgstr "" @@ -2244,7 +2244,7 @@ msgstr "OK (y/n)? " msgid "processing aliases failed %s\n" msgstr "" -#: lxc/file.go:551 +#: lxc/file.go:556 msgid "recursive edit doesn't make sense :(" msgstr "" diff --git a/po/el.po b/po/el.po index 30af00369..164d6eaf9 100644 --- a/po/el.po +++ b/po/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n" -"POT-Creation-Date: 2017-07-01 16:31-0400\n" +"POT-Creation-Date: 2017-07-02 01:07-0400\n" "PO-Revision-Date: 2017-02-14 08:00+0000\n" "Last-Translator: Simos Xenitellis <simos...@gmail.com>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/linux-containers/" @@ -127,7 +127,7 @@ msgstr "" msgid "%s (%d more)" msgstr "" -#: lxc/file.go:187 +#: lxc/file.go:192 #, c-format msgid "%s is not a directory" msgstr "" @@ -137,9 +137,9 @@ msgstr "" msgid "%v (interrupt two more times to force)" msgstr "" -#: lxc/file.go:129 +#: lxc/file.go:130 #, c-format -msgid "'%s' isn't a regular file or directory." +msgid "'%s' isn't a supported file type." msgstr "" #: lxc/snapshot.go:53 @@ -219,7 +219,7 @@ msgstr " Χρήση CPU:" msgid "CREATED AT" msgstr "" -#: lxc/file.go:480 +#: lxc/file.go:485 msgid "Can't pull a directory without --recursive" msgstr "" @@ -304,7 +304,7 @@ msgstr "" msgid "Could not create server cert dir" msgstr "" -#: lxc/file.go:69 lxc/file.go:70 +#: lxc/file.go:70 lxc/file.go:71 msgid "Create any directories necessary" msgstr "" @@ -427,7 +427,7 @@ msgstr "" msgid "Failed to get the new container name" msgstr "" -#: lxc/file.go:124 +#: lxc/file.go:125 #, c-format msgid "Failed to walk path for %s: %s" msgstr "" @@ -523,17 +523,17 @@ msgstr "" msgid "Invalid configuration key" msgstr "" -#: lxc/file.go:523 +#: lxc/file.go:528 #, c-format msgid "Invalid path %s" msgstr "" -#: lxc/file.go:452 +#: lxc/file.go:457 #, c-format msgid "Invalid source %s" msgstr "" -#: lxc/file.go:229 +#: lxc/file.go:234 #, c-format msgid "Invalid target %s" msgstr "" @@ -600,7 +600,7 @@ msgstr "" msgid "More than one device matches, specify the device name." msgstr "" -#: lxc/file.go:439 +#: lxc/file.go:444 msgid "More than one file to download, but target is not a directory" msgstr "" @@ -810,7 +810,7 @@ msgstr "" msgid "Public: %s" msgstr "" -#: lxc/file.go:67 lxc/file.go:68 +#: lxc/file.go:68 lxc/file.go:69 msgid "Recursively push or pull files" msgstr "" @@ -890,15 +890,15 @@ msgstr "" msgid "Server protocol (lxd or simplestreams)" msgstr "" -#: lxc/file.go:65 +#: lxc/file.go:66 msgid "Set the file's gid on push" msgstr "" -#: lxc/file.go:66 +#: lxc/file.go:67 msgid "Set the file's perms on push" msgstr "" -#: lxc/file.go:64 +#: lxc/file.go:65 msgid "Set the file's uid on push" msgstr "" @@ -1117,7 +1117,7 @@ msgstr "" msgid "Unable to read remote TLS certificate" msgstr "" -#: lxc/file.go:111 +#: lxc/file.go:112 #, c-format msgid "Unknown file type '%s'" msgstr "" @@ -1244,7 +1244,7 @@ msgid "" "AND stdout are terminals (stderr is ignored)." msgstr "" -#: lxc/file.go:38 +#: lxc/file.go:39 msgid "" "Usage: lxc file <subcommand> [options]\n" "\n" @@ -1915,7 +1915,7 @@ msgstr "" msgid "can't remove the default remote" msgstr "" -#: lxc/file.go:277 +#: lxc/file.go:282 msgid "can't supply uid/gid/mode in recursive mode" msgstr "" @@ -1958,7 +1958,7 @@ msgstr "" msgid "processing aliases failed %s\n" msgstr "" -#: lxc/file.go:551 +#: lxc/file.go:556 msgid "recursive edit doesn't make sense :(" msgstr "" diff --git a/po/fr.po b/po/fr.po index ff103db94..7e6a0d43d 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n" -"POT-Creation-Date: 2017-07-01 16:31-0400\n" +"POT-Creation-Date: 2017-07-02 01:07-0400\n" "PO-Revision-Date: 2017-06-07 15:24+0000\n" "Last-Translator: Stéphane Graber <stgra...@stgraber.org>\n" "Language-Team: French <https://hosted.weblate.org/projects/linux-containers/" @@ -204,7 +204,7 @@ msgstr "" msgid "%s (%d more)" msgstr "%s (%d de plus)" -#: lxc/file.go:187 +#: lxc/file.go:192 #, c-format msgid "%s is not a directory" msgstr "" @@ -214,9 +214,9 @@ msgstr "" msgid "%v (interrupt two more times to force)" msgstr "" -#: lxc/file.go:129 +#: lxc/file.go:130 #, c-format -msgid "'%s' isn't a regular file or directory." +msgid "'%s' isn't a supported file type." msgstr "" #: lxc/snapshot.go:53 @@ -296,7 +296,7 @@ msgstr "CPU utilisé :" msgid "CREATED AT" msgstr "CRÉÉ À" -#: lxc/file.go:480 +#: lxc/file.go:485 #, fuzzy msgid "Can't pull a directory without --recursive" msgstr "impossible de récupérer un répertoire sans --recursive" @@ -385,7 +385,7 @@ msgstr "Copie de l'image : %s" msgid "Could not create server cert dir" msgstr "Impossible de créer le dossier de stockage des certificats serveurs" -#: lxc/file.go:69 lxc/file.go:70 +#: lxc/file.go:70 lxc/file.go:71 msgid "Create any directories necessary" msgstr "Créer tous répertoires nécessaires" @@ -509,7 +509,7 @@ msgstr "Échec lors de la génération de 'lxc.1': %v" msgid "Failed to get the new container name" msgstr "Profil à appliquer au nouveau conteneur" -#: lxc/file.go:124 +#: lxc/file.go:125 #, c-format msgid "Failed to walk path for %s: %s" msgstr "" @@ -611,17 +611,17 @@ msgstr "Certificat invalide" msgid "Invalid configuration key" msgstr "Clé de configuration invalide" -#: lxc/file.go:523 +#: lxc/file.go:528 #, fuzzy, c-format msgid "Invalid path %s" msgstr "Cible invalide %s" -#: lxc/file.go:452 +#: lxc/file.go:457 #, c-format msgid "Invalid source %s" msgstr "Source invalide %s" -#: lxc/file.go:229 +#: lxc/file.go:234 #, c-format msgid "Invalid target %s" msgstr "Cible invalide %s" @@ -688,7 +688,7 @@ msgstr "Résumé manquant." msgid "More than one device matches, specify the device name." msgstr "Plus d'un périphérique correspond, spécifier le nom du périphérique." -#: lxc/file.go:439 +#: lxc/file.go:444 msgid "More than one file to download, but target is not a directory" msgstr "" "Plusieurs fichiers à télécharger, mais la destination n'est pas un dossier" @@ -902,7 +902,7 @@ msgstr "Serveur d'images public" msgid "Public: %s" msgstr "Public : %s" -#: lxc/file.go:67 lxc/file.go:68 +#: lxc/file.go:68 lxc/file.go:69 msgid "Recursively push or pull files" msgstr "Pousser ou récupérer des fichiers récursivement" @@ -985,15 +985,15 @@ msgstr "" msgid "Server protocol (lxd or simplestreams)" msgstr "Protocole du serveur (lxd ou simplestreams)" -#: lxc/file.go:65 +#: lxc/file.go:66 msgid "Set the file's gid on push" msgstr "Définir le gid du fichier lors de l'envoi" -#: lxc/file.go:66 +#: lxc/file.go:67 msgid "Set the file's perms on push" msgstr "Définir les permissions du fichier lors de l'envoi" -#: lxc/file.go:64 +#: lxc/file.go:65 msgid "Set the file's uid on push" msgstr "Définir l'uid du fichier lors de l'envoi" @@ -1226,7 +1226,7 @@ msgstr "Impossible de trouver help2man" msgid "Unable to read remote TLS certificate" msgstr "Impossible de lire le certificat TLS distant" -#: lxc/file.go:111 +#: lxc/file.go:112 #, c-format msgid "Unknown file type '%s'" msgstr "" @@ -1435,7 +1435,7 @@ msgstr "" "sélectionné si à la fois stdin et stdout sont des terminaux (stderr\n" "est ignoré)." -#: lxc/file.go:38 +#: lxc/file.go:39 #, fuzzy msgid "" "Usage: lxc file <subcommand> [options]\n" @@ -2482,7 +2482,7 @@ msgstr "" msgid "can't remove the default remote" msgstr "impossible de supprimer le serveur distant par défaut" -#: lxc/file.go:277 +#: lxc/file.go:282 msgid "can't supply uid/gid/mode in recursive mode" msgstr "impossible de spécifier uid/gid/mode en mode récursif" @@ -2525,7 +2525,7 @@ msgstr "ok (y/n) ?" msgid "processing aliases failed %s\n" msgstr "l'analyse des alias a échoué %s\n" -#: lxc/file.go:551 +#: lxc/file.go:556 msgid "recursive edit doesn't make sense :(" msgstr "l'édition récursive ne fait aucun sens :(" diff --git a/po/it.po b/po/it.po index d29d4132c..d930f1707 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n" -"POT-Creation-Date: 2017-07-01 16:31-0400\n" +"POT-Creation-Date: 2017-07-02 01:07-0400\n" "PO-Revision-Date: 2017-06-15 22:46+0000\n" "Last-Translator: Alberto Donato <alberto.don...@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/linux-containers/" @@ -148,7 +148,7 @@ msgstr "" msgid "%s (%d more)" msgstr "%s (altri %d)" -#: lxc/file.go:187 +#: lxc/file.go:192 #, c-format msgid "%s is not a directory" msgstr "" @@ -158,9 +158,9 @@ msgstr "" msgid "%v (interrupt two more times to force)" msgstr "" -#: lxc/file.go:129 +#: lxc/file.go:130 #, c-format -msgid "'%s' isn't a regular file or directory." +msgid "'%s' isn't a supported file type." msgstr "" #: lxc/snapshot.go:53 @@ -239,7 +239,7 @@ msgstr "Utilizzo CPU:" msgid "CREATED AT" msgstr "CREATO IL" -#: lxc/file.go:480 +#: lxc/file.go:485 msgid "Can't pull a directory without --recursive" msgstr "" @@ -324,7 +324,7 @@ msgstr "" msgid "Could not create server cert dir" msgstr "" -#: lxc/file.go:69 lxc/file.go:70 +#: lxc/file.go:70 lxc/file.go:71 msgid "Create any directories necessary" msgstr "" @@ -446,7 +446,7 @@ msgstr "" msgid "Failed to get the new container name" msgstr "" -#: lxc/file.go:124 +#: lxc/file.go:125 #, c-format msgid "Failed to walk path for %s: %s" msgstr "" @@ -542,17 +542,17 @@ msgstr "" msgid "Invalid configuration key" msgstr "" -#: lxc/file.go:523 +#: lxc/file.go:528 #, c-format msgid "Invalid path %s" msgstr "" -#: lxc/file.go:452 +#: lxc/file.go:457 #, c-format msgid "Invalid source %s" msgstr "" -#: lxc/file.go:229 +#: lxc/file.go:234 #, c-format msgid "Invalid target %s" msgstr "" @@ -618,7 +618,7 @@ msgstr "" msgid "More than one device matches, specify the device name." msgstr "" -#: lxc/file.go:439 +#: lxc/file.go:444 msgid "More than one file to download, but target is not a directory" msgstr "" @@ -827,7 +827,7 @@ msgstr "" msgid "Public: %s" msgstr "" -#: lxc/file.go:67 lxc/file.go:68 +#: lxc/file.go:68 lxc/file.go:69 msgid "Recursively push or pull files" msgstr "" @@ -907,15 +907,15 @@ msgstr "" msgid "Server protocol (lxd or simplestreams)" msgstr "" -#: lxc/file.go:65 +#: lxc/file.go:66 msgid "Set the file's gid on push" msgstr "" -#: lxc/file.go:66 +#: lxc/file.go:67 msgid "Set the file's perms on push" msgstr "" -#: lxc/file.go:64 +#: lxc/file.go:65 msgid "Set the file's uid on push" msgstr "" @@ -1135,7 +1135,7 @@ msgstr "" msgid "Unable to read remote TLS certificate" msgstr "" -#: lxc/file.go:111 +#: lxc/file.go:112 #, c-format msgid "Unknown file type '%s'" msgstr "" @@ -1262,7 +1262,7 @@ msgid "" "AND stdout are terminals (stderr is ignored)." msgstr "" -#: lxc/file.go:38 +#: lxc/file.go:39 msgid "" "Usage: lxc file <subcommand> [options]\n" "\n" @@ -1934,7 +1934,7 @@ msgstr "" msgid "can't remove the default remote" msgstr "" -#: lxc/file.go:277 +#: lxc/file.go:282 msgid "can't supply uid/gid/mode in recursive mode" msgstr "" @@ -1977,7 +1977,7 @@ msgstr "ok (y/n)?" msgid "processing aliases failed %s\n" msgstr "errore di processamento degli alias %s\n" -#: lxc/file.go:551 +#: lxc/file.go:556 msgid "recursive edit doesn't make sense :(" msgstr "" diff --git a/po/ja.po b/po/ja.po index 7f1470496..2ecec99bb 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n" -"POT-Creation-Date: 2017-07-01 16:31-0400\n" +"POT-Creation-Date: 2017-07-02 01:07-0400\n" "PO-Revision-Date: 2017-03-23 12:03+0000\n" "Last-Translator: KATOH Yasufumi <ka...@jazz.email.ne.jp>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/linux-" @@ -127,7 +127,7 @@ msgstr "" msgid "%s (%d more)" msgstr "" -#: lxc/file.go:187 +#: lxc/file.go:192 #, c-format msgid "%s is not a directory" msgstr "" @@ -137,9 +137,9 @@ msgstr "" msgid "%v (interrupt two more times to force)" msgstr "" -#: lxc/file.go:129 +#: lxc/file.go:130 #, c-format -msgid "'%s' isn't a regular file or directory." +msgid "'%s' isn't a supported file type." msgstr "" #: lxc/snapshot.go:53 @@ -218,7 +218,7 @@ msgstr "CPU使用量:" msgid "CREATED AT" msgstr "" -#: lxc/file.go:480 +#: lxc/file.go:485 #, fuzzy msgid "Can't pull a directory without --recursive" msgstr "" @@ -306,7 +306,7 @@ msgstr "イメージのコピー中: %s" msgid "Could not create server cert dir" msgstr "サーバ証明書格納用のディレクトリを作成できません" -#: lxc/file.go:69 lxc/file.go:70 +#: lxc/file.go:70 lxc/file.go:71 msgid "Create any directories necessary" msgstr "必要なディレクトリをすべて作成します" @@ -429,7 +429,7 @@ msgstr "'lxc.1' の生成が失敗しました: %v" msgid "Failed to get the new container name" msgstr "新しいコンテナに適用するプロファイル" -#: lxc/file.go:124 +#: lxc/file.go:125 #, c-format msgid "Failed to walk path for %s: %s" msgstr "" @@ -528,17 +528,17 @@ msgstr "不正な証明書です" msgid "Invalid configuration key" msgstr "正しくない設定項目 (key) です" -#: lxc/file.go:523 +#: lxc/file.go:528 #, c-format msgid "Invalid path %s" msgstr "不正なパス %s" -#: lxc/file.go:452 +#: lxc/file.go:457 #, c-format msgid "Invalid source %s" msgstr "不正なソース %s" -#: lxc/file.go:229 +#: lxc/file.go:234 #, c-format msgid "Invalid target %s" msgstr "不正な送り先 %s" @@ -604,7 +604,7 @@ msgstr "サマリーはありません。" msgid "More than one device matches, specify the device name." msgstr "複数のデバイスとマッチします。デバイス名を指定してください。" -#: lxc/file.go:439 +#: lxc/file.go:444 msgid "More than one file to download, but target is not a directory" msgstr "" "ダウンロード対象のファイルが複数ありますが、コピー先がディレクトリではありま" @@ -816,7 +816,7 @@ msgstr "Public なイメージサーバとして設定します" msgid "Public: %s" msgstr "パブリック: %s" -#: lxc/file.go:67 lxc/file.go:68 +#: lxc/file.go:68 lxc/file.go:69 msgid "Recursively push or pull files" msgstr "再帰的にファイルをpush/pullします" @@ -897,15 +897,15 @@ msgstr "サーバが我々の証明書を追加した後我々を信頼してい msgid "Server protocol (lxd or simplestreams)" msgstr "サーバのプロトコル (lxd or simplestreams)" -#: lxc/file.go:65 +#: lxc/file.go:66 msgid "Set the file's gid on push" msgstr "プッシュ時にファイルのgidを設定します" -#: lxc/file.go:66 +#: lxc/file.go:67 msgid "Set the file's perms on push" msgstr "プッシュ時にファイルのパーミションを設定します" -#: lxc/file.go:64 +#: lxc/file.go:65 msgid "Set the file's uid on push" msgstr "プッシュ時にファイルのuidを設定します" @@ -1138,7 +1138,7 @@ msgstr "help2man が見つかりません。" msgid "Unable to read remote TLS certificate" msgstr "リモートの TLS 証明書を読めません" -#: lxc/file.go:111 +#: lxc/file.go:112 #, fuzzy, c-format msgid "Unknown file type '%s'" msgstr "未知の設定コマンド %s" @@ -1345,7 +1345,7 @@ msgstr "" "デフォルトのモードは non-interactive です。もし標準入出力が両方ともターミナル" "の場合は interactive モードが選択されます (標準エラー出力は無視されます)。" -#: lxc/file.go:38 +#: lxc/file.go:39 msgid "" "Usage: lxc file <subcommand> [options]\n" "\n" @@ -2543,7 +2543,7 @@ msgstr "`lxc config profile` は廃止されました。`lxc profile` を使っ msgid "can't remove the default remote" msgstr "デフォルトのリモートは削除できません" -#: lxc/file.go:277 +#: lxc/file.go:282 msgid "can't supply uid/gid/mode in recursive mode" msgstr "再帰 (recursive) モードでは uid/gid/mode を指定できません" @@ -2588,7 +2588,7 @@ msgstr "ok (y/n)?" msgid "processing aliases failed %s\n" msgstr "エイリアスの処理が失敗しました %s\n" -#: lxc/file.go:551 +#: lxc/file.go:556 msgid "recursive edit doesn't make sense :(" msgstr "再帰的な edit は意味がありません :(" diff --git a/po/lxd.pot b/po/lxd.pot index b68743b4b..6fad005cf 100644 --- a/po/lxd.pot +++ b/po/lxd.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n" - "POT-Creation-Date: 2017-07-01 16:31-0400\n" + "POT-Creation-Date: 2017-07-02 01:07-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -118,7 +118,7 @@ msgstr "" msgid "%s (%d more)" msgstr "" -#: lxc/file.go:187 +#: lxc/file.go:192 #, c-format msgid "%s is not a directory" msgstr "" @@ -128,9 +128,9 @@ msgstr "" msgid "%v (interrupt two more times to force)" msgstr "" -#: lxc/file.go:129 +#: lxc/file.go:130 #, c-format -msgid "'%s' isn't a regular file or directory." +msgid "'%s' isn't a supported file type." msgstr "" #: lxc/snapshot.go:53 @@ -209,7 +209,7 @@ msgstr "" msgid "CREATED AT" msgstr "" -#: lxc/file.go:480 +#: lxc/file.go:485 msgid "Can't pull a directory without --recursive" msgstr "" @@ -293,7 +293,7 @@ msgstr "" msgid "Could not create server cert dir" msgstr "" -#: lxc/file.go:69 lxc/file.go:70 +#: lxc/file.go:70 lxc/file.go:71 msgid "Create any directories necessary" msgstr "" @@ -414,7 +414,7 @@ msgstr "" msgid "Failed to get the new container name" msgstr "" -#: lxc/file.go:124 +#: lxc/file.go:125 #, c-format msgid "Failed to walk path for %s: %s" msgstr "" @@ -510,17 +510,17 @@ msgstr "" msgid "Invalid configuration key" msgstr "" -#: lxc/file.go:523 +#: lxc/file.go:528 #, c-format msgid "Invalid path %s" msgstr "" -#: lxc/file.go:452 +#: lxc/file.go:457 #, c-format msgid "Invalid source %s" msgstr "" -#: lxc/file.go:229 +#: lxc/file.go:234 #, c-format msgid "Invalid target %s" msgstr "" @@ -586,7 +586,7 @@ msgstr "" msgid "More than one device matches, specify the device name." msgstr "" -#: lxc/file.go:439 +#: lxc/file.go:444 msgid "More than one file to download, but target is not a directory" msgstr "" @@ -794,7 +794,7 @@ msgstr "" msgid "Public: %s" msgstr "" -#: lxc/file.go:67 lxc/file.go:68 +#: lxc/file.go:68 lxc/file.go:69 msgid "Recursively push or pull files" msgstr "" @@ -874,15 +874,15 @@ msgstr "" msgid "Server protocol (lxd or simplestreams)" msgstr "" -#: lxc/file.go:65 +#: lxc/file.go:66 msgid "Set the file's gid on push" msgstr "" -#: lxc/file.go:66 +#: lxc/file.go:67 msgid "Set the file's perms on push" msgstr "" -#: lxc/file.go:64 +#: lxc/file.go:65 msgid "Set the file's uid on push" msgstr "" @@ -1097,7 +1097,7 @@ msgstr "" msgid "Unable to read remote TLS certificate" msgstr "" -#: lxc/file.go:111 +#: lxc/file.go:112 #, c-format msgid "Unknown file type '%s'" msgstr "" @@ -1212,7 +1212,7 @@ msgid "Usage: lxc exec [<remote>:]<container> [-t] [-T] [-n] [--mode=auto|inte "Mode defaults to non-interactive, interactive mode is selected if both stdin AND stdout are terminals (stderr is ignored)." msgstr "" -#: lxc/file.go:38 +#: lxc/file.go:39 msgid "Usage: lxc file <subcommand> [options]\n" "\n" "Manage files in containers.\n" @@ -1815,7 +1815,7 @@ msgstr "" msgid "can't remove the default remote" msgstr "" -#: lxc/file.go:277 +#: lxc/file.go:282 msgid "can't supply uid/gid/mode in recursive mode" msgstr "" @@ -1858,7 +1858,7 @@ msgstr "" msgid "processing aliases failed %s\n" msgstr "" -#: lxc/file.go:551 +#: lxc/file.go:556 msgid "recursive edit doesn't make sense :(" msgstr "" diff --git a/po/nl.po b/po/nl.po index 35477cc5e..bb3e48383 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n" -"POT-Creation-Date: 2017-07-01 16:31-0400\n" +"POT-Creation-Date: 2017-07-02 01:07-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -124,7 +124,7 @@ msgstr "" msgid "%s (%d more)" msgstr "" -#: lxc/file.go:187 +#: lxc/file.go:192 #, c-format msgid "%s is not a directory" msgstr "" @@ -134,9 +134,9 @@ msgstr "" msgid "%v (interrupt two more times to force)" msgstr "" -#: lxc/file.go:129 +#: lxc/file.go:130 #, c-format -msgid "'%s' isn't a regular file or directory." +msgid "'%s' isn't a supported file type." msgstr "" #: lxc/snapshot.go:53 @@ -215,7 +215,7 @@ msgstr "" msgid "CREATED AT" msgstr "" -#: lxc/file.go:480 +#: lxc/file.go:485 msgid "Can't pull a directory without --recursive" msgstr "" @@ -300,7 +300,7 @@ msgstr "" msgid "Could not create server cert dir" msgstr "" -#: lxc/file.go:69 lxc/file.go:70 +#: lxc/file.go:70 lxc/file.go:71 msgid "Create any directories necessary" msgstr "" @@ -422,7 +422,7 @@ msgstr "" msgid "Failed to get the new container name" msgstr "" -#: lxc/file.go:124 +#: lxc/file.go:125 #, c-format msgid "Failed to walk path for %s: %s" msgstr "" @@ -518,17 +518,17 @@ msgstr "" msgid "Invalid configuration key" msgstr "" -#: lxc/file.go:523 +#: lxc/file.go:528 #, c-format msgid "Invalid path %s" msgstr "" -#: lxc/file.go:452 +#: lxc/file.go:457 #, c-format msgid "Invalid source %s" msgstr "" -#: lxc/file.go:229 +#: lxc/file.go:234 #, c-format msgid "Invalid target %s" msgstr "" @@ -594,7 +594,7 @@ msgstr "" msgid "More than one device matches, specify the device name." msgstr "" -#: lxc/file.go:439 +#: lxc/file.go:444 msgid "More than one file to download, but target is not a directory" msgstr "" @@ -803,7 +803,7 @@ msgstr "" msgid "Public: %s" msgstr "" -#: lxc/file.go:67 lxc/file.go:68 +#: lxc/file.go:68 lxc/file.go:69 msgid "Recursively push or pull files" msgstr "" @@ -883,15 +883,15 @@ msgstr "" msgid "Server protocol (lxd or simplestreams)" msgstr "" -#: lxc/file.go:65 +#: lxc/file.go:66 msgid "Set the file's gid on push" msgstr "" -#: lxc/file.go:66 +#: lxc/file.go:67 msgid "Set the file's perms on push" msgstr "" -#: lxc/file.go:64 +#: lxc/file.go:65 msgid "Set the file's uid on push" msgstr "" @@ -1110,7 +1110,7 @@ msgstr "" msgid "Unable to read remote TLS certificate" msgstr "" -#: lxc/file.go:111 +#: lxc/file.go:112 #, c-format msgid "Unknown file type '%s'" msgstr "" @@ -1237,7 +1237,7 @@ msgid "" "AND stdout are terminals (stderr is ignored)." msgstr "" -#: lxc/file.go:38 +#: lxc/file.go:39 msgid "" "Usage: lxc file <subcommand> [options]\n" "\n" @@ -1908,7 +1908,7 @@ msgstr "" msgid "can't remove the default remote" msgstr "" -#: lxc/file.go:277 +#: lxc/file.go:282 msgid "can't supply uid/gid/mode in recursive mode" msgstr "" @@ -1951,7 +1951,7 @@ msgstr "" msgid "processing aliases failed %s\n" msgstr "" -#: lxc/file.go:551 +#: lxc/file.go:556 msgid "recursive edit doesn't make sense :(" msgstr "" diff --git a/po/ru.po b/po/ru.po index 3cea0d8a4..92efd04c0 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n" -"POT-Creation-Date: 2017-07-01 16:31-0400\n" +"POT-Creation-Date: 2017-07-02 01:07-0400\n" "PO-Revision-Date: 2017-06-06 13:55+0000\n" "Last-Translator: Александр Киль <shor...@gmail.com>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/linux-containers/" @@ -195,7 +195,7 @@ msgstr "" msgid "%s (%d more)" msgstr "" -#: lxc/file.go:187 +#: lxc/file.go:192 #, c-format msgid "%s is not a directory" msgstr "" @@ -205,9 +205,9 @@ msgstr "" msgid "%v (interrupt two more times to force)" msgstr "" -#: lxc/file.go:129 +#: lxc/file.go:130 #, c-format -msgid "'%s' isn't a regular file or directory." +msgid "'%s' isn't a supported file type." msgstr "" #: lxc/snapshot.go:53 @@ -288,7 +288,7 @@ msgstr " Использование ЦП:" msgid "CREATED AT" msgstr "СОЗДАН" -#: lxc/file.go:480 +#: lxc/file.go:485 msgid "Can't pull a directory without --recursive" msgstr "" @@ -373,7 +373,7 @@ msgstr "Копирование образа: %s" msgid "Could not create server cert dir" msgstr "Не удалось создать каталог сертификата сервера" -#: lxc/file.go:69 lxc/file.go:70 +#: lxc/file.go:70 lxc/file.go:71 msgid "Create any directories necessary" msgstr "" @@ -496,7 +496,7 @@ msgstr "" msgid "Failed to get the new container name" msgstr "" -#: lxc/file.go:124 +#: lxc/file.go:125 #, c-format msgid "Failed to walk path for %s: %s" msgstr "" @@ -592,17 +592,17 @@ msgstr "" msgid "Invalid configuration key" msgstr "" -#: lxc/file.go:523 +#: lxc/file.go:528 #, c-format msgid "Invalid path %s" msgstr "" -#: lxc/file.go:452 +#: lxc/file.go:457 #, c-format msgid "Invalid source %s" msgstr "" -#: lxc/file.go:229 +#: lxc/file.go:234 #, c-format msgid "Invalid target %s" msgstr "" @@ -669,7 +669,7 @@ msgstr "" msgid "More than one device matches, specify the device name." msgstr "" -#: lxc/file.go:439 +#: lxc/file.go:444 msgid "More than one file to download, but target is not a directory" msgstr "" @@ -879,7 +879,7 @@ msgstr "" msgid "Public: %s" msgstr "" -#: lxc/file.go:67 lxc/file.go:68 +#: lxc/file.go:68 lxc/file.go:69 msgid "Recursively push or pull files" msgstr "" @@ -959,15 +959,15 @@ msgstr "" msgid "Server protocol (lxd or simplestreams)" msgstr "" -#: lxc/file.go:65 +#: lxc/file.go:66 msgid "Set the file's gid on push" msgstr "" -#: lxc/file.go:66 +#: lxc/file.go:67 msgid "Set the file's perms on push" msgstr "" -#: lxc/file.go:64 +#: lxc/file.go:65 msgid "Set the file's uid on push" msgstr "" @@ -1186,7 +1186,7 @@ msgstr "" msgid "Unable to read remote TLS certificate" msgstr "" -#: lxc/file.go:111 +#: lxc/file.go:112 #, c-format msgid "Unknown file type '%s'" msgstr "" @@ -1321,7 +1321,7 @@ msgid "" "AND stdout are terminals (stderr is ignored)." msgstr "" -#: lxc/file.go:38 +#: lxc/file.go:39 msgid "" "Usage: lxc file <subcommand> [options]\n" "\n" @@ -1992,7 +1992,7 @@ msgstr "" msgid "can't remove the default remote" msgstr "" -#: lxc/file.go:277 +#: lxc/file.go:282 msgid "can't supply uid/gid/mode in recursive mode" msgstr "" @@ -2035,7 +2035,7 @@ msgstr "" msgid "processing aliases failed %s\n" msgstr "" -#: lxc/file.go:551 +#: lxc/file.go:556 msgid "recursive edit doesn't make sense :(" msgstr "" diff --git a/po/sr.po b/po/sr.po index 6c552b1c7..85948cab1 100644 --- a/po/sr.po +++ b/po/sr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n" -"POT-Creation-Date: 2017-07-01 16:31-0400\n" +"POT-Creation-Date: 2017-07-02 01:07-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -124,7 +124,7 @@ msgstr "" msgid "%s (%d more)" msgstr "" -#: lxc/file.go:187 +#: lxc/file.go:192 #, c-format msgid "%s is not a directory" msgstr "" @@ -134,9 +134,9 @@ msgstr "" msgid "%v (interrupt two more times to force)" msgstr "" -#: lxc/file.go:129 +#: lxc/file.go:130 #, c-format -msgid "'%s' isn't a regular file or directory." +msgid "'%s' isn't a supported file type." msgstr "" #: lxc/snapshot.go:53 @@ -215,7 +215,7 @@ msgstr "" msgid "CREATED AT" msgstr "" -#: lxc/file.go:480 +#: lxc/file.go:485 msgid "Can't pull a directory without --recursive" msgstr "" @@ -300,7 +300,7 @@ msgstr "" msgid "Could not create server cert dir" msgstr "" -#: lxc/file.go:69 lxc/file.go:70 +#: lxc/file.go:70 lxc/file.go:71 msgid "Create any directories necessary" msgstr "" @@ -422,7 +422,7 @@ msgstr "" msgid "Failed to get the new container name" msgstr "" -#: lxc/file.go:124 +#: lxc/file.go:125 #, c-format msgid "Failed to walk path for %s: %s" msgstr "" @@ -518,17 +518,17 @@ msgstr "" msgid "Invalid configuration key" msgstr "" -#: lxc/file.go:523 +#: lxc/file.go:528 #, c-format msgid "Invalid path %s" msgstr "" -#: lxc/file.go:452 +#: lxc/file.go:457 #, c-format msgid "Invalid source %s" msgstr "" -#: lxc/file.go:229 +#: lxc/file.go:234 #, c-format msgid "Invalid target %s" msgstr "" @@ -594,7 +594,7 @@ msgstr "" msgid "More than one device matches, specify the device name." msgstr "" -#: lxc/file.go:439 +#: lxc/file.go:444 msgid "More than one file to download, but target is not a directory" msgstr "" @@ -803,7 +803,7 @@ msgstr "" msgid "Public: %s" msgstr "" -#: lxc/file.go:67 lxc/file.go:68 +#: lxc/file.go:68 lxc/file.go:69 msgid "Recursively push or pull files" msgstr "" @@ -883,15 +883,15 @@ msgstr "" msgid "Server protocol (lxd or simplestreams)" msgstr "" -#: lxc/file.go:65 +#: lxc/file.go:66 msgid "Set the file's gid on push" msgstr "" -#: lxc/file.go:66 +#: lxc/file.go:67 msgid "Set the file's perms on push" msgstr "" -#: lxc/file.go:64 +#: lxc/file.go:65 msgid "Set the file's uid on push" msgstr "" @@ -1110,7 +1110,7 @@ msgstr "" msgid "Unable to read remote TLS certificate" msgstr "" -#: lxc/file.go:111 +#: lxc/file.go:112 #, c-format msgid "Unknown file type '%s'" msgstr "" @@ -1237,7 +1237,7 @@ msgid "" "AND stdout are terminals (stderr is ignored)." msgstr "" -#: lxc/file.go:38 +#: lxc/file.go:39 msgid "" "Usage: lxc file <subcommand> [options]\n" "\n" @@ -1908,7 +1908,7 @@ msgstr "" msgid "can't remove the default remote" msgstr "" -#: lxc/file.go:277 +#: lxc/file.go:282 msgid "can't supply uid/gid/mode in recursive mode" msgstr "" @@ -1951,7 +1951,7 @@ msgstr "" msgid "processing aliases failed %s\n" msgstr "" -#: lxc/file.go:551 +#: lxc/file.go:556 msgid "recursive edit doesn't make sense :(" msgstr "" diff --git a/po/sv.po b/po/sv.po index 4d04435cf..ae9b32ceb 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n" -"POT-Creation-Date: 2017-07-01 16:31-0400\n" +"POT-Creation-Date: 2017-07-02 01:07-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -124,7 +124,7 @@ msgstr "" msgid "%s (%d more)" msgstr "" -#: lxc/file.go:187 +#: lxc/file.go:192 #, c-format msgid "%s is not a directory" msgstr "" @@ -134,9 +134,9 @@ msgstr "" msgid "%v (interrupt two more times to force)" msgstr "" -#: lxc/file.go:129 +#: lxc/file.go:130 #, c-format -msgid "'%s' isn't a regular file or directory." +msgid "'%s' isn't a supported file type." msgstr "" #: lxc/snapshot.go:53 @@ -215,7 +215,7 @@ msgstr "" msgid "CREATED AT" msgstr "" -#: lxc/file.go:480 +#: lxc/file.go:485 msgid "Can't pull a directory without --recursive" msgstr "" @@ -300,7 +300,7 @@ msgstr "" msgid "Could not create server cert dir" msgstr "" -#: lxc/file.go:69 lxc/file.go:70 +#: lxc/file.go:70 lxc/file.go:71 msgid "Create any directories necessary" msgstr "" @@ -422,7 +422,7 @@ msgstr "" msgid "Failed to get the new container name" msgstr "" -#: lxc/file.go:124 +#: lxc/file.go:125 #, c-format msgid "Failed to walk path for %s: %s" msgstr "" @@ -518,17 +518,17 @@ msgstr "" msgid "Invalid configuration key" msgstr "" -#: lxc/file.go:523 +#: lxc/file.go:528 #, c-format msgid "Invalid path %s" msgstr "" -#: lxc/file.go:452 +#: lxc/file.go:457 #, c-format msgid "Invalid source %s" msgstr "" -#: lxc/file.go:229 +#: lxc/file.go:234 #, c-format msgid "Invalid target %s" msgstr "" @@ -594,7 +594,7 @@ msgstr "" msgid "More than one device matches, specify the device name." msgstr "" -#: lxc/file.go:439 +#: lxc/file.go:444 msgid "More than one file to download, but target is not a directory" msgstr "" @@ -803,7 +803,7 @@ msgstr "" msgid "Public: %s" msgstr "" -#: lxc/file.go:67 lxc/file.go:68 +#: lxc/file.go:68 lxc/file.go:69 msgid "Recursively push or pull files" msgstr "" @@ -883,15 +883,15 @@ msgstr "" msgid "Server protocol (lxd or simplestreams)" msgstr "" -#: lxc/file.go:65 +#: lxc/file.go:66 msgid "Set the file's gid on push" msgstr "" -#: lxc/file.go:66 +#: lxc/file.go:67 msgid "Set the file's perms on push" msgstr "" -#: lxc/file.go:64 +#: lxc/file.go:65 msgid "Set the file's uid on push" msgstr "" @@ -1110,7 +1110,7 @@ msgstr "" msgid "Unable to read remote TLS certificate" msgstr "" -#: lxc/file.go:111 +#: lxc/file.go:112 #, c-format msgid "Unknown file type '%s'" msgstr "" @@ -1237,7 +1237,7 @@ msgid "" "AND stdout are terminals (stderr is ignored)." msgstr "" -#: lxc/file.go:38 +#: lxc/file.go:39 msgid "" "Usage: lxc file <subcommand> [options]\n" "\n" @@ -1908,7 +1908,7 @@ msgstr "" msgid "can't remove the default remote" msgstr "" -#: lxc/file.go:277 +#: lxc/file.go:282 msgid "can't supply uid/gid/mode in recursive mode" msgstr "" @@ -1951,7 +1951,7 @@ msgstr "" msgid "processing aliases failed %s\n" msgstr "" -#: lxc/file.go:551 +#: lxc/file.go:556 msgid "recursive edit doesn't make sense :(" msgstr "" diff --git a/po/tr.po b/po/tr.po index d87b5907f..b41cc8a37 100644 --- a/po/tr.po +++ b/po/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n" -"POT-Creation-Date: 2017-07-01 16:31-0400\n" +"POT-Creation-Date: 2017-07-02 01:07-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -124,7 +124,7 @@ msgstr "" msgid "%s (%d more)" msgstr "" -#: lxc/file.go:187 +#: lxc/file.go:192 #, c-format msgid "%s is not a directory" msgstr "" @@ -134,9 +134,9 @@ msgstr "" msgid "%v (interrupt two more times to force)" msgstr "" -#: lxc/file.go:129 +#: lxc/file.go:130 #, c-format -msgid "'%s' isn't a regular file or directory." +msgid "'%s' isn't a supported file type." msgstr "" #: lxc/snapshot.go:53 @@ -215,7 +215,7 @@ msgstr "" msgid "CREATED AT" msgstr "" -#: lxc/file.go:480 +#: lxc/file.go:485 msgid "Can't pull a directory without --recursive" msgstr "" @@ -300,7 +300,7 @@ msgstr "" msgid "Could not create server cert dir" msgstr "" -#: lxc/file.go:69 lxc/file.go:70 +#: lxc/file.go:70 lxc/file.go:71 msgid "Create any directories necessary" msgstr "" @@ -422,7 +422,7 @@ msgstr "" msgid "Failed to get the new container name" msgstr "" -#: lxc/file.go:124 +#: lxc/file.go:125 #, c-format msgid "Failed to walk path for %s: %s" msgstr "" @@ -518,17 +518,17 @@ msgstr "" msgid "Invalid configuration key" msgstr "" -#: lxc/file.go:523 +#: lxc/file.go:528 #, c-format msgid "Invalid path %s" msgstr "" -#: lxc/file.go:452 +#: lxc/file.go:457 #, c-format msgid "Invalid source %s" msgstr "" -#: lxc/file.go:229 +#: lxc/file.go:234 #, c-format msgid "Invalid target %s" msgstr "" @@ -594,7 +594,7 @@ msgstr "" msgid "More than one device matches, specify the device name." msgstr "" -#: lxc/file.go:439 +#: lxc/file.go:444 msgid "More than one file to download, but target is not a directory" msgstr "" @@ -803,7 +803,7 @@ msgstr "" msgid "Public: %s" msgstr "" -#: lxc/file.go:67 lxc/file.go:68 +#: lxc/file.go:68 lxc/file.go:69 msgid "Recursively push or pull files" msgstr "" @@ -883,15 +883,15 @@ msgstr "" msgid "Server protocol (lxd or simplestreams)" msgstr "" -#: lxc/file.go:65 +#: lxc/file.go:66 msgid "Set the file's gid on push" msgstr "" -#: lxc/file.go:66 +#: lxc/file.go:67 msgid "Set the file's perms on push" msgstr "" -#: lxc/file.go:64 +#: lxc/file.go:65 msgid "Set the file's uid on push" msgstr "" @@ -1110,7 +1110,7 @@ msgstr "" msgid "Unable to read remote TLS certificate" msgstr "" -#: lxc/file.go:111 +#: lxc/file.go:112 #, c-format msgid "Unknown file type '%s'" msgstr "" @@ -1237,7 +1237,7 @@ msgid "" "AND stdout are terminals (stderr is ignored)." msgstr "" -#: lxc/file.go:38 +#: lxc/file.go:39 msgid "" "Usage: lxc file <subcommand> [options]\n" "\n" @@ -1908,7 +1908,7 @@ msgstr "" msgid "can't remove the default remote" msgstr "" -#: lxc/file.go:277 +#: lxc/file.go:282 msgid "can't supply uid/gid/mode in recursive mode" msgstr "" @@ -1951,7 +1951,7 @@ msgstr "" msgid "processing aliases failed %s\n" msgstr "" -#: lxc/file.go:551 +#: lxc/file.go:556 msgid "recursive edit doesn't make sense :(" msgstr ""
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel