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
lxc_unshare_SOURCES = tools/lxc_unshare.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_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
endif
......
......@@ -30,7 +30,9 @@
#include <lxc/lxccontainer.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);
......@@ -99,42 +101,42 @@ int main(int argc, char *argv[])
if (geteuid()) {
if (access(my_args.lxcpath[0], O_RDONLY) < 0) {
fprintf(stderr, "You lack access to %s\n",
my_args.lxcpath[0]);
ERROR("You lack access to %s", my_args.lxcpath[0]);
exit(EXIT_FAILURE);
}
}
c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c) {
fprintf(stderr, "System error loading container\n");
ERROR("System error loading container");
exit(EXIT_FAILURE);
}
if (my_args.rcfile) {
c->clear_config(c);
if (!c->load_config(c, my_args.rcfile)) {
fprintf(stderr, "Failed to load rcfile\n");
ERROR("Failed to load rcfile");
lxc_container_put(c);
exit(EXIT_FAILURE);
}
c->configfile = strdup(my_args.rcfile);
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);
exit(EXIT_FAILURE);
}
}
if (!c->lxc_conf) {
fprintf(stderr, "No container config specified\n");
ERROR("No container config specified");
lxc_container_put(c);
exit(EXIT_FAILURE);
}
if (!c->may_control(c)) {
fprintf(stderr, "Insufficent privileges to control %s\n",
my_args.name);
ERROR("Insufficent privileges to control %s", my_args.name);
lxc_container_put(c);
exit(EXIT_FAILURE);
}
......@@ -145,6 +147,7 @@ int main(int argc, char *argv[])
if (ret == 0)
exit(EXIT_SUCCESS);
exit(EXIT_FAILURE);
}
......@@ -207,7 +210,7 @@ static int do_snapshot(struct lxc_container *c, char *commentfile)
ret = c->snapshot(c, commentfile);
if (ret < 0) {
fprintf(stderr, "Error creating a snapshot\n");
ERROR("Error creating a snapshot");
return -1;
}
......@@ -218,13 +221,13 @@ static int do_snapshot_destroy(struct lxc_container *c, char *snapname)
{
bool ret;
if (strcmp(snapname, "ALL") == 0)
if (!strncmp(snapname, "ALL", strlen(snapname)))
ret = c->snapshot_destroy_all(c);
else
ret = c->snapshot_destroy(c, snapname);
if (!ret) {
fprintf(stderr, "Error destroying snapshot %s\n", snapname);
ERROR("Error destroying snapshot %s", snapname);
return -1;
}
......@@ -238,9 +241,10 @@ static int do_snapshot_list(struct lxc_container *c, int print_comments)
n = c->snapshot_list(c, &s);
if (n < 0) {
fprintf(stderr, "Error listing snapshots\n");
ERROR("Error listing snapshots");
return -1;
}
if (n == 0) {
printf("No snapshots\n");
return 0;
......@@ -248,8 +252,10 @@ static int do_snapshot_list(struct lxc_container *c, int print_comments)
for (i = 0; i < n; i++) {
printf("%s (%s) %s\n", s[i].name, s[i].lxcpath, s[i].timestamp);
if (print_comments)
print_file(s[i].comment_pathname);
s[i].free(&s[i]);
}
......@@ -269,7 +275,7 @@ static int do_snapshot_restore(struct lxc_container *c,
* original container will be destroyed and the restored container will
* take its place. */
if ((!args->newname) && (args->argc > 1)) {
lxc_error(args, "Too many arguments");
ERROR("Too many arguments");
return -1;
}
......@@ -278,7 +284,7 @@ static int do_snapshot_restore(struct lxc_container *c,
bret = c->snapshot_restore(c, args->snapname, args->newname);
if (!bret) {
fprintf(stderr, "Error restoring snapshot %s\n", args->snapname);
ERROR("Error restoring snapshot %s", args->snapname);
return -1;
}
......@@ -287,19 +293,19 @@ static int do_snapshot_restore(struct lxc_container *c,
static void print_file(char *path)
{
if (!path)
return;
FILE *f = fopen(path, "r");
FILE *f;
char *line = NULL;
size_t sz = 0;
if (!path)
return;
f = fopen(path, "r");
if (!f)
return;
while (getline(&line, &sz, f) != -1) {
while (getline(&line, &sz, f) != -1)
printf("%s", line);
}
free(line);
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