diff options
Diffstat (limited to 'cli/src/cli-xml-output.c')
| -rw-r--r-- | cli/src/cli-xml-output.c | 78 | 
1 files changed, 47 insertions, 31 deletions
diff --git a/cli/src/cli-xml-output.c b/cli/src/cli-xml-output.c index 673decec160..cdce2d79870 100644 --- a/cli/src/cli-xml-output.c +++ b/cli/src/cli-xml-output.c @@ -5075,8 +5075,16 @@ cli_xml_snapshot_volume_status (xmlTextWriterPtr writer, xmlDocPtr doc,                  ret = dict_get_str (dict, key, &buffer);                  if (ret) { -                        gf_log ("cli", GF_LOG_INFO, "Unable to get Brick Path"); -                        goto out; +                        gf_log ("cli", GF_LOG_ERROR, +                                "Unable to get Brick Path"); +                        /* +                         * If path itself is not present, then end * +                         * this brick's status and continue to the * +                         * brick                                   * +                         */ +                        ret = xmlTextWriterEndElement (writer); +                        XML_RET_CHECK_AND_GOTO (ret, out); +                        continue;                  }                  ret = xmlTextWriterWriteFormatElement (writer, @@ -5088,14 +5096,14 @@ cli_xml_snapshot_volume_status (xmlTextWriterPtr writer, xmlDocPtr doc,                  ret = dict_get_str (dict, key, &buffer);                  if (ret) { -                        gf_log ("cli", GF_LOG_INFO, +                        gf_log ("cli", GF_LOG_ERROR,                                  "Unable to get Volume Group"); -                        goto out; -                } +                        ret = xmlTextWriterWriteFormatElement (writer, +                                              (xmlChar *) "volumeGroup", "N/A"); +                } else +                        ret = xmlTextWriterWriteFormatElement (writer, +                                       (xmlChar *) "volumeGroup", "%s", buffer); -                ret = xmlTextWriterWriteFormatElement (writer, -                                        (xmlChar *) "volumeGroup", -                                        "%s", buffer);                  XML_RET_CHECK_AND_GOTO (ret, out);                  snprintf (key, sizeof (key), "%s.brick%d.status", keyprefix, i); @@ -5104,19 +5112,25 @@ cli_xml_snapshot_volume_status (xmlTextWriterPtr writer, xmlDocPtr doc,                  if (ret) {                          gf_log ("cli", GF_LOG_ERROR,                                  "Unable to get Brick Running"); -                        goto out; -                } +                        ret = xmlTextWriterWriteFormatElement (writer, +                                            (xmlChar *) "brick_running", "N/A"); +                } else +                        ret = xmlTextWriterWriteFormatElement (writer, +                                     (xmlChar *) "brick_running", "%s", buffer); + +                XML_RET_CHECK_AND_GOTO (ret, out);                  snprintf (key, sizeof (key), "%s.brick%d.pid", keyprefix, i);                  ret = dict_get_int32 (dict, key, &pid);                  if (ret) { -                        gf_log ("cli", GF_LOG_ERROR, "Unable to get pid"); -                        goto out; -                } +                        gf_log ("cli", GF_LOG_INFO, "Unable to get pid"); +                        ret = xmlTextWriterWriteFormatElement (writer, +                                                      (xmlChar *) "pid", "N/A"); +                } else +                        ret = xmlTextWriterWriteFormatElement (writer, +                                                  (xmlChar *) "pid", "%d", pid); -                ret = xmlTextWriterWriteFormatElement (writer, -                                        (xmlChar *) "pid", "%d", pid);                  XML_RET_CHECK_AND_GOTO (ret, out);                  snprintf (key, sizeof (key), "%s.brick%d.data", keyprefix, i); @@ -5125,28 +5139,29 @@ cli_xml_snapshot_volume_status (xmlTextWriterPtr writer, xmlDocPtr doc,                  if (ret) {                          gf_log ("cli", GF_LOG_ERROR,                                          "Unable to get Data Percent"); -                        goto out; -                } +                        ret = xmlTextWriterWriteFormatElement (writer, +                                          (xmlChar *) "data_percentage", "N/A"); +                } else +                        ret = xmlTextWriterWriteFormatElement (writer, +                                   (xmlChar *) "data_percentage", "%s", buffer); -                ret = xmlTextWriterWriteFormatElement (writer, -                                                       (xmlChar *) "lvUsage", -                                                       "%s", buffer);                  XML_RET_CHECK_AND_GOTO (ret, out);                  snprintf (key, sizeof (key), "%s.brick%d.lvsize",                            keyprefix, i);                  ret = dict_get_str (dict, key, &buffer);                  if (ret) { -                        gf_log ("cli", GF_LOG_INFO, "Unable to get LV Size"); -                        goto out; -                } +                        gf_log ("cli", GF_LOG_ERROR, "Unable to get LV Size"); +                        ret = xmlTextWriterWriteFormatElement (writer, +                                                 (xmlChar *) "lvSize", "N/A"); +                } else { +                        /* Truncate any newline character */ +                        buffer = strtok (buffer, "\n"); -                /* Truncate any newline character */ -                buffer = strtok (buffer, "\n"); +                        ret = xmlTextWriterWriteFormatElement (writer, +                                          (xmlChar *) "lvSize", "%s", buffer); +                } -                ret = xmlTextWriterWriteFormatElement (writer, -                                                       (xmlChar *) "lvSize", -                                                       "%s", buffer);                  XML_RET_CHECK_AND_GOTO (ret, out);                  /* </brick> */ @@ -5284,7 +5299,8 @@ cli_xml_snapshot_status (xmlTextWriterPtr writer, xmlDocPtr doc, dict_t *dict)                  goto out;          } -        if (GF_SNAP_STATUS_TYPE_SNAP == status_cmd) { +        if ((GF_SNAP_STATUS_TYPE_SNAP == status_cmd) || +            (GF_SNAP_STATUS_TYPE_ITER == status_cmd)) {                  snapcount = 1;          } else {                  ret = dict_get_int32 (dict, "status.snapcount", &snapcount); @@ -6041,7 +6057,7 @@ cli_xml_snapshot_begin_composite_op (cli_local_t *local)                  goto out;          } -        if (cmd == GF_SNAP_STATUS_TYPE_SNAP || +        if (cmd == GF_SNAP_STATUS_TYPE_ITER ||              cmd == GF_SNAP_DELETE_TYPE_SNAP){                  ret = 0;                  goto out; @@ -6086,7 +6102,7 @@ cli_xml_snapshot_end_composite_op (cli_local_t *local)                  goto out;          } -        if (cmd == GF_SNAP_STATUS_TYPE_SNAP || +        if (cmd == GF_SNAP_STATUS_TYPE_ITER ||              cmd == GF_SNAP_DELETE_TYPE_SNAP){                  ret = 0;                  goto out;  | 
