diff options
| author | Manikandan Selvaganesh <mselvaga@redhat.com> | 2015-11-25 00:04:39 +0530 | 
|---|---|---|
| committer | Kaushal M <kaushal@redhat.com> | 2015-12-08 04:54:51 -0800 | 
| commit | 72334e2209b8b506f00d5d851bfb5fdc3eb38cf4 (patch) | |
| tree | a53eb888b693cc5eda56c75da690f6305fad0d60 /cli/src/cli-xml-output.c | |
| parent | 06818a0fd69bb0d6daabde73e5c3cc2661a70854 (diff) | |
cli/quota: show used_space,(file,dir) count even when quota limit is not set
Problem:
As of now quota 'list/list-objects' will list the usage only if limit is
set for every directory else it will fail with ENOATTR(If inode/inode-quota
is already configured for the first time).
Feature:
With the patch we are enhancing this command to list the usage even
if quota limit is not set but still the user has to configure
inode/inode-quota for the first time.
Example:
Consider we have /client/dir and /client1(absolute path from mount point):
Quota limit is set only on /client. when we try listing /client/dir or /client1,
it shows "Limit not set".
Fix:
The patch fixes this by showing "used space" in case of list command and
shows "file_count" & "dir_count" in case of list-objects command. This works
fine with xml output as well.
Change-Id: I68b08ec77a583b3c7f39fe4d6b15d3d77adb095a
BUG: 1284752
Signed-off-by: Manikandan Selvaganesh <mselvaga@redhat.com>
Reviewed-on: http://review.gluster.org/12741
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijaikumar Mallikarjuna <vmallika@redhat.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
Diffstat (limited to 'cli/src/cli-xml-output.c')
| -rw-r--r-- | cli/src/cli-xml-output.c | 21 | 
1 files changed, 17 insertions, 4 deletions
diff --git a/cli/src/cli-xml-output.c b/cli/src/cli-xml-output.c index 9fa13c8279b..0801d61eeea 100644 --- a/cli/src/cli-xml-output.c +++ b/cli/src/cli-xml-output.c @@ -6187,7 +6187,8 @@ out:  int  cli_quota_xml_output (cli_local_t *local, char *path, int64_t hl_str,                        char *sl_final, int64_t sl_num, int64_t used, -                      int64_t avail, char *sl, char *hl) +                      int64_t avail, char *sl, char *hl, +                      gf_boolean_t limit_set)  {  #if (HAVE_LIB_XML)          int     ret             = -1; @@ -6202,16 +6203,19 @@ cli_quota_xml_output (cli_local_t *local, char *path, int64_t hl_str,          ret = xmlTextWriterWriteFormatElement (local->writer,                                                (xmlChar *)"hard_limit", +                                               !limit_set ? "N/A" :                                                 "%"PRIu64, hl_str);          XML_RET_CHECK_AND_GOTO (ret, out);          ret = xmlTextWriterWriteFormatElement (local->writer,                                                (xmlChar *)"soft_limit_percent", +                                               !limit_set ? "N/A" :                                                 "%s", sl_final);          XML_RET_CHECK_AND_GOTO (ret, out);          ret = xmlTextWriterWriteFormatElement (local->writer,                                                (xmlChar *)"soft_limit_value", +                                               !limit_set ? "N/A" :                                                 "%"PRIu64, sl_num);          XML_RET_CHECK_AND_GOTO (ret, out); @@ -6222,16 +6226,19 @@ cli_quota_xml_output (cli_local_t *local, char *path, int64_t hl_str,          ret = xmlTextWriterWriteFormatElement (local->writer,                                                 (xmlChar *)"avail_space", +                                               !limit_set ? "N/A" :                                                 "%"PRIu64, avail);          XML_RET_CHECK_AND_GOTO (ret, out);          ret = xmlTextWriterWriteFormatElement (local->writer,                                                (xmlChar *)"sl_exceeded", +                                               !limit_set ? "N/A" :                                                 "%s", sl);          XML_RET_CHECK_AND_GOTO (ret, out);          ret = xmlTextWriterWriteFormatElement (local->writer,                                                 (xmlChar *)"hl_exceeded", +                                               !limit_set ? "N/A" :                                                 "%s", hl);          XML_RET_CHECK_AND_GOTO (ret, out); @@ -6250,7 +6257,7 @@ int  cli_quota_object_xml_output (cli_local_t *local, char *path, char *sl_str,                               int64_t sl_val, quota_limits_t *limits,                               quota_meta_t *used_space, int64_t avail, -                             char *sl, char *hl) +                             char *sl, char *hl, gf_boolean_t limit_set)  {  #if (HAVE_LIB_XML)          int     ret             = -1; @@ -6265,16 +6272,19 @@ cli_quota_object_xml_output (cli_local_t *local, char *path, char *sl_str,          ret = xmlTextWriterWriteFormatElement (local->writer,                                                (xmlChar *)"hard_limit", +                                               !limit_set ? "N/A" :                                                 "%"PRIu64, limits->hl);          XML_RET_CHECK_AND_GOTO (ret, out);          ret = xmlTextWriterWriteFormatElement (local->writer,                                                (xmlChar *)"soft_limit_percent", +                                               !limit_set ? "N/A" :                                                 "%s", sl_str);          XML_RET_CHECK_AND_GOTO (ret, out);          ret = xmlTextWriterWriteFormatElement (local->writer,                                                (xmlChar *)"soft_limit_value", +                                               !limit_set ? "N/A" :                                                 "%"PRIu64, sl_val);          XML_RET_CHECK_AND_GOTO (ret, out); @@ -6293,18 +6303,21 @@ cli_quota_object_xml_output (cli_local_t *local, char *path, char *sl_str,          ret = xmlTextWriterWriteFormatElement (local->writer, -                                              (xmlChar *)"available", "%"PRIu64, -                                               avail); +                                              (xmlChar *)"available", +                                               !limit_set ? "N/A" : +                                              "%"PRIu64, avail);          XML_RET_CHECK_AND_GOTO (ret, out);          ret = xmlTextWriterWriteFormatElement (local->writer,                                                (xmlChar *)"sl_exceeded", +                                               !limit_set ? "N/A" :                                                 "%s", sl);          XML_RET_CHECK_AND_GOTO (ret, out);          ret = xmlTextWriterWriteFormatElement (local->writer,                                                 (xmlChar *)"hl_exceeded", +                                               !limit_set ? "N/A" :                                                 "%s", hl);          XML_RET_CHECK_AND_GOTO (ret, out);  | 
