|
|
d1681e |
From df02eac6436c86e75aed23f8ba61a061d8db9f35 Mon Sep 17 00:00:00 2001
|
|
|
d1681e |
From: Kotresh HR <khiremat@redhat.com>
|
|
|
d1681e |
Date: Tue, 17 Oct 2017 11:28:43 -0400
|
|
|
d1681e |
Subject: [PATCH 087/128] glusterd: Validate changelog on geo-rep volume
|
|
|
d1681e |
|
|
|
d1681e |
If geo-rep is configured on volume, don't allow
|
|
|
d1681e |
to disable changelog.
|
|
|
d1681e |
|
|
|
d1681e |
Backport of:
|
|
|
d1681e |
|
|
|
d1681e |
> Upstream Patch: https://review.gluster.org/18540
|
|
|
d1681e |
> Change-Id: I7d1ba8b2939c8fe6ee6c59fb923d9aa1bdab553c
|
|
|
d1681e |
> BUG: 1503227
|
|
|
d1681e |
> Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
|
|
d1681e |
|
|
|
d1681e |
Change-Id: I7d1ba8b2939c8fe6ee6c59fb923d9aa1bdab553c
|
|
|
d1681e |
BUG: 1498391
|
|
|
d1681e |
Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
|
|
d1681e |
Reviewed-on: https://code.engineering.redhat.com/gerrit/124533
|
|
|
d1681e |
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
|
|
d1681e |
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
|
|
|
d1681e |
---
|
|
|
d1681e |
xlators/mgmt/glusterd/src/glusterd-messages.h | 9 ++++-
|
|
|
d1681e |
xlators/mgmt/glusterd/src/glusterd-volgen.c | 53 +++++++++++++++++++++++++++
|
|
|
d1681e |
2 files changed, 61 insertions(+), 1 deletion(-)
|
|
|
d1681e |
|
|
|
d1681e |
diff --git a/xlators/mgmt/glusterd/src/glusterd-messages.h b/xlators/mgmt/glusterd/src/glusterd-messages.h
|
|
|
d1681e |
index fb2079f..225d59b 100644
|
|
|
d1681e |
--- a/xlators/mgmt/glusterd/src/glusterd-messages.h
|
|
|
d1681e |
+++ b/xlators/mgmt/glusterd/src/glusterd-messages.h
|
|
|
d1681e |
@@ -41,7 +41,7 @@
|
|
|
d1681e |
|
|
|
d1681e |
#define GLUSTERD_COMP_BASE GLFS_MSGID_GLUSTERD
|
|
|
d1681e |
|
|
|
d1681e |
-#define GLFS_NUM_MESSAGES 613
|
|
|
d1681e |
+#define GLFS_NUM_MESSAGES 614
|
|
|
d1681e |
|
|
|
d1681e |
#define GLFS_MSGID_END (GLUSTERD_COMP_BASE + GLFS_NUM_MESSAGES + 1)
|
|
|
d1681e |
/* Messaged with message IDs */
|
|
|
d1681e |
@@ -4961,6 +4961,12 @@
|
|
|
d1681e |
*/
|
|
|
d1681e |
#define GD_MSG_PORTS_EXHAUSTED (GLUSTERD_COMP_BASE + 612)
|
|
|
d1681e |
|
|
|
d1681e |
+/*!
|
|
|
d1681e |
+ * @messageid
|
|
|
d1681e |
+ * @diagnosis
|
|
|
d1681e |
+ * @recommendedaction
|
|
|
d1681e |
+ *
|
|
|
d1681e |
+ */
|
|
|
d1681e |
#define GD_MSG_GANESHA_NOT_RUNNING (GLUSTERD_COMP_BASE + 613)
|
|
|
d1681e |
/*!
|
|
|
d1681e |
* @messageid
|
|
|
d1681e |
@@ -4968,6 +4974,7 @@
|
|
|
d1681e |
* @recommendedaction
|
|
|
d1681e |
*
|
|
|
d1681e |
*/
|
|
|
d1681e |
+#define GD_MSG_CHANGELOG_GET_FAIL (GLUSTERD_COMP_BASE + 614)
|
|
|
d1681e |
|
|
|
d1681e |
/*------------*/
|
|
|
d1681e |
|
|
|
d1681e |
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c
|
|
|
d1681e |
index 97049ac..8ff76d6 100644
|
|
|
d1681e |
--- a/xlators/mgmt/glusterd/src/glusterd-volgen.c
|
|
|
d1681e |
+++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c
|
|
|
d1681e |
@@ -1209,6 +1209,56 @@ loglevel_option_handler (volgen_graph_t *graph,
|
|
|
d1681e |
}
|
|
|
d1681e |
|
|
|
d1681e |
static int
|
|
|
d1681e |
+server_check_changelog_off (volgen_graph_t *graph, struct volopt_map_entry *vme,
|
|
|
d1681e |
+ glusterd_volinfo_t *volinfo)
|
|
|
d1681e |
+{
|
|
|
d1681e |
+ gf_boolean_t enabled = _gf_false;
|
|
|
d1681e |
+ int ret = 0;
|
|
|
d1681e |
+
|
|
|
d1681e |
+ GF_ASSERT (volinfo);
|
|
|
d1681e |
+ GF_ASSERT (vme);
|
|
|
d1681e |
+
|
|
|
d1681e |
+ if (strcmp (vme->option, "changelog") != 0)
|
|
|
d1681e |
+ return 0;
|
|
|
d1681e |
+
|
|
|
d1681e |
+ ret = gf_string2boolean (vme->value, &enabled);
|
|
|
d1681e |
+ if (ret || enabled)
|
|
|
d1681e |
+ goto out;
|
|
|
d1681e |
+
|
|
|
d1681e |
+ ret = glusterd_volinfo_get_boolean (volinfo, VKEY_CHANGELOG);
|
|
|
d1681e |
+ if (ret < 0) {
|
|
|
d1681e |
+ gf_msg ("glusterd", GF_LOG_WARNING, 0,
|
|
|
d1681e |
+ GD_MSG_CHANGELOG_GET_FAIL,
|
|
|
d1681e |
+ "failed to get the changelog status");
|
|
|
d1681e |
+ ret = -1;
|
|
|
d1681e |
+ goto out;
|
|
|
d1681e |
+ }
|
|
|
d1681e |
+
|
|
|
d1681e |
+ if (ret) {
|
|
|
d1681e |
+ enabled = _gf_false;
|
|
|
d1681e |
+ glusterd_check_geo_rep_configured (volinfo, &enabled);
|
|
|
d1681e |
+
|
|
|
d1681e |
+ if (enabled) {
|
|
|
d1681e |
+ gf_msg ("glusterd", GF_LOG_WARNING, 0,
|
|
|
d1681e |
+ GD_MSG_XLATOR_SET_OPT_FAIL,
|
|
|
d1681e |
+ GEOREP" sessions active"
|
|
|
d1681e |
+ "for the volume %s, cannot disable changelog ",
|
|
|
d1681e |
+ volinfo->volname);
|
|
|
d1681e |
+ set_graph_errstr (graph,
|
|
|
d1681e |
+ VKEY_CHANGELOG" cannot be disabled "
|
|
|
d1681e |
+ "while "GEOREP" sessions exist");
|
|
|
d1681e |
+ ret = -1;
|
|
|
d1681e |
+ goto out;
|
|
|
d1681e |
+ }
|
|
|
d1681e |
+ }
|
|
|
d1681e |
+
|
|
|
d1681e |
+ ret = 0;
|
|
|
d1681e |
+ out:
|
|
|
d1681e |
+ gf_msg_debug ("glusterd", 0, "Returning %d", ret);
|
|
|
d1681e |
+ return ret;
|
|
|
d1681e |
+}
|
|
|
d1681e |
+
|
|
|
d1681e |
+static int
|
|
|
d1681e |
server_check_marker_off (volgen_graph_t *graph, struct volopt_map_entry *vme,
|
|
|
d1681e |
glusterd_volinfo_t *volinfo)
|
|
|
d1681e |
{
|
|
|
d1681e |
@@ -1424,6 +1474,9 @@ server_spec_option_handler (volgen_graph_t *graph,
|
|
|
d1681e |
ret = server_check_marker_off (graph, vme, volinfo);
|
|
|
d1681e |
|
|
|
d1681e |
if (!ret)
|
|
|
d1681e |
+ ret = server_check_changelog_off (graph, vme, volinfo);
|
|
|
d1681e |
+
|
|
|
d1681e |
+ if (!ret)
|
|
|
d1681e |
ret = loglevel_option_handler (graph, vme, "brick");
|
|
|
d1681e |
|
|
|
d1681e |
if (!ret)
|
|
|
d1681e |
--
|
|
|
d1681e |
1.8.3.1
|
|
|
d1681e |
|