This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RHEL5 - rgmanager: Make freeze/unfreeze work with central_processing


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=62dde5f3e9907175749155c3487f44eedf216442
Commit:        62dde5f3e9907175749155c3487f44eedf216442
Parent:        9607c265d75b92add904085c9fc75d3ad29be6e6
Author:        Lon Hohberger <lhh@redhat.com>
AuthorDate:    Mon Aug 25 15:28:25 2008 -0400
Committer:     Lon Hohberger <lhh@redhat.com>
CommitterDate: Mon Aug 25 15:28:25 2008 -0400

rgmanager: Make freeze/unfreeze work with central_processing

Part 2 of 2 for rhbz 448046
---
 rgmanager/src/daemons/rg_state.c                |    3 +-
 rgmanager/src/daemons/slang_event.c             |   25 ++++++++++++++++++++++-
 rgmanager/src/resources/default_event_script.sl |   10 ++++++++-
 3 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/rgmanager/src/daemons/rg_state.c b/rgmanager/src/daemons/rg_state.c
index 76c62f5..17776e8 100644
--- a/rgmanager/src/daemons/rg_state.c
+++ b/rgmanager/src/daemons/rg_state.c
@@ -1532,7 +1532,8 @@ _svc_freeze(char *svcName, int enabled)
 		return RG_EFAIL;
 	}
 
-	clulog(LOG_DEBUG, "Handling %s request for RG %s\n", svcName, enabled?"freeze":"unfreeze");
+	clulog(LOG_DEBUG, "Handling %s request for RG %s\n", enabled?"freeze":"unfreeze",
+	       svcName);
 
 	if (get_rg_state(svcName, &svcStatus) != 0) {
 		rg_unlock(&lockp);
diff --git a/rgmanager/src/daemons/slang_event.c b/rgmanager/src/daemons/slang_event.c
index 92284b5..150a4fa 100644
--- a/rgmanager/src/daemons/slang_event.c
+++ b/rgmanager/src/daemons/slang_event.c
@@ -100,7 +100,9 @@ static int
    _user_stop = RG_STOP_USER,		/* From clusvcadm */
    _user_relo = RG_RELOCATE,
    _user_restart = RG_RESTART,
-   _user_migrate = RG_MIGRATE;
+   _user_migrate = RG_MIGRATE,
+   _user_freeze = RG_FREEZE,
+   _user_unfreeze = RG_UNFREEZE;
 
 
 SLang_Intrin_Var_Type rgmanager_vars[] =
@@ -151,6 +153,8 @@ SLang_Intrin_Var_Type rgmanager_vars[] =
 	MAKE_VARIABLE("USER_RELOCATE",	&_user_relo,	SLANG_INT_TYPE, 1),
 	MAKE_VARIABLE("USER_RESTART",	&_user_restart,	SLANG_INT_TYPE, 1),
 	MAKE_VARIABLE("USER_MIGRATE",	&_user_migrate,	SLANG_INT_TYPE, 1),
+	MAKE_VARIABLE("USER_FREEZE",	&_user_freeze,	SLANG_INT_TYPE, 1),
+	MAKE_VARIABLE("USER_UNFREEZE",	&_user_unfreeze,SLANG_INT_TYPE, 1),
 
 	/* Errors */
 	MAKE_VARIABLE("rg_error",	&_rg_err,	SLANG_INT_TYPE, 1),
@@ -302,6 +306,21 @@ sl_service_status(char *svcName)
 }
 
 
+/* These can be done by the master node */
+int
+sl_service_freeze(char *svcName)
+{
+	return svc_freeze(svcName);
+}
+
+
+int
+sl_service_unfreeze(char *svcName)
+{
+	return svc_unfreeze(svcName);
+}
+
+
 /**
   (nofailback, restricted, ordered, nodelist) = service_domain_info(svcName);
  */
@@ -975,6 +994,10 @@ SLang_Intrin_Fun_Type rgmanager_slang[] =
 	MAKE_INTRINSIC_0("service_start", sl_start_service, SLANG_INT_TYPE),
 	MAKE_INTRINSIC_S("service_status", sl_service_status,
 			 SLANG_VOID_TYPE),
+	MAKE_INTRINSIC_S("service_freeze", sl_service_freeze,
+			 SLANG_INT_TYPE),
+	MAKE_INTRINSIC_S("service_unfreeze", sl_service_unfreeze,
+			 SLANG_INT_TYPE),
 
 	/* Node list manipulation */
 	MAKE_INTRINSIC_0("union", sl_union, SLANG_VOID_TYPE),
diff --git a/rgmanager/src/resources/default_event_script.sl b/rgmanager/src/resources/default_event_script.sl
index e961266..d83512b 100644
--- a/rgmanager/src/resources/default_event_script.sl
+++ b/rgmanager/src/resources/default_event_script.sl
@@ -294,7 +294,15 @@ define default_user_event_handler()
 
 		ret = service_stop(service_name);
 
-	} 
+	} else if (user_request == USER_FREEZE) {
+
+		ret = service_freeze(service_name);
+
+	} else if (user_request == USER_UNFREEZE) {
+
+		ret = service_unfreeze(service_name);
+
+	}
 
 	%
 	% todo - migrate


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]