]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
lxc_cgroup: convert to using API
authorSerge Hallyn <serge.hallyn@ubuntu.com>
Wed, 21 Aug 2013 19:35:28 +0000 (14:35 -0500)
committerSerge Hallyn <serge.hallyn@ubuntu.com>
Wed, 21 Aug 2013 21:38:53 +0000 (16:38 -0500)
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
src/lxc/lxc_cgroup.c

index 094686da9399de9d6a4b2067e772f2c0377c9a71..7f6eb6341553f7be185260c7807cb6b1a502949f 100644 (file)
@@ -29,6 +29,7 @@
 #include <lxc/lxc.h>
 #include <lxc/log.h>
 
+#include <lxc/lxccontainer.h>
 #include "arguments.h"
 
 lxc_log_define(lxc_cgroup_ui, lxc_cgroup);
@@ -64,6 +65,7 @@ Options :\n\
 int main(int argc, char *argv[])
 {
        char *state_object = NULL, *value = NULL;
+       struct lxc_container *c;
 
        if (lxc_arguments_parse(&my_args, argc, argv))
                return -1;
@@ -74,29 +76,36 @@ int main(int argc, char *argv[])
 
        state_object = my_args.argv[0];
 
-       if ((argc) > 1)
-               value = my_args.argv[1];
+       c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
+       if (!c)
+               return -1;
+       if (!c->is_running(c)) {
+               ERROR("'%s:%s' is not running", my_args.lxcpath[0], my_args.name);
+               lxc_container_put(c);
+               return -1;
+       }
 
-       if (value) {
-               if (lxc_cgroup_set(my_args.name, state_object, value, my_args.lxcpath[0])) {
+       if ((my_args.argc) > 1) {
+               value = my_args.argv[1];
+               if (!c->set_cgroup_item(c, state_object, value)) {
                        ERROR("failed to assign '%s' value to '%s' for '%s'",
                                value, state_object, my_args.name);
+                       lxc_container_put(c);
                        return -1;
                }
        } else {
-               const unsigned long len = 4096;
-               int ret;
+               int len = 4096;
                char buffer[len];
-
-               ret = lxc_cgroup_get(my_args.name, state_object, buffer, len, my_args.lxcpath[0]);
+               int ret = c->get_cgroup_item(c, state_object, buffer, len);
                if (ret < 0) {
-                       ERROR("failed to retrieve value of '%s' for '%s'",
-                             state_object, my_args.name);
+                       ERROR("failed to retrieve value of '%s' for '%s:%s'",
+                             state_object, my_args.lxcpath[0], my_args.name);
+                       lxc_container_put(c);
                        return -1;
                }
-
                printf("%*s", ret, buffer);
        }
 
+       lxc_container_put(c);
        return 0;
 }