Blob Blame History Raw
From 9f2bd89762a853b2af93d290db68017555ab6c1a Mon Sep 17 00:00:00 2001
From: Manikandan Selvaganesh <mselvaga@redhat.com>
Date: Mon, 22 Aug 2016 12:43:19 +0530
Subject: [PATCH 50/86] quota/cli: add user driven quota events

This patch targets to capture all the user driven quota related events
which are important to be notified.

>Reviewed-on: http://review.gluster.org/15230
>Smoke: Gluster Build System <jenkins@build.gluster.org>
>NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
>CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
>Reviewed-by: Atin Mukherjee <amukherj@redhat.com>

Change-Id: I90c0af434363465e9dbdf6fca65ac220251d8d3c
BUG: 1361078
Signed-off-by: Manikandan Selvaganesh <mselvaga@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/84797
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Tested-by: Atin Mukherjee <amukherj@redhat.com>
---
 cli/src/cli-cmd-volume.c |   47 ++++++++++++++++++++++++++++++++++++++++++++++
 events/eventskeygen.py   |   13 ++++++++++++
 2 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c
index 0ea461e..27cb9dd 100644
--- a/cli/src/cli-cmd-volume.c
+++ b/cli/src/cli-cmd-volume.c
@@ -1707,6 +1707,53 @@ out:
                                  "logs for more details");
         }
 
+        /* Events for Quota */
+         if (ret == 0) {
+                switch (type) {
+                case GF_QUOTA_OPTION_TYPE_ENABLE:
+                        gf_event (EVENT_QUOTA_ENABLE, "volume=%s", volname);
+                        break;
+                case GF_QUOTA_OPTION_TYPE_DISABLE:
+                        gf_event (EVENT_QUOTA_DISABLE, "volume=%s", volname);
+                        break;
+                case GF_QUOTA_OPTION_TYPE_LIMIT_USAGE:
+                        gf_event (EVENT_QUOTA_SET_USAGE_LIMIT, "volume=%s;"
+                                  "path=%s;limit=%s", volname, words[4],
+                                  words[5]);
+                        break;
+                case GF_QUOTA_OPTION_TYPE_LIMIT_OBJECTS:
+                        gf_event (EVENT_QUOTA_SET_OBJECTS_LIMIT, "volume=%s;"
+                                  "path=%s;limit=%s", volname, words[4],
+                                  words[5]);
+                        break;
+                case GF_QUOTA_OPTION_TYPE_REMOVE:
+                        gf_event (EVENT_QUOTA_REMOVE_USAGE_LIMIT, "volume=%s;"
+                                  "path=%s", volname, words[4]);
+                        break;
+                case GF_QUOTA_OPTION_TYPE_REMOVE_OBJECTS:
+                        gf_event (EVENT_QUOTA_REMOVE_OBJECTS_LIMIT,
+                                  "volume=%s;" "path=%s", volname, words[4]);
+                        break;
+                case GF_QUOTA_OPTION_TYPE_ALERT_TIME:
+                        gf_event (EVENT_QUOTA_ALERT_TIME, "volume=%s;time=%s",
+                                  volname, words[4]);
+                        break;
+                case GF_QUOTA_OPTION_TYPE_SOFT_TIMEOUT:
+                        gf_event (EVENT_QUOTA_SOFT_TIMEOUT, "volume=%s;"
+                                  "soft-timeout=%s", volname, words[4]);
+                        break;
+                case GF_QUOTA_OPTION_TYPE_HARD_TIMEOUT:
+                        gf_event (EVENT_QUOTA_HARD_TIMEOUT, "volume=%s;"
+                                  "hard-timeout=%s", volname, words[4]);
+                        break;
+                case GF_QUOTA_OPTION_TYPE_DEFAULT_SOFT_LIMIT:
+                        gf_event (EVENT_QUOTA_DEFAULT_SOFT_LIMIT, "volume=%s;"
+                                  "default-soft-limit=%s", volname, words[4]);
+                        break;
+                }
+        }
+
+
         CLI_STACK_DESTROY (frame);
         return ret;
 }
diff --git a/events/eventskeygen.py b/events/eventskeygen.py
index 885c9de..144c554 100644
--- a/events/eventskeygen.py
+++ b/events/eventskeygen.py
@@ -69,6 +69,7 @@ keys = (
     "EVENT_BRICKPATH_RESOLVE_FAILED",
 
     "EVENT_NOTIFY_UNKNOWN_OP",
+
     "EVENT_QUORUM_LOST",
     "EVENT_QUORUM_REGAINED",
     "EVENT_REBALANCE_START_FAILED",
@@ -78,6 +79,18 @@ keys = (
     "EVENT_IMPORT_BRICK_FAILED",
     "EVENT_COMPARE_FRIEND_VOLUME_FAILED",
     "EVENT_NFS_GANESHA_EXPORT_FAILED",
+
+    "EVENT_QUOTA_ENABLE",
+    "EVENT_QUOTA_DISABLE",
+    "EVENT_QUOTA_SET_USAGE_LIMIT",
+    "EVENT_QUOTA_SET_OBJECTS_LIMIT",
+    "EVENT_QUOTA_REMOVE_USAGE_LIMIT",
+    "EVENT_QUOTA_REMOVE_OBJECTS_LIMIT",
+    "EVENT_QUOTA_ALERT_TIME",
+    "EVENT_QUOTA_SOFT_TIMEOUT",
+    "EVENT_QUOTA_HARD_TIMEOUT",
+    "EVENT_QUOTA_DEFAULT_SOFT_LIMIT",
+
 )
 
 LAST_EVENT = "EVENT_LAST"
-- 
1.7.1