[lxc-devel] [PATCH] api: convert lxc_wait, lxc_freeze, and lxc_unfreeze
Serge Hallyn
serge.hallyn at ubuntu.com
Wed Aug 21 21:53:52 UTC 2013
These are the last of the simpler conversions. Start, execute,
kill, info and attach remain to be done.
Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
---
src/lxc/lxc_freeze.c | 26 ++++++++++++++++++++++----
src/lxc/lxc_unfreeze.c | 26 ++++++++++++++++++++++----
src/lxc/lxc_wait.c | 15 ++++++++++++---
3 files changed, 56 insertions(+), 11 deletions(-)
diff --git a/src/lxc/lxc_freeze.c b/src/lxc/lxc_freeze.c
index 3bd5e28..9628e78 100644
--- a/src/lxc/lxc_freeze.c
+++ b/src/lxc/lxc_freeze.c
@@ -28,9 +28,12 @@
#include <lxc/lxc.h>
#include <lxc/log.h>
+#include <lxc/lxccontainer.h>
#include "arguments.h"
+lxc_log_define(lxc_freeze_ui, lxc_cgroup);
+
static const struct option my_longopts[] = {
LXC_COMMON_OPTIONS
};
@@ -51,13 +54,28 @@ Options :\n\
int main(int argc, char *argv[])
{
+ struct lxc_container *c;
+
if (lxc_arguments_parse(&my_args, argc, argv))
- return -1;
+ exit(1);
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet, my_args.lxcpath[0]))
- return -1;
+ exit(1);
- return lxc_freeze(my_args.name, my_args.lxcpath[0]);
-}
+ c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
+ if (!c) {
+ ERROR("No such container: %s:%s", my_args.lxcpath[0], my_args.name);
+ exit(1);
+ }
+ if (!c->freeze(c)) {
+ ERROR("Failed to freeze %s:%s", my_args.lxcpath[0], my_args.name);
+ lxc_container_put(c);
+ exit(1);
+ }
+
+ lxc_container_put(c);
+
+ return 0;
+}
diff --git a/src/lxc/lxc_unfreeze.c b/src/lxc/lxc_unfreeze.c
index 095f290..840467a 100644
--- a/src/lxc/lxc_unfreeze.c
+++ b/src/lxc/lxc_unfreeze.c
@@ -27,9 +27,12 @@
#include <lxc/lxc.h>
#include <lxc/log.h>
+#include <lxc/lxccontainer.h>
#include "arguments.h"
+lxc_log_define(lxc_unfreeze_ui, lxc_cgroup);
+
static const struct option my_longopts[] = {
LXC_COMMON_OPTIONS
};
@@ -50,13 +53,28 @@ Options :\n\
int main(int argc, char *argv[])
{
+ struct lxc_container *c;
+
if (lxc_arguments_parse(&my_args, argc, argv))
- return -1;
+ exit(1);
if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet, my_args.lxcpath[0]))
- return -1;
+ exit(1);
- return lxc_unfreeze(my_args.name, my_args.lxcpath[0]);
-}
+ c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
+ if (!c) {
+ ERROR("No such container: %s:%s", my_args.lxcpath[0], my_args.name);
+ exit(1);
+ }
+ if (!c->unfreeze(c)) {
+ ERROR("Failed to unfreeze %s:%s", my_args.lxcpath[0], my_args.name);
+ lxc_container_put(c);
+ exit(1);
+ }
+
+ lxc_container_put(c);
+
+ return 0;
+}
diff --git a/src/lxc/lxc_wait.c b/src/lxc/lxc_wait.c
index f1a065c..afbb81a 100644
--- a/src/lxc/lxc_wait.c
+++ b/src/lxc/lxc_wait.c
@@ -30,7 +30,7 @@
#include <lxc/lxc.h>
#include <lxc/log.h>
-#include <lxc/monitor.h>
+#include <lxc/lxccontainer.h>
#include "arguments.h"
lxc_log_define(lxc_wait_ui, lxc_monitor);
@@ -80,6 +80,8 @@ Options :\n\
int main(int argc, char *argv[])
{
+ struct lxc_container *c;
+
if (lxc_arguments_parse(&my_args, argc, argv))
return -1;
@@ -87,6 +89,13 @@ int main(int argc, char *argv[])
my_args.progname, my_args.quiet, my_args.lxcpath[0]))
return -1;
- return lxc_wait(strdup(my_args.name), my_args.states, my_args.timeout,
- my_args.lxcpath[0]);
+ c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
+ if (!c)
+ return -1;
+
+ if (!c->wait(c, my_args.states, my_args.timeout)) {
+ lxc_container_put(c);
+ return -1;
+ }
+ return 0;
}
--
1.8.3.2
More information about the lxc-devel
mailing list