Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:Update
resource-agents
0040-CTDB-fix-OCF_RESKEY_ctdb_recovery_lock-val...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0040-CTDB-fix-OCF_RESKEY_ctdb_recovery_lock-validation-bs.patch of Package resource-agents
From 78c3bda2688980bc72009b3ce1edbedfb61f4d07 Mon Sep 17 00:00:00 2001 From: David Disseldorp <ddiss@suse.de> Date: Wed, 25 Jul 2018 22:48:40 +0200 Subject: [PATCH] CTDB: fix OCF_RESKEY_ctdb_recovery_lock validation (bsc#1088692) ctdb supports '!' prefix syntax to use a helper binary for recovery lock functionality. This currently fails the reclock path existence check. Add helper binary support by stripping the '!' prefix and trailing helper binary parameters before checking for existence. Signed-off-by: David Disseldorp <ddiss@suse.de> Cherry-picked from 2a7f004c. --- heartbeat/CTDB | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/heartbeat/CTDB b/heartbeat/CTDB index c171f98b..81645bbe 100755 --- a/heartbeat/CTDB +++ b/heartbeat/CTDB @@ -134,8 +134,8 @@ For more information see http://linux-ha.org/wiki/CTDB_(resource_agent) <parameter name="ctdb_recovery_lock" unique="1" required="1"> <longdesc lang="en"> -The location of a shared lock file, common across all nodes. -This must be on shared storage, e.g.: /shared-fs/samba/ctdb.lock +The location of a shared lock file or helper binary, common across all nodes. +See CTDB documentation for details. </longdesc> <shortdesc lang="en">CTDB shared lock file</shortdesc> <content type="string" default="" /> @@ -723,13 +723,24 @@ ctdb_validate() { return $OCF_ERR_CONFIGURED fi - lock_dir=$(dirname "$OCF_RESKEY_ctdb_recovery_lock") - touch "$lock_dir/$$" 2>/dev/null - if [ $? != 0 ]; then - ocf_exit_reason "Directory for lock file '$OCF_RESKEY_ctdb_recovery_lock' does not exist, or is not writable." - return $OCF_ERR_ARGS + if [ "${OCF_RESKEY_ctdb_recovery_lock:0:1}" == '!' ]; then + # '!' prefix means recovery lock is handled via a helper binary + binary="${OCF_RESKEY_ctdb_recovery_lock:1}" + binary="${binary%% *}" # trim any parameters + if [ -z "$binary" ]; then + ocf_exit_reason "ctdb_recovery_lock invalid helper" + return $OCF_ERR_CONFIGURED + fi + check_binary "${binary}" + else + lock_dir=$(dirname "$OCF_RESKEY_ctdb_recovery_lock") + touch "$lock_dir/$$" 2>/dev/null + if [ $? != 0 ]; then + ocf_exit_reason "Directory for lock file '$OCF_RESKEY_ctdb_recovery_lock' does not exist, or is not writable." + return $OCF_ERR_ARGS + fi + rm "$lock_dir/$$" fi - rm "$lock_dir/$$" return $OCF_SUCCESS } -- 2.13.7
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor