From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9839 invoked by alias); 24 Sep 2008 17:58:00 -0000 Received: (qmail 9803 invoked by alias); 24 Sep 2008 17:58:00 -0000 X-Spam-Status: No, hits=-1.3 required=5.0 tests=AWL,BAYES_00,KAM_MX,SPF_HELO_PASS X-Spam-Check-By: sourceware.org X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on bastion.fedora.phx.redhat.com X-Spam-Level: Subject: master - rgmanager: Make freeze/unfreeze work with central_processing To: cluster-cvs-relay@redhat.com X-Project: Cluster Project X-Git-Module: cluster.git X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 24b6bb1ac02ad81507e291161298a4293303ddfb X-Git-Newrev: 69c480c5114618d63dfadd6ce7a6db28d4c149b2 From: Lon Hohberger Message-Id: <20080924175654.D4C7312042B@lists.fedorahosted.org> Date: Wed, 24 Sep 2008 17:58:00 -0000 X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 Mailing-List: contact cluster-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cluster-cvs-owner@sourceware.org X-SW-Source: 2008-q3/txt/msg00515.txt.bz2 Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=69c480c5114618d63dfadd6ce7a6db28d4c149b2 Commit: 69c480c5114618d63dfadd6ce7a6db28d4c149b2 Parent: 24b6bb1ac02ad81507e291161298a4293303ddfb Author: Lon Hohberger AuthorDate: Mon Aug 25 15:28:25 2008 -0400 Committer: Lon Hohberger CommitterDate: Wed Sep 24 13:39:10 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