[libmultipath] third cut at output column aligning
authorroot <root@xa-s05.(none)>
Wed, 27 Jul 2005 09:14:23 +0000 (11:14 +0200)
committerroot <root@xa-s05.(none)>
Wed, 27 Jul 2005 09:14:23 +0000 (11:14 +0200)
- remove libcheckers/path_state.c (consolidated into libmultipath/print.c)
- move the path status printing to print.c
- so finaly rename print_*_id() to snprint_*()

Pondered using this status format :

iet_lun0 (0IET_____ISCSI___________00000000d00600000b00000000000000)
[size=67 GB][features="0"][hwhandler="0"]
\_ round-robin 0        E
  \_ 1:0:0:1  sdb 8:16  AA.
\_ round-robin 0        E
  \_ 2:0:0:1  sdd 8:48  AA.
\_ round-robin 0        E
  \_ 24:0:0:1 sdf 8:80  AA.
\_ round-robin 0        E
  \_ 25:0:0:1 sdh 8:112 AA.

but no consensus reached on the list.
Keep the old one for now, and git log for reference.

libcheckers/Makefile
libcheckers/path_state.c [deleted file]
libcheckers/path_state.h
libmultipath/print.c
libmultipath/print.h
multipath/main.c
multipathd/main.c

index bad6199..0230039 100644 (file)
@@ -6,8 +6,7 @@ BUILD = glibc
 
 include ../Makefile.inc
 
-OBJS = readsector0.o tur.o selector.o emc_clariion.o hp_sw.o \
-       path_state.o
+OBJS = readsector0.o tur.o selector.o emc_clariion.o hp_sw.o
 
 all: $(BUILD)
 
diff --git a/libcheckers/path_state.c b/libcheckers/path_state.c
deleted file mode 100644 (file)
index d3714f8..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#include <stdio.h>
-#include "path_state.h"
-
-int
-pstate_snprintf (char * str, int len, int state)
-{
-       switch (state) {
-       case PATH_UP:
-               return snprintf(str, len, "ready");
-
-               case PATH_DOWN:
-               return snprintf(str, len, "faulty");
-
-               case PATH_GHOST:
-               return snprintf(str, len, "ghost");
-
-               case PATH_SHAKY:
-               return snprintf(str, len, "shaky");
-
-               default:
-               break;
-               }
-       return 0;
-}
index 4cb85bb..08f3874 100644 (file)
@@ -3,7 +3,3 @@
 #define PATH_UP                2
 #define PATH_SHAKY     3
 #define PATH_GHOST     4
-
-#define MAX_PSTATE_LEN 6
-
-int pstate_snprintf (char * str, int len, int state);
index f1cbef3..2c4e2c6 100644 (file)
@@ -4,6 +4,9 @@
 #include "vector.h"
 #include "structs.h"
 #include "print.h"
+#include "dmparser.h"
+
+#include "../libcheckers/path_state.h"
 
 #define MAX_LEN 64
 
@@ -67,12 +70,12 @@ get_map_layout (struct map_layout * ml, vector mpvec)
 }
 
 int
-print_path_id (char * line, int len, struct path * pp, struct path_layout * pl)
+snprint_path (char * line, int len, struct path * pp, struct path_layout * pl)
 {
        char * c = line;
        char * s = line;
 
-       if ((pl->hbtl_len + pl->dev_len + pl->dev_t_len + 3) > len)
+       if ((pl->hbtl_len + pl->dev_len + pl->dev_t_len + 7) > len)
                return 0;
 
        if (pp->sg_id.host_no < 0)
@@ -104,11 +107,42 @@ print_path_id (char * line, int len, struct path * pp, struct path_layout * pl)
        while ((int)(c - s) < (pl->dev_t_len + 1))
                *c++ = ' ';
 
+       switch (pp->dmstate) {
+       case PSTATE_ACTIVE:
+               c += sprintf(c, "[active]");
+               break;
+       case PSTATE_FAILED:
+               c += sprintf(c, "[failed]");
+               break;
+       default:
+               break;
+       }
+               
+       switch (pp->state) {
+       case PATH_UP:
+               c += sprintf(c, "[ready]");
+               break;
+       case PATH_DOWN:
+               c += sprintf(c, "[faulty]");
+               break;
+       case PATH_SHAKY:
+               c += sprintf(c, "[shaky]");
+               break;
+       case PATH_GHOST:
+               c += sprintf(c, "[ghost]");
+               break;
+       default:
+               break;
+       }
+               
+       if (pp->claimed)
+               c += sprintf(c, "[claimed]");
+
        return (c - line);
 }
 
 int
-print_map_id (char * line, int len, struct multipath * mpp, struct map_layout * ml)
+snprint_map (char * line, int len, struct multipath * mpp, struct map_layout * ml)
 {
        char * c = line;
        char * s = line;
index d273964..3f474dd 100644 (file)
@@ -13,5 +13,5 @@ struct map_layout {
 
 void get_path_layout (struct path_layout * pl, vector pathvec);
 void get_map_layout (struct map_layout * pl, vector mpvec);
-int print_path_id (char *, int, struct path *, struct path_layout *);
-int print_map_id (char *, int, struct multipath *, struct map_layout *);
+int snprint_path (char *, int, struct path *, struct path_layout *);
+int snprint_map (char *, int, struct multipath *, struct map_layout *);
index 0b23193..3d24ce4 100644 (file)
@@ -157,7 +157,6 @@ get_refwwid (vector pathvec)
 static void
 print_path (struct path * pp, int style)
 {
-       int len;
        char buff[MAX_LINE_LEN];
 
        if (style != PRINT_PATH_SHORT && pp->wwid)
@@ -165,40 +164,8 @@ print_path (struct path * pp, int style)
        else
                printf ("  \\_ ");
 
-       print_path_id(&buff[0], MAX_LINE_LEN, pp, &pl);
-       printf("%s", buff);
-
-       if (conf->list > 1) {
-               len = pstate_snprintf(&buff[0], MAX_PSTATE_LEN, pp->state);
-
-               if (len) {
-                       printf("[%s", buff);
-                       len = MAX_PSTATE_LEN - len;
-
-                       while (len--)
-                               printf(" ");
-
-                       printf("]");
-               }
-       }
-
-       switch (pp->dmstate) {
-       case PSTATE_ACTIVE:
-               printf("[active]");
-               break;
-       case PSTATE_FAILED:
-               printf("[failed]");
-               break;
-       default:
-               break;
-       }
-       if (pp->claimed)
-               printf("[claimed]");
-
-       if (style != PRINT_PATH_SHORT && pp->product_id)
-               printf("[%.16s]", pp->product_id);
-
-       fprintf(stdout, "\n");
+       snprint_path(&buff[0], MAX_LINE_LEN, pp, &pl);
+       printf("%s\n", buff);
 }
 
 static void
@@ -261,14 +228,14 @@ print_mp (struct multipath * mpp)
 
        printf("\n");
 
-       if (mpp->size < 2000)
+       if (mpp->size < 2048)
                printf("[size=%lu kB]", mpp->size / 2);
-       else if (mpp->size < (2000 * 1024))
-               printf("[size=%lu MB]", mpp->size / 2 / 1024);
-       else if (mpp->size < (2000 * 1024 * 1024))
-               printf("[size=%lu GB]", mpp->size / 2 / 1024 / 1024);
+       else if (mpp->size < 2097152)
+               printf("[size=%lu MB]", mpp->size / 2048);
+       else if (mpp->size < 2147483648)
+               printf("[size=%lu GB]", mpp->size / 2097152 );
        else
-               printf("[size=%lu TB]", mpp->size / 2 / 1024 / 1024 / 1024);
+               printf("[size=%lu TB]", mpp->size / 2147483648);
 
        if (mpp->features)
                printf("[features=\"%s\"]", mpp->features);
@@ -284,8 +251,15 @@ print_mp (struct multipath * mpp)
        vector_foreach_slot (mpp->pg, pgp, j) {
                printf("\\_ ");
 
-               if (mpp->selector)
+               if (mpp->selector) {
                        printf("%s ", mpp->selector);
+#if 0
+                       /* align to path status info */
+                       for (i = pl.hbtl_len + pl.dev_len + pl.dev_t_len + 4;
+                            i > strlen(mpp->selector); i--)
+                               printf(" ");
+#endif
+               }
 
                switch (pgp->status) {
                case PGSTATE_ENABLED:
index 463b8e6..a2e6675 100644 (file)
@@ -691,25 +691,13 @@ show_paths (char ** r, int * len, struct paths * allpaths)
        c += sprintf(c, "\n");
 
        vector_foreach_slot(allpaths->pathvec, pp, i) {
-               c += print_path_id(c, reply + MAX_REPLY_LEN - c, pp, &pl);
+               c += snprint_path(c, reply + MAX_REPLY_LEN - c, pp, &pl);
 
                if (!pp->mpp) {
-                       c += sprintf(c, "[orphan]\n");
+                       c += sprintf(c, " [orphan]\n");
                        continue;
                }
 
-               if (reply + MAX_REPLY_LEN - c - MAX_PSTATE_LEN < 0) {
-                       FREE(reply);
-                       return 1;
-               }
-
-               j = pstate_snprintf(c, MAX_PSTATE_LEN, pp->state);
-               c += j;
-               j = MAX_PSTATE_LEN - j;
-               
-               while (j--)
-                       c += sprintf(c, " ");
-
                c += sprintf(c, " ");
                j = pp->tick;
                k = pp->checkint - pp->tick;
@@ -748,7 +736,7 @@ show_maps (char ** r, int *len, struct paths * allpaths)
        c += sprintf(c, "\n");
 
        vector_foreach_slot(allpaths->mpvec, mpp, i) {
-               c += print_map_id(c, reply + MAX_REPLY_LEN - c, mpp, &ml);
+               c += snprint_map(c, reply + MAX_REPLY_LEN - c, mpp, &ml);
 
                if (!mpp->failback_tick) {
                        c += sprintf(c, "[no scheduled failback]\n");