[lxc-devel] [PATCH 1/2] lxc-info: Port to LXC API

Stéphane Graber stgraber at ubuntu.com
Fri Sep 27 04:30:43 UTC 2013


Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 src/lxc/lxc_info.c | 38 +++++++++++++++++++++++---------------
 1 file changed, 23 insertions(+), 15 deletions(-)

diff --git a/src/lxc/lxc_info.c b/src/lxc/lxc_info.c
index e61ae63..ab3aacf 100644
--- a/src/lxc/lxc_info.c
+++ b/src/lxc/lxc_info.c
@@ -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]);
-- 
1.8.3.2





More information about the lxc-devel mailing list