]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
lxc-info: Port to LXC API
authorStéphane Graber <stgraber@ubuntu.com>
Fri, 27 Sep 2013 04:07:23 +0000 (00:07 -0400)
committerStéphane Graber <stgraber@ubuntu.com>
Fri, 27 Sep 2013 13:30:52 +0000 (09:30 -0400)
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
src/lxc/lxc_info.c

index e61ae63b15b713eb680d6a187bd6cf0ebf868b74..ab3aacff4f71d4b20bfa0e52160fd594eabdd2bf 100644 (file)
@@ -29,6 +29,7 @@
 
 #include <lxc/lxc.h>
 #include <lxc/log.h>
+#include <lxc/lxccontainer.h>
 
 #include "commands.h"
 #include "arguments.h"
@@ -83,43 +84,50 @@ Options :\n\
 
 int main(int argc, char *argv[])
 {
-       int ret,i;
+       struct lxc_container *c;
 
-       ret = lxc_arguments_parse(&my_args, argc, argv);
-       if (ret)
-               return 1;
+       int i;
+
+       if (lxc_arguments_parse(&my_args, argc, argv))
+               return -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;
+               return -1;
+
+       c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
+       if (!c)
+               return -1;
 
        if (!state && !pid && keys <= 0)
                state = pid = true;
 
        if (state || test_state) {
-               ret = lxc_getstate(my_args.name, my_args.lxcpath[0]);
-               if (ret < 0)
-                       return 1;
                if (test_state)
-                       return strcmp(lxc_state2str(ret), test_state) != 0;
+                       return strcmp(c->state(c), test_state) != 0;
 
-               printf("state:%10s\n", lxc_state2str(ret));
+               printf("state:%10s\n", c->state(c));
        }
 
        if (pid) {
                pid_t initpid;
 
-               initpid = lxc_cmd_get_init_pid(my_args.name, my_args.lxcpath[0]);
+               initpid = c->init_pid(c);
                if (initpid >= 0)
                        printf("pid:%10d\n", initpid);
        }
 
        for(i = 0; i < keys; i++) {
-               char *val;
+               int len = c->get_config_item(c, key[i], NULL, 0);
+
+               if (len >= 0) {
+                       char *val = (char*) malloc(sizeof(char)*len + 1);
 
-               val = lxc_cmd_get_config_item(my_args.name, key[i], my_args.lxcpath[0]);
-               if (val) {
-                       printf("%s = %s\n", key[i], val);
+                       if (c->get_config_item(c, key[i], val, len + 1) != len) {
+                               fprintf(stderr, "unable to read %s from configuration\n", key[i]);
+                       } else {
+                               printf("%s = %s\n", key[i], val);
+                       }
                        free(val);
                } else {
                        fprintf(stderr, "%s unset or invalid\n", key[i]);