Skip to content

Commit

Permalink
add -f option to lxc-attach
Browse files Browse the repository at this point in the history
Otherwise a container with a non-standard configuration file
can be started but not attached to.
Fixes the following case:
 # lxc-start -n ct -f /different/path/my.config
 # lxc-attach -n ct
 Error: container ct is not defined

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
  • Loading branch information
Blub committed Aug 4, 2016
1 parent 1e7990d commit a7ae6ce
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion src/lxc/tools/lxc_attach.c
Expand Up @@ -65,6 +65,7 @@ static const struct option my_longopts[] = {
{"keep-var", required_argument, 0, 502},
{"set-var", required_argument, 0, 'v'},
{"pty-log", required_argument, 0, 'L'},
{"rcfile", required_argument, 0, 'f'},
LXC_COMMON_OPTIONS
};

Expand Down Expand Up @@ -153,6 +154,7 @@ static int my_parser(struct lxc_arguments* args, int c, char* arg)
case 'L':
args->console_log = arg;
break;
case 'f': args->rcfile = arg; break;
}

return 0;
Expand Down Expand Up @@ -202,7 +204,10 @@ Options :\n\
multiple times.\n\
--keep-var Keep an additional environment variable. Only\n\
applicable if --clear-env is specified. May be used\n\
multiple times.\n",
multiple times.\n\
-f, --rcfile=FILE\n\
Load configuration file FILE\n\
",
.options = my_longopts,
.parser = my_parser,
.checker = NULL,
Expand Down Expand Up @@ -373,6 +378,15 @@ int main(int argc, char *argv[])
if (!c)
exit(EXIT_FAILURE);

if (my_args.rcfile) {
c->clear_config(c);
if (!c->load_config(c, my_args.rcfile)) {
ERROR("Failed to load rcfile");
lxc_container_put(c);
exit(EXIT_FAILURE);
}
}

if (!c->may_control(c)) {
fprintf(stderr, "Insufficent privileges to control %s\n", c->name);
lxc_container_put(c);
Expand Down

0 comments on commit a7ae6ce

Please sign in to comment.