tools: lxc-wait: add default log priority & cleanups

Signed-off-by: 2xsec <dh48.jeong@samsung.com>
This commit is contained in:
2xsec 2018-08-20 10:43:22 +09:00
parent 2c70300ad8
commit 75457df5dc
No known key found for this signature in database
GPG Key ID: 0BE2750EE612F372

View File

@ -37,25 +37,8 @@
lxc_log_define(lxc_wait, lxc); lxc_log_define(lxc_wait, lxc);
static int my_checker(const struct lxc_arguments *args) static int my_parser(struct lxc_arguments *args, int c, char *arg);
{ static int my_checker(const struct lxc_arguments *args);
if (!args->states) {
ERROR("Missing state option to wait for");
return -1;
}
return 0;
}
static int my_parser(struct lxc_arguments *args, int c, char *arg)
{
switch (c) {
case 's': args->states = optarg; break;
case 't': args->timeout = atol(optarg); break;
}
return 0;
}
static const struct option my_longopts[] = { static const struct option my_longopts[] = {
{"state", required_argument, 0, 's'}, {"state", required_argument, 0, 's'},
@ -64,8 +47,8 @@ static const struct option my_longopts[] = {
}; };
static struct lxc_arguments my_args = { static struct lxc_arguments my_args = {
.progname = "lxc-wait", .progname = "lxc-wait",
.help = "\ .help = "\
--name=NAME --state=STATE\n\ --name=NAME --state=STATE\n\
\n\ \n\
lxc-wait waits for NAME container state to reach STATE\n\ lxc-wait waits for NAME container state to reach STATE\n\
@ -77,12 +60,38 @@ Options :\n\
ABORTING, FREEZING, FROZEN, THAWED\n\ ABORTING, FREEZING, FROZEN, THAWED\n\
-t, --timeout=TMO Seconds to wait for state changes\n\ -t, --timeout=TMO Seconds to wait for state changes\n\
--rcfile=FILE Load configuration file FILE\n", --rcfile=FILE Load configuration file FILE\n",
.options = my_longopts, .options = my_longopts,
.parser = my_parser, .parser = my_parser,
.checker = my_checker, .checker = my_checker,
.timeout = -1, .log_priority = "ERROR",
.log_file = "none",
.timeout = -1,
}; };
static int my_parser(struct lxc_arguments *args, int c, char *arg)
{
switch (c) {
case 's':
args->states = optarg;
break;
case 't':
args->timeout = atol(optarg);
break;
}
return 0;
}
static int my_checker(const struct lxc_arguments *args)
{
if (!args->states) {
ERROR("Missing state option to wait for");
return -1;
}
return 0;
}
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
struct lxc_container *c; struct lxc_container *c;
@ -91,18 +100,15 @@ int main(int argc, char *argv[])
if (lxc_arguments_parse(&my_args, argc, argv)) if (lxc_arguments_parse(&my_args, argc, argv))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
/* Only create log if explicitly instructed */ log.name = my_args.name;
if (my_args.log_file || my_args.log_priority) { log.file = my_args.log_file;
log.name = my_args.name; log.level = my_args.log_priority;
log.file = my_args.log_file; log.prefix = my_args.progname;
log.level = my_args.log_priority; log.quiet = my_args.quiet;
log.prefix = my_args.progname; log.lxcpath = my_args.lxcpath[0];
log.quiet = my_args.quiet;
log.lxcpath = my_args.lxcpath[0];
if (lxc_log_init(&log)) if (lxc_log_init(&log))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
}
c = lxc_container_new(my_args.name, my_args.lxcpath[0]); c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c) if (!c)