#include <lxc/lxc.h>
#include <lxc/log.h>
+#include <lxc/lxccontainer.h>
#include "arguments.h"
lxc_log_define(lxc_cgroup_ui, lxc_cgroup);
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;
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;
}