summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-ganesha.c
diff options
context:
space:
mode:
authorAvra Sengupta <asengupt@redhat.com>2016-12-13 11:55:19 +0530
committerRajesh Joseph <rjoseph@redhat.com>2016-12-16 23:07:31 -0800
commitd0528cf2408533b45383a796d419c49fa96e810b (patch)
tree2725dcefbac73c61d826bc8d56f7a9050e3a99e6 /xlators/mgmt/glusterd/src/glusterd-ganesha.c
parent136e6c81201daeb49e5ca9b893ae23b3ba5c0bdc (diff)
snapshot: Fix restore rollback to reassign snap volume ids to bricks
Added further checks to ensure we do not go beyond prevalidate when trying to restore a snapshot which has a nfs-gansha conf file, in a cluster when nfs-ganesha is not enabled The error message for the particular scenario is: "Snapshot(<snapname>) has a nfs-ganesha export conf file. cluster.enable-shared-storage and nfs-ganesha should be enabled before restoring this snapshot." Change-Id: I1b87e9907e0a5e162f26ef1ca89fe76e8da8610f BUG: 1404118 Signed-off-by: Avra Sengupta <asengupt@redhat.com> Reviewed-on: http://review.gluster.org/16116 Reviewed-by: Rajesh Joseph <rjoseph@redhat.com> 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>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-ganesha.c')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-ganesha.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-ganesha.c b/xlators/mgmt/glusterd/src/glusterd-ganesha.c
index 746a3d1e364..8dde82e89ed 100644
--- a/xlators/mgmt/glusterd/src/glusterd-ganesha.c
+++ b/xlators/mgmt/glusterd/src/glusterd-ganesha.c
@@ -159,6 +159,38 @@ manage_service (char *action)
" not recognized.", action);
return ret;
}
+
+/*
+ * Check if the cluster is a ganesha cluster or not *
+ */
+gf_boolean_t
+glusterd_is_ganesha_cluster () {
+ int ret = -1;
+ glusterd_conf_t *priv = NULL;
+ xlator_t *this = NULL;
+ gf_boolean_t ret_bool = _gf_false;
+
+ this = THIS;
+ GF_VALIDATE_OR_GOTO ("ganesha", this, out);
+ priv = this->private;
+ GF_VALIDATE_OR_GOTO (this->name, priv, out);
+
+ ret = dict_get_str_boolean (priv->opts,
+ GLUSTERD_STORE_KEY_GANESHA_GLOBAL,
+ _gf_false);
+ if (ret == _gf_true) {
+ ret_bool = _gf_true;
+ gf_msg_debug (this->name, 0,
+ "nfs-ganesha is enabled for the cluster");
+ } else
+ gf_msg_debug (this->name, 0,
+ "nfs-ganesha is disabled for the cluster");
+
+out:
+ return ret_bool;
+
+}
+
/* Check if ganesha.enable is set to 'on', that checks if
* a particular volume is exported via NFS-Ganesha */
gf_boolean_t