All of lore.kernel.org
 help / color / mirror / Atom feed
* [Cluster-devel] [PATCH] rgmanager: Add 'disabled' configuration option [RHEL6]
@ 2011-08-01 20:39 Lon Hohberger
  2011-08-01 20:39 ` [Cluster-devel] [PATCH] config: Add 'disabled' flag to rm element [RHEL6] Lon Hohberger
  2011-08-02  6:57 ` [Cluster-devel] [PATCH] rgmanager: Add 'disabled' configuration option [RHEL6] Fabio M. Di Nitto
  0 siblings, 2 replies; 3+ messages in thread
From: Lon Hohberger @ 2011-08-01 20:39 UTC (permalink / raw)
  To: cluster-devel.redhat.com

The option turns off rgmanager, which will shut down if
running and cause rgmanager to refuse to start if
starting up.

Resolves: rhbz#723925

Signed-off-by: Lon Hohberger <lhh@redhat.com>
---
 rgmanager/src/daemons/main.c |   51 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 50 insertions(+), 1 deletions(-)

diff --git a/rgmanager/src/daemons/main.c b/rgmanager/src/daemons/main.c
index 46ddf18..4e12c68 100644
--- a/rgmanager/src/daemons/main.c
+++ b/rgmanager/src/daemons/main.c
@@ -749,6 +749,14 @@ event_loop(msgctx_t *localctx, msgctx_t *clusterctx)
 	if (need_reconfigure) {
 		need_reconfigure = 0;
 		configure_rgmanager(-1, 0, NULL);
+
+		/*
+		 * A shutdown during reconfiguration would slow down
+		 * the exit request, so it's pointless to run the
+		 * deltas at this point
+		 */
+		if (shutdown_pending)
+			return 0;
 		config_event_q();
 		return 0;
 	}
@@ -782,7 +790,6 @@ cleanup(msgctx_t *clusterctx)
 }
 
 
-
 static void
 statedump(int __attribute__ ((unused)) sig)
 {
@@ -790,6 +797,36 @@ statedump(int __attribute__ ((unused)) sig)
 }
 
 
+static int
+rgmanager_disabled(int ccsfd)
+{
+	char *v;
+	int disabled = 0;
+	int internal;
+
+	if (ccsfd < 0) {
+		internal = 1;
+		ccsfd = ccs_force_connect(NULL, 0);
+		if (ccsfd < 0)
+			return -1;
+	}
+
+	if (ccs_get(ccsfd, "/cluster/rm/@disabled", &v) == 0) {
+		if (atoi(v) == 1) {
+			disabled = 1;
+			shutdown_pending = 1;
+			logt_print(LOG_NOTICE, "Resource Group Manager Disabled\n");
+		}
+		free(v);
+	}
+
+	if (internal)
+		ccs_disconnect(ccsfd);
+
+	return disabled;
+}
+
+
 /*
  * Configure logging based on data in cluster.conf
  */
@@ -810,6 +847,8 @@ configure_rgmanager(int ccsfd, int dbg, int *token_secs)
 
 	setup_logging(ccsfd);
 
+	rgmanager_disabled(ccsfd);
+
 	if (token_secs && ccs_get(ccsfd, "/cluster/totem/@token", &v) == 0) {
 		tmp = atoi(v);
 		if (tmp >= 1000) {
@@ -982,6 +1021,13 @@ main(int argc, char **argv)
 		debug = 1;
 	}
 
+	/* If we're disabled in the configuration, don't fork */
+	if (rgmanager_disabled(-1) > 0) {
+		fprintf(stderr,
+			"rgmanager disabled in configuration; not starting\n");
+		return 2;
+	}
+
 	if (!foreground && (geteuid() == 0)) {
 		daemon_init(argv[0]);
 		if (wd && !debug && !watchdog_init())
@@ -1040,6 +1086,9 @@ main(int argc, char **argv)
 	 */
 	xmlInitParser();
 	configure_rgmanager(-1, debug, &cluster_timeout);
+	if (shutdown_pending == 1)
+		goto out_ls;
+
 	logt_print(LOG_NOTICE, "Resource Group Manager Starting\n");
 
 	if (rgm_dbus_notify && rgm_dbus_init() != 0) {
-- 
1.7.3.4



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Cluster-devel] [PATCH] config: Add 'disabled' flag to rm element [RHEL6]
  2011-08-01 20:39 [Cluster-devel] [PATCH] rgmanager: Add 'disabled' configuration option [RHEL6] Lon Hohberger
@ 2011-08-01 20:39 ` Lon Hohberger
  2011-08-02  6:57 ` [Cluster-devel] [PATCH] rgmanager: Add 'disabled' configuration option [RHEL6] Fabio M. Di Nitto
  1 sibling, 0 replies; 3+ messages in thread
From: Lon Hohberger @ 2011-08-01 20:39 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Related: rhbz#723925

Signed-off-by: Lon Hohberger <lhh@redhat.com>
---
 config/tools/xml/cluster.rng.in.head |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/config/tools/xml/cluster.rng.in.head b/config/tools/xml/cluster.rng.in.head
index f9606ad..7696533 100644
--- a/config/tools/xml/cluster.rng.in.head
+++ b/config/tools/xml/cluster.rng.in.head
@@ -869,6 +869,11 @@ To validate your cluster.conf against this schema, run:
        of the following keywords: auth, authpriv, cron, daemon, kern,
        lpr, mail, news, syslog, user, uucp and local0 through local7"/>
    </optional>
+   <optional>
+    <attribute name="disabled" rha:description="Disables rgmanager entirely if set to 1.  Do not set unless you really mean it." rha:sample="">
+     <data type="integer"/>
+    </attribute>
+   </optional>
    <interleave>
    <optional>
     <element name="failoverdomains" rha:description="Failover domain definitions.">
-- 
1.7.3.4



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Cluster-devel] [PATCH] rgmanager: Add 'disabled' configuration option [RHEL6]
  2011-08-01 20:39 [Cluster-devel] [PATCH] rgmanager: Add 'disabled' configuration option [RHEL6] Lon Hohberger
  2011-08-01 20:39 ` [Cluster-devel] [PATCH] config: Add 'disabled' flag to rm element [RHEL6] Lon Hohberger
@ 2011-08-02  6:57 ` Fabio M. Di Nitto
  1 sibling, 0 replies; 3+ messages in thread
From: Fabio M. Di Nitto @ 2011-08-02  6:57 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Both patches look good to me (option and schema update)

Fabio

On 8/1/2011 10:39 PM, Lon Hohberger wrote:
> The option turns off rgmanager, which will shut down if
> running and cause rgmanager to refuse to start if
> starting up.
> 
> Resolves: rhbz#723925
> 
> Signed-off-by: Lon Hohberger <lhh@redhat.com>
> ---
>  rgmanager/src/daemons/main.c |   51 +++++++++++++++++++++++++++++++++++++++++-
>  1 files changed, 50 insertions(+), 1 deletions(-)
> 
> diff --git a/rgmanager/src/daemons/main.c b/rgmanager/src/daemons/main.c
> index 46ddf18..4e12c68 100644
> --- a/rgmanager/src/daemons/main.c
> +++ b/rgmanager/src/daemons/main.c
> @@ -749,6 +749,14 @@ event_loop(msgctx_t *localctx, msgctx_t *clusterctx)
>  	if (need_reconfigure) {
>  		need_reconfigure = 0;
>  		configure_rgmanager(-1, 0, NULL);
> +
> +		/*
> +		 * A shutdown during reconfiguration would slow down
> +		 * the exit request, so it's pointless to run the
> +		 * deltas at this point
> +		 */
> +		if (shutdown_pending)
> +			return 0;
>  		config_event_q();
>  		return 0;
>  	}
> @@ -782,7 +790,6 @@ cleanup(msgctx_t *clusterctx)
>  }
>  
>  
> -
>  static void
>  statedump(int __attribute__ ((unused)) sig)
>  {
> @@ -790,6 +797,36 @@ statedump(int __attribute__ ((unused)) sig)
>  }
>  
>  
> +static int
> +rgmanager_disabled(int ccsfd)
> +{
> +	char *v;
> +	int disabled = 0;
> +	int internal;
> +
> +	if (ccsfd < 0) {
> +		internal = 1;
> +		ccsfd = ccs_force_connect(NULL, 0);
> +		if (ccsfd < 0)
> +			return -1;
> +	}
> +
> +	if (ccs_get(ccsfd, "/cluster/rm/@disabled", &v) == 0) {
> +		if (atoi(v) == 1) {
> +			disabled = 1;
> +			shutdown_pending = 1;
> +			logt_print(LOG_NOTICE, "Resource Group Manager Disabled\n");
> +		}
> +		free(v);
> +	}
> +
> +	if (internal)
> +		ccs_disconnect(ccsfd);
> +
> +	return disabled;
> +}
> +
> +
>  /*
>   * Configure logging based on data in cluster.conf
>   */
> @@ -810,6 +847,8 @@ configure_rgmanager(int ccsfd, int dbg, int *token_secs)
>  
>  	setup_logging(ccsfd);
>  
> +	rgmanager_disabled(ccsfd);
> +
>  	if (token_secs && ccs_get(ccsfd, "/cluster/totem/@token", &v) == 0) {
>  		tmp = atoi(v);
>  		if (tmp >= 1000) {
> @@ -982,6 +1021,13 @@ main(int argc, char **argv)
>  		debug = 1;
>  	}
>  
> +	/* If we're disabled in the configuration, don't fork */
> +	if (rgmanager_disabled(-1) > 0) {
> +		fprintf(stderr,
> +			"rgmanager disabled in configuration; not starting\n");
> +		return 2;
> +	}
> +
>  	if (!foreground && (geteuid() == 0)) {
>  		daemon_init(argv[0]);
>  		if (wd && !debug && !watchdog_init())
> @@ -1040,6 +1086,9 @@ main(int argc, char **argv)
>  	 */
>  	xmlInitParser();
>  	configure_rgmanager(-1, debug, &cluster_timeout);
> +	if (shutdown_pending == 1)
> +		goto out_ls;
> +
>  	logt_print(LOG_NOTICE, "Resource Group Manager Starting\n");
>  
>  	if (rgm_dbus_notify && rgm_dbus_init() != 0) {



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-08-02  6:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-01 20:39 [Cluster-devel] [PATCH] rgmanager: Add 'disabled' configuration option [RHEL6] Lon Hohberger
2011-08-01 20:39 ` [Cluster-devel] [PATCH] config: Add 'disabled' flag to rm element [RHEL6] Lon Hohberger
2011-08-02  6:57 ` [Cluster-devel] [PATCH] rgmanager: Add 'disabled' configuration option [RHEL6] Fabio M. Di Nitto

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.