Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.1
resource-agents
ctdb-bnc-696978-01-add-smb_fileid_algorithm.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ctdb-bnc-696978-01-add-smb_fileid_algorithm.patch of Package resource-agents
diff --git a/heartbeat/CTDB b/heartbeat/CTDB index bc21cbe..cdb5da4 100755 --- a/heartbeat/CTDB +++ b/heartbeat/CTDB @@ -306,6 +306,17 @@ if CTDB is managing Samba. <content type="string" default="tdb2" /> </parameter> +<parameter name="smb_fileid_algorithm" unique="0" required="0"> +<longdesc lang="en"> +Which fileid:algorithm to use with vfs_fileid. The correct +value depends on which clustered filesystem is in use, e.g.: +for OCFS2, this should be set to "fsid". Only necessary if +CTDB is managing Samba. +</longdesc> +<shortdesc lang="en">Samba VFS fileid algorithm</shortdesc> +<content type="string" default="" /> +</parameter> + </parameters> <actions> @@ -401,16 +412,44 @@ init_smb_conf() { # Don't screw around with the config if CTDB isn't managing Samba! ocf_is_true "$OCF_RESKEY_ctdb_manages_samba" || return 0 + # replace these things in smb.conf + local repl='# CTDB-RA:|passdb backend|clustering|idmap backend|private dir|ctdbd socket' + local private_dir [ -n "$OCF_RESKEY_smb_private_dir" ] && private_dir="\tprivate dir = $OCF_RESKEY_smb_private_dir\n" - grep -Eiv \ - '^[[:space:]]*(# CTDB-RA:|passdb backend|clustering|idmap backend|private dir|ctdbd socket)' \ - $OCF_RESKEY_smb_conf | sed "/^[[:space:]]*\[global\]/ a\\ + + local vfs_fileid + local do_vfs=0 + if [ -n "$OCF_RESKEY_smb_fileid_algorithm" ]; then + repl="${repl}|fileid:algorithm|fileid:mapping" + vfs_fileid="\tfileid:algorithm = $OCF_RESKEY_smb_fileid_algorithm\n" + if sed -n '/^[[:space:]]*\[global\]/,/^[[:space:]]*\[/p' $OCF_RESKEY_smb_conf | \ + grep -Eq '^[[:space:]]*vfs objects'; then + # vfs objects already specified, will append fileid to existing line + do_vfs=1 + else + vfs_fileid="$vfs_fileid\tvfs objects = fileid\n" + fi + fi + awk ' + /^[[:space:]]*\[/ { global = 0 } + /^[[:space:]]*\[global\]/ { global = 1 } + { + if(global) { + if ('$do_vfs' && $0 ~ /^[[:space:]]vfs objects/ && $0 !~ /fileid/) { + print $0" fileid" + } else if ($0 !~ /^[[:space:]]*('"$repl"')/) { + print + } + } else { + print + } + }' $OCF_RESKEY_smb_conf | sed "/^[[:space:]]*\[global\]/ a\\ \t# CTDB-RA: Begin auto-generated section (do not change below)\n\ \tpassdb backend = $OCF_RESKEY_smb_passdb_backend\n\ \tclustering = yes\n\ \tidmap backend = $OCF_RESKEY_smb_idmap_backend\n\ -\tctdbd socket = $OCF_RESKEY_ctdb_socket\n$private_dir\ +\tctdbd socket = $OCF_RESKEY_ctdb_socket\n$private_dir$vfs_fileid\ \t# CTDB-RA: End auto-generated section (do not change above)" > $OCF_RESKEY_smb_conf.$$ mv -f $OCF_RESKEY_smb_conf.$$ $OCF_RESKEY_smb_conf }
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