ctdb: add machinereadable output fot "ctdb -Y getdbmap"
authorStefan Metzmacher <metze@samba.org>
Mon, 7 Dec 2009 08:23:02 +0000 (09:23 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 16 Dec 2009 07:08:33 +0000 (08:08 +0100)
metze

tools/ctdb.c

index 6e9a7c215626f1638dd3014a3f98d18394e45f52..dc84f96accc2c33411bf7a5ab5b55db0985ba397 100644 (file)
@@ -2555,6 +2555,28 @@ static int control_getdbmap(struct ctdb_context *ctdb, int argc, const char **ar
                return ret;
        }
 
+       if(options.machinereadable){
+               printf(":ID:Name:Path:Persistent:Unhealthy:\n");
+               for(i=0;i<dbmap->num;i++){
+                       const char *path;
+                       const char *name;
+                       const char *health;
+                       bool persistent;
+
+                       ctdb_ctrl_getdbpath(ctdb, TIMELIMIT(), options.pnn,
+                                           dbmap->dbs[i].dbid, ctdb, &path);
+                       ctdb_ctrl_getdbname(ctdb, TIMELIMIT(), options.pnn,
+                                           dbmap->dbs[i].dbid, ctdb, &name);
+                       ctdb_ctrl_getdbhealth(ctdb, TIMELIMIT(), options.pnn,
+                                             dbmap->dbs[i].dbid, ctdb, &health);
+                       persistent = dbmap->dbs[i].persistent;
+                       printf(":0x%08X:%s:%s:%d:%d:\n",
+                              dbmap->dbs[i].dbid, name, path,
+                              !!(persistent), !!(health));
+               }
+               return 0;
+       }
+
        printf("Number of databases:%d\n", dbmap->num);
        for(i=0;i<dbmap->num;i++){
                const char *path;