summaryrefslogtreecommitdiff
path: root/ctdb/doc/examples
diff options
context:
space:
mode:
authorMartin Schwenke <martin@meltin.net>2018-08-20 19:09:45 +1000
committerAmitay Isaacs <amitay@samba.org>2018-08-24 10:59:20 +0200
commit8ddfc26d79fda2fd0265f370a4c08dc584e6a6ac (patch)
tree3414f00bf2e813673125d8092aa79ab9d2b17961 /ctdb/doc/examples
parent43adcd717cee689c2d0386bd2aa2878006aa9217 (diff)
downloadsamba-8ddfc26d79fda2fd0265f370a4c08dc584e6a6ac.tar.gz
ctdb-doc: Add support for migrating tunables to ctdb.conf options
This will become common, so will be useful to have support for. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13589 Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Diffstat (limited to 'ctdb/doc/examples')
-rwxr-xr-xctdb/doc/examples/config_migrate.sh45
1 files changed, 44 insertions, 1 deletions
diff --git a/ctdb/doc/examples/config_migrate.sh b/ctdb/doc/examples/config_migrate.sh
index db78c486301..9b579302553 100755
--- a/ctdb/doc/examples/config_migrate.sh
+++ b/ctdb/doc/examples/config_migrate.sh
@@ -160,6 +160,39 @@ check_ctdb_conf_option ()
[ -n "$_out" ]
}
+# Convert a ctdbd.conf tunable option into a ctdb.conf section+opt
+#
+# The difference between this and get_ctdb_conf_option() is that only
+# the tunable part of the option is passed as opt and it is matched
+# case-insensitively.
+get_ctdb_conf_tunable_option ()
+{
+ _opt="$1"
+ _val="$2"
+
+ awk -v opt="${_opt}" -v val="${_val}" \
+ 'tolower($3) == tolower(opt) {
+ if (!$4 || !val || (val == 0 ? 0 : 1) == $4) {
+ if ($5) {
+ print $1, $2, $5
+ } else {
+ print $1, $2, val
+ }
+ }
+ }' <<EOF
+EOF
+
+}
+
+# Check if a tunable will convert to a ctdb.conf option
+check_ctdb_conf_tunable_option ()
+{
+ _opt="$1"
+
+ _out=$(get_ctdb_conf_tunable_option "$_opt" "")
+ [ -n "$_out" ]
+}
+
# Check if an option has been removed
check_removed_option ()
{
@@ -508,7 +541,14 @@ build_ctdb_conf ()
list_options |
while read -r _opt _val ; do
- _out=$(get_ctdb_conf_option "$_opt" "$_val")
+ case "$_opt" in
+ CTDB_SET_*)
+ _opt="${_opt#CTDB_SET_}"
+ _out=$(get_ctdb_conf_tunable_option "$_opt" "$_val")
+ ;;
+ *)
+ _out=$(get_ctdb_conf_option "$_opt" "$_val")
+ esac
if [ -z "$_out" ] ; then
continue
fi
@@ -563,6 +603,9 @@ build_ctdb_tunables ()
list_tunables |
while read -r _var _val ; do
+ if check_ctdb_conf_tunable_option "$_var" ; then
+ continue
+ fi
if ! check_valid_tunable "$_var" ; then
continue
fi