Commit ce9ed7c0 by 2xsec

tools: lxc-snapshot: share internal API symbols

Signed-off-by: 's avatar2xsec <dh48.jeong@samsung.com>
parent 4888c731
...@@ -285,7 +285,7 @@ lxc_unfreeze_SOURCES = tools/lxc_unfreeze.c tools/arguments.c ...@@ -285,7 +285,7 @@ lxc_unfreeze_SOURCES = tools/lxc_unfreeze.c tools/arguments.c
lxc_unshare_SOURCES = tools/lxc_unshare.c tools/arguments.c lxc_unshare_SOURCES = tools/lxc_unshare.c tools/arguments.c
lxc_wait_SOURCES = tools/lxc_wait.c tools/arguments.c lxc_wait_SOURCES = tools/lxc_wait.c tools/arguments.c
lxc_create_SOURCES = tools/lxc_create.c tools/arguments.c tools/tool_utils.c lxc_create_SOURCES = tools/lxc_create.c tools/arguments.c tools/tool_utils.c
lxc_snapshot_SOURCES = tools/lxc_snapshot.c tools/arguments.c tools/tool_utils.c lxc_snapshot_SOURCES = tools/lxc_snapshot.c tools/arguments.c
lxc_checkpoint_SOURCES = tools/lxc_checkpoint.c tools/arguments.c lxc_checkpoint_SOURCES = tools/lxc_checkpoint.c tools/arguments.c
endif endif
......
...@@ -30,7 +30,9 @@ ...@@ -30,7 +30,9 @@
#include <lxc/lxccontainer.h> #include <lxc/lxccontainer.h>
#include "arguments.h" #include "arguments.h"
#include "tool_utils.h" #include "log.h"
lxc_log_define(lxc_snapshot, lxc);
static int my_parser(struct lxc_arguments *args, int c, char *arg); static int my_parser(struct lxc_arguments *args, int c, char *arg);
...@@ -99,42 +101,42 @@ int main(int argc, char *argv[]) ...@@ -99,42 +101,42 @@ int main(int argc, char *argv[])
if (geteuid()) { if (geteuid()) {
if (access(my_args.lxcpath[0], O_RDONLY) < 0) { if (access(my_args.lxcpath[0], O_RDONLY) < 0) {
fprintf(stderr, "You lack access to %s\n", ERROR("You lack access to %s", my_args.lxcpath[0]);
my_args.lxcpath[0]);
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) {
fprintf(stderr, "System error loading container\n"); ERROR("System error loading container");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (my_args.rcfile) { if (my_args.rcfile) {
c->clear_config(c); c->clear_config(c);
if (!c->load_config(c, my_args.rcfile)) { if (!c->load_config(c, my_args.rcfile)) {
fprintf(stderr, "Failed to load rcfile\n"); ERROR("Failed to load rcfile");
lxc_container_put(c); lxc_container_put(c);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
c->configfile = strdup(my_args.rcfile); c->configfile = strdup(my_args.rcfile);
if (!c->configfile) { if (!c->configfile) {
fprintf(stderr, "Out of memory setting new config filename\n"); ERROR("Out of memory setting new config filename");
lxc_container_put(c); lxc_container_put(c);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }
if (!c->lxc_conf) { if (!c->lxc_conf) {
fprintf(stderr, "No container config specified\n"); ERROR("No container config specified");
lxc_container_put(c); lxc_container_put(c);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (!c->may_control(c)) { if (!c->may_control(c)) {
fprintf(stderr, "Insufficent privileges to control %s\n", ERROR("Insufficent privileges to control %s", my_args.name);
my_args.name);
lxc_container_put(c); lxc_container_put(c);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -145,6 +147,7 @@ int main(int argc, char *argv[]) ...@@ -145,6 +147,7 @@ int main(int argc, char *argv[])
if (ret == 0) if (ret == 0)
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -207,7 +210,7 @@ static int do_snapshot(struct lxc_container *c, char *commentfile) ...@@ -207,7 +210,7 @@ static int do_snapshot(struct lxc_container *c, char *commentfile)
ret = c->snapshot(c, commentfile); ret = c->snapshot(c, commentfile);
if (ret < 0) { if (ret < 0) {
fprintf(stderr, "Error creating a snapshot\n"); ERROR("Error creating a snapshot");
return -1; return -1;
} }
...@@ -218,13 +221,13 @@ static int do_snapshot_destroy(struct lxc_container *c, char *snapname) ...@@ -218,13 +221,13 @@ static int do_snapshot_destroy(struct lxc_container *c, char *snapname)
{ {
bool ret; bool ret;
if (strcmp(snapname, "ALL") == 0) if (!strncmp(snapname, "ALL", strlen(snapname)))
ret = c->snapshot_destroy_all(c); ret = c->snapshot_destroy_all(c);
else else
ret = c->snapshot_destroy(c, snapname); ret = c->snapshot_destroy(c, snapname);
if (!ret) { if (!ret) {
fprintf(stderr, "Error destroying snapshot %s\n", snapname); ERROR("Error destroying snapshot %s", snapname);
return -1; return -1;
} }
...@@ -238,9 +241,10 @@ static int do_snapshot_list(struct lxc_container *c, int print_comments) ...@@ -238,9 +241,10 @@ static int do_snapshot_list(struct lxc_container *c, int print_comments)
n = c->snapshot_list(c, &s); n = c->snapshot_list(c, &s);
if (n < 0) { if (n < 0) {
fprintf(stderr, "Error listing snapshots\n"); ERROR("Error listing snapshots");
return -1; return -1;
} }
if (n == 0) { if (n == 0) {
printf("No snapshots\n"); printf("No snapshots\n");
return 0; return 0;
...@@ -248,8 +252,10 @@ static int do_snapshot_list(struct lxc_container *c, int print_comments) ...@@ -248,8 +252,10 @@ static int do_snapshot_list(struct lxc_container *c, int print_comments)
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
printf("%s (%s) %s\n", s[i].name, s[i].lxcpath, s[i].timestamp); printf("%s (%s) %s\n", s[i].name, s[i].lxcpath, s[i].timestamp);
if (print_comments) if (print_comments)
print_file(s[i].comment_pathname); print_file(s[i].comment_pathname);
s[i].free(&s[i]); s[i].free(&s[i]);
} }
...@@ -269,7 +275,7 @@ static int do_snapshot_restore(struct lxc_container *c, ...@@ -269,7 +275,7 @@ static int do_snapshot_restore(struct lxc_container *c,
* original container will be destroyed and the restored container will * original container will be destroyed and the restored container will
* take its place. */ * take its place. */
if ((!args->newname) && (args->argc > 1)) { if ((!args->newname) && (args->argc > 1)) {
lxc_error(args, "Too many arguments"); ERROR("Too many arguments");
return -1; return -1;
} }
...@@ -278,7 +284,7 @@ static int do_snapshot_restore(struct lxc_container *c, ...@@ -278,7 +284,7 @@ static int do_snapshot_restore(struct lxc_container *c,
bret = c->snapshot_restore(c, args->snapname, args->newname); bret = c->snapshot_restore(c, args->snapname, args->newname);
if (!bret) { if (!bret) {
fprintf(stderr, "Error restoring snapshot %s\n", args->snapname); ERROR("Error restoring snapshot %s", args->snapname);
return -1; return -1;
} }
...@@ -287,19 +293,19 @@ static int do_snapshot_restore(struct lxc_container *c, ...@@ -287,19 +293,19 @@ static int do_snapshot_restore(struct lxc_container *c,
static void print_file(char *path) static void print_file(char *path)
{ {
if (!path) FILE *f;
return;
FILE *f = fopen(path, "r");
char *line = NULL; char *line = NULL;
size_t sz = 0; size_t sz = 0;
if (!path)
return;
f = fopen(path, "r");
if (!f) if (!f)
return; return;
while (getline(&line, &sz, f) != -1) { while (getline(&line, &sz, f) != -1)
printf("%s", line); printf("%s", line);
}
free(line); free(line);
fclose(f); fclose(f);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment