summaryrefslogtreecommitdiffstats
path: root/cli/src/cli-cmd-volume.c
diff options
context:
space:
mode:
Diffstat (limited to 'cli/src/cli-cmd-volume.c')
-rw-r--r--cli/src/cli-cmd-volume.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c
index 7dc26144..17663091 100644
--- a/cli/src/cli-cmd-volume.c
+++ b/cli/src/cli-cmd-volume.c
@@ -1096,6 +1096,20 @@ print_quota_list_header (void)
}
int
+cli_get_soft_limit (call_frame_t *frame, cli_local_t *local, dict_t *options,
+ const char **words)
+{
+ rpc_clnt_procedure_t *proc = NULL;
+ int ret = -1;
+
+ CLI_LOCAL_INIT (local, words, frame, options);
+ proc = &cli_rpc_prog->proctable[GLUSTER_CLI_QUOTA];
+ ret = proc->fn (frame, THIS, options);
+
+ return ret;
+}
+
+int
cli_cmd_quota_cbk (struct cli_state *state, struct cli_cmd_word *word,
const char **words, int wordcount)
{
@@ -1112,6 +1126,7 @@ cli_cmd_quota_cbk (struct cli_state *state, struct cli_cmd_word *word,
char *volname = NULL;
dict_t *xdata = NULL;
char buf[256] = {0};
+ FILE *fp = NULL;
const char *question = "Disabling quota will delete all the quota "
"configuration. Do you want to continue?";
@@ -1152,6 +1167,12 @@ cli_cmd_quota_cbk (struct cli_state *state, struct cli_cmd_word *word,
goto out;
}
if (type == GF_QUOTA_OPTION_TYPE_LIST && wordcount == 4) {
+ ret = cli_get_soft_limit (frame, local, options, words);
+ if (ret) {
+ gf_log ("cli", GF_LOG_ERROR, "Failed to fetch default "
+ "soft-limit");
+ goto out;
+ }
proc = &cli_quotad_clnt.proctable[GF_AGGREGATOR_GETLIMIT];
xdata = dict_new ();
if (!xdata) {
@@ -1166,7 +1187,6 @@ cli_cmd_quota_cbk (struct cli_state *state, struct cli_cmd_word *word,
//TODO: fix hardcoding
sprintf (quota_conf_file, "/var/lib/glusterd/vols/%s/quota.conf",
volname);
- FILE *fp = NULL;
fp = fopen (quota_conf_file, "r");
if (!fp) {
gf_log ("cli", GF_LOG_ERROR, "Failed to open quota.conf");
@@ -1197,6 +1217,8 @@ cli_cmd_quota_cbk (struct cli_state *state, struct cli_cmd_word *word,
ret = proc->fn (frame, THIS, options);
out:
+ if (fp)
+ fclose (fp);
if (ret) {
cli_cmd_sent_status_get (&sent);
if (sent == 0 && parse_err == 0)