add dir support

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 <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
This commit is contained in:
Serge Hallyn 2014-02-21 14:36:06 -06:00 committed by Stéphane Graber
parent b2fe91c7d4
commit 7bb878863c
3 changed files with 6 additions and 3 deletions

View File

@ -477,7 +477,10 @@ static int dir_destroy(struct bdev *orig)
static int dir_create(struct bdev *bdev, const char *dest, const char *n, static int dir_create(struct bdev *bdev, const char *dest, const char *n,
struct bdev_specs *specs) 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); bdev->dest = strdup(dest);
if (!bdev->src || !bdev->dest) { if (!bdev->src || !bdev->dest) {
ERROR("Out of memory"); ERROR("Out of memory");

View File

@ -48,6 +48,7 @@ struct bdev_specs {
char *lv; char *lv;
char *thinpool; // lvm thin pool to use, if any char *thinpool; // lvm thin pool to use, if any
} lvm; } lvm;
char *dir;
}; };
struct bdev_ops { struct bdev_ops {

View File

@ -256,8 +256,7 @@ int main(int argc, char *argv[])
spec.lvm.thinpool = my_args.thinpool; spec.lvm.thinpool = my_args.thinpool;
} }
if (my_args.dir) { if (my_args.dir) {
ERROR("--dir is not yet supported"); spec.dir = my_args.dir;
exit(1);
} }
if (strcmp(my_args.bdevtype, "_unset") == 0) if (strcmp(my_args.bdevtype, "_unset") == 0)