It used to be supported with the lxc-create.in script, and
the manpage says it's supported...  So let's just support it.

Now

sudo lxc-create -t download --dir /opt/ab -n ab

works, creating the container rootfs under /opt/ab.  This
generally isn't something I'd recommend, however telling users
to use a different lxc-path isn't as friendly as I'd like,
because each lxcpath requires separate lxc-ls and lxc-autostart
runs.

Signed-off-by: Serge Hallyn <[email protected]>
---
 debian/changelog     | 6 ++++++
 src/lxc/bdev.c       | 5 ++++-
 src/lxc/bdev.h       | 1 +
 src/lxc/lxc_create.c | 3 +--
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 9d18421..2deb678 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+lxc (1.0.0+master~20140220-2000-0ubuntu1~ppa1~trusty1ubuntu1) UNRELEASED; 
urgency=medium
+
+  * implement --dir support
+
+ -- LXC buildbot <[email protected]>  Fri, 21 Feb 2014 20:18:16 +0000
+
 lxc (1.0.0+master~20140220-2000-0ubuntu1~ppa1~trusty1) trusty; urgency=low
 
   * Automated build of git://github.com/lxc/lxc (master branch)
diff --git a/src/lxc/bdev.c b/src/lxc/bdev.c
index 6d88609..952cfeb 100644
--- a/src/lxc/bdev.c
+++ b/src/lxc/bdev.c
@@ -477,7 +477,10 @@ static int dir_destroy(struct bdev *orig)
 static int dir_create(struct bdev *bdev, const char *dest, const char *n,
                        struct bdev_specs *specs)
 {
-       bdev->src = strdup(dest);
+       if (specs->dir)
+               bdev->src = strdup(specs->dir);
+       else
+               bdev->src = strdup(dest);
        bdev->dest = strdup(dest);
        if (!bdev->src || !bdev->dest) {
                ERROR("Out of memory");
diff --git a/src/lxc/bdev.h b/src/lxc/bdev.h
index 7efc164..cc0bf02 100644
--- a/src/lxc/bdev.h
+++ b/src/lxc/bdev.h
@@ -48,6 +48,7 @@ struct bdev_specs {
                char *lv;
                char *thinpool; // lvm thin pool to use, if any
        } lvm;
+       char *dir;
 };
 
 struct bdev_ops {
diff --git a/src/lxc/lxc_create.c b/src/lxc/lxc_create.c
index a3684c1..eee6ffd 100644
--- a/src/lxc/lxc_create.c
+++ b/src/lxc/lxc_create.c
@@ -256,8 +256,7 @@ int main(int argc, char *argv[])
                        spec.lvm.thinpool = my_args.thinpool;
        }
        if (my_args.dir) {
-               ERROR("--dir is not yet supported");
-               exit(1);
+               spec.dir = my_args.dir;
        }
 
        if (strcmp(my_args.bdevtype, "_unset") == 0)
-- 
1.9.0

_______________________________________________
lxc-devel mailing list
[email protected]
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to