STABLE2 - rgmanager: Make freeze/unfreeze work with central_processing
Lon Hohberger
lon@fedoraproject.org
Mon Sep 22 13:19:00 GMT 2008
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=ac1e2f52cd92cc78abebc0ae31c79862735945b8
Commit: ac1e2f52cd92cc78abebc0ae31c79862735945b8
Parent: 8a110f230d45b330cc3c088b804ad62a245709a1
Author: Lon Hohberger <lhh@redhat.com>
AuthorDate: Mon Aug 25 15:28:25 2008 -0400
Committer: Lon Hohberger <lhh@redhat.com>
CommitterDate: Mon Sep 22 09:14:46 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 2593350..8a205ba 100644
--- a/rgmanager/src/daemons/rg_state.c
+++ b/rgmanager/src/daemons/rg_state.c
@@ -1506,7 +1506,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 7272818..a50b1af 100644
--- a/rgmanager/src/daemons/slang_event.c
+++ b/rgmanager/src/daemons/slang_event.c
@@ -82,7 +82,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[] =
@@ -131,6 +133,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),
@@ -263,6 +267,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);
*/
@@ -936,6 +955,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 dfd31e0..8e519fa 100644
--- a/rgmanager/src/resources/default_event_script.sl
+++ b/rgmanager/src/resources/default_event_script.sl
@@ -289,7 +289,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
More information about the Cluster-cvs
mailing list