diff options
Diffstat (limited to 'cli')
| -rw-r--r-- | cli/src/cli-cmd-volume.c | 33 | ||||
| -rw-r--r-- | cli/src/cli-rpc-ops.c | 15 | ||||
| -rw-r--r-- | cli/src/cli-xml-output.c | 66 | ||||
| -rw-r--r-- | cli/src/cli.h | 3 | 
4 files changed, 89 insertions, 28 deletions
diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c index 68755630d87..848dffe71d6 100644 --- a/cli/src/cli-cmd-volume.c +++ b/cli/src/cli-cmd-volume.c @@ -1778,10 +1778,15 @@ void  cli_print_detailed_status (cli_volume_status_t *status)  {          cli_out ("%-20s : %-20s", "Brick", status->brick); -        if (status->online) -                cli_out ("%-20s : %-20d", "Port", status->port); -        else -                cli_out ("%-20s : %-20s", "Port", "N/A"); + +        if (status->online) { +                cli_out ("%-20s : %-20d", "TCP Port", status->port); +                cli_out ("%-20s : %-20d", "RDMA Port", status->rdma_port); +        } else { +                cli_out ("%-20s : %-20s", "TCP Port", "N/A"); +                cli_out ("%-20s : %-20s", "RDMA Port", "N/A"); +        } +          cli_out ("%-20s : %-20c", "Online", (status->online) ? 'Y' : 'N');          cli_out ("%-20s : %-20s", "Pid", status->pid_str); @@ -1842,7 +1847,7 @@ cli_print_brick_status (cli_volume_status_t *status)          int  fieldlen = CLI_VOL_STATUS_BRICK_LEN;          int  bricklen = 0;          char *p = NULL; -        int  num_tabs = 0; +        int  num_spaces = 0;          p = status->brick;          bricklen = strlen (p); @@ -1852,25 +1857,27 @@ cli_print_brick_status (cli_volume_status_t *status)                          p += fieldlen;                          bricklen -= fieldlen;                  } else { -                        num_tabs = (fieldlen - bricklen) / CLI_TAB_LENGTH + 1; +                        num_spaces = (fieldlen - bricklen) + 1;                          printf ("%s", p); -                        while (num_tabs-- != 0) -                                printf ("\t"); -                        if (status->port) { +                        while (num_spaces-- != 0) +                                printf (" "); +                        if (status->port || status->rdma_port) {                                  if (status->online) -                                        cli_out ("%d\t%c\t%s", +                                        cli_out ("%-10d%-11d%-8c%-5s",                                                   status->port, +                                                 status->rdma_port,                                                   status->online?'Y':'N',                                                   status->pid_str);                                  else -                                        cli_out ("%s\t%c\t%s", +                                        cli_out ("%-10s%-11s%-8c%-5s", +                                                 "N/A",                                                   "N/A",                                                   status->online?'Y':'N',                                                   status->pid_str);                          }                          else -                                cli_out ("%s\t%c\t%s", -                                         "N/A", status->online?'Y':'N', +                                cli_out ("%-10s%-11s%-8c%-5s", +                                         "N/A", "N/A", status->online?'Y':'N',                                           status->pid_str);                          bricklen = 0;                  } diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c index bd133d0ba82..0238a8ff0e7 100644 --- a/cli/src/cli-rpc-ops.c +++ b/cli/src/cli-rpc-ops.c @@ -6722,12 +6722,15 @@ gf_cli_status_cbk (struct rpc_req *req, struct iovec *iov,          cli_out ("Status of volume: %s", volname);          if ((cmd & GF_CLI_STATUS_DETAIL) == 0) { -                cli_out ("Gluster process\t\t\t\t\t\tPort\tOnline\tPid"); +                cli_out ("%-*s %s  %s  %s  %s", CLI_VOL_STATUS_BRICK_LEN, +                         "Gluster process", "TCP Port", "RDMA Port", +                         "Online", "Pid");                  cli_print_line (CLI_BRICK_STATUS_LINE_LEN);          }          for (i = 0; i <= index_max; i++) { +                status.rdma_port = 0;                  memset (key, 0, sizeof (key));                  snprintf (key, sizeof (key), "brick%d.hostname", i); @@ -6751,9 +6754,15 @@ gf_cli_status_cbk (struct rpc_req *req, struct iovec *iov,                      !strcmp (hostname, "Snapshot Daemon"))                          snprintf (status.brick, PATH_MAX + 255, "%s on %s",                                    hostname, path); -                else +                else { +                        memset (key, 0, sizeof (key)); +                        snprintf (key, sizeof (key), "brick%d.rdma_port", i); +                        ret = dict_get_int32 (dict, key, &(status.rdma_port)); +                        if (ret) +                                continue;                          snprintf (status.brick, PATH_MAX + 255, "Brick %s:%s",                                    hostname, path); +                }                  memset (key, 0, sizeof (key));                  snprintf (key, sizeof (key), "brick%d.port", i); @@ -6786,10 +6795,10 @@ gf_cli_status_cbk (struct rpc_req *req, struct iovec *iov,                                  goto out;                          cli_print_line (CLI_BRICK_STATUS_LINE_LEN);                          cli_print_detailed_status (&status); -                  } else {                          cli_print_brick_status (&status);                  } +          }          cli_out (" "); diff --git a/cli/src/cli-xml-output.c b/cli/src/cli-xml-output.c index b4c72eaa84e..b5cbbf68aa4 100644 --- a/cli/src/cli-xml-output.c +++ b/cli/src/cli-xml-output.c @@ -234,14 +234,15 @@ cli_xml_output_vol_status_common (xmlTextWriterPtr writer, dict_t *dict,                                    int   brick_index, int *online,                                    gf_boolean_t *node_present)  { -        int             ret = -1; -        char            *hostname = NULL; -        char            *path = NULL; -        char            *uuid = NULL; -        int             port = 0; -        int             status = 0; -        int             pid = 0; -        char            key[1024] = {0,}; +        int             ret             = -1; +        char            *hostname       = NULL; +        char            *path           = NULL; +        char            *uuid           = NULL; +        int             port            = 0; +        int             rdma_port       = 0; +        int             status          = 0; +        int             pid             = 0; +        char            key[1024]       = {0,};          snprintf (key, sizeof (key), "brick%d.hostname", brick_index);          ret = dict_get_str (dict, key, &hostname); @@ -294,19 +295,62 @@ cli_xml_output_vol_status_common (xmlTextWriterPtr writer, dict_t *dict,          if (ret)                  goto out; +        memset (key, 0, sizeof (key)); +        snprintf (key, sizeof (key), "brick%d.rdma_port", brick_index); +        ret = dict_get_int32 (dict, key, &rdma_port); +          /* If the process is either offline or doesn't provide a port (shd)           * port = "N/A"           * else print the port number of the process.           */ +        /* +         * Tag 'port' can be removed once console management is started +         * to support new tag ports. +         */ +          if (*online == 1 && port != 0) +                 ret = xmlTextWriterWriteFormatElement (writer, +                                                    (xmlChar *)"port", +                                                        "%d", port); +         else +                 ret = xmlTextWriterWriteFormatElement (writer, +                                                        (xmlChar *)"port", +                                                        "%s", "N/A"); + +        ret = xmlTextWriterStartElement (writer, (xmlChar *)"ports"); +        if (*online == 1 && (port != 0 || rdma_port != 0)) { + +                if (port) {                  ret = xmlTextWriterWriteFormatElement (writer, -                                                       (xmlChar *)"port", +                                                       (xmlChar *)"tcp",                                                         "%d", port); -        else +                } else {                  ret = xmlTextWriterWriteFormatElement (writer, -                                                       (xmlChar *)"port", +                                                       (xmlChar *)"tcp",                                                         "%s", "N/A"); +                } + +                if (rdma_port) { +                ret = xmlTextWriterWriteFormatElement (writer, +                                                       (xmlChar *)"rdma", +                                                       "%d", rdma_port); +                } else { +                ret = xmlTextWriterWriteFormatElement (writer, +                                                       (xmlChar *)"rdma", +                                                       "%s", "N/A"); +                } + +        } else { +                ret = xmlTextWriterWriteFormatElement (writer, +                                                       (xmlChar *)"tcp", +                                                       "%s", "N/A"); +                ret = xmlTextWriterWriteFormatElement (writer, +                                                       (xmlChar *)"rdma", +                                                       "%s", "N/A"); +        } + +        ret = xmlTextWriterEndElement (writer);          XML_RET_CHECK_AND_GOTO (ret, out);          memset (key, 0, sizeof (key)); diff --git a/cli/src/cli.h b/cli/src/cli.h index 89aedc5697d..bdf366b22ed 100644 --- a/cli/src/cli.h +++ b/cli/src/cli.h @@ -33,7 +33,7 @@  #define CLI_DEFAULT_CMD_TIMEOUT              120  #define CLI_TEN_MINUTES_TIMEOUT              600 //Longer timeout for volume top  #define DEFAULT_CLI_LOG_FILE_DIRECTORY     DATADIR "/log/glusterfs" -#define CLI_VOL_STATUS_BRICK_LEN              55 +#define CLI_VOL_STATUS_BRICK_LEN              43  #define CLI_TAB_LENGTH                         8  #define CLI_BRICK_STATUS_LINE_LEN             78 @@ -150,6 +150,7 @@ struct cli_local {  struct cli_volume_status {          int            port; +        int            rdma_port;          int            online;          uint64_t       block_size;          uint64_t       total_inodes;  | 
