diff options
author | Martin Schwenke <martin@meltin.net> | 2014-07-28 20:06:16 +1000 |
---|---|---|
committer | Martin Schwenke <martin@meltin.net> | 2014-07-28 20:06:16 +1000 |
commit | aa02a12144fe70147a22601be9452f43989a62b6 (patch) | |
tree | 97fec48caed8d13750cc7906884a7707572484fc | |
parent | 2a42a372ca8c436ecedee03aadb6a0cee44a2d1a (diff) | |
download | autocluster-aa02a12144fe70147a22601be9452f43989a62b6.tar.gz autocluster-aa02a12144fe70147a22601be9452f43989a62b6.tar.xz autocluster-aa02a12144fe70147a22601be9452f43989a62b6.zip |
node_name_format_* functions should produce the node name
No use having them print the format string. That actually makes it
more restrictive. Instead, have the functions take cluster name and
index as arguments - these can then be passed to printf in either
order depending on the format string.
Signed-off-by: Martin Schwenke <martin@meltin.net>
-rwxr-xr-x | autocluster | 16 | ||||
-rw-r--r-- | config.d/50node_nas.defconf | 5 | ||||
-rw-r--r-- | config.d/51node_rhel_base.defconf | 5 | ||||
-rw-r--r-- | config.d/52node_build.defconf | 5 | ||||
-rw-r--r-- | config.d/55node_storage_gpfs.defconf | 5 | ||||
-rw-r--r-- | config.d/57node_ad.defconf | 5 | ||||
-rw-r--r-- | config.d/60tsm.defconf | 7 |
7 files changed, 29 insertions, 19 deletions
diff --git a/autocluster b/autocluster index 94d942e..30bce13 100755 --- a/autocluster +++ b/autocluster @@ -407,17 +407,12 @@ expand_nodes () { local count=$((${node_count[$node_type]:-0} + 1)) node_count[$node_type]=$count - local fmt - fmt=$(call_func node_name_format "$node_type") || { + name=$(call_func node_name_format "$node_type" "$CLUSTER" $count) || { echo "ERROR: Node type \"${node_type}\" not defined!" echo "Valid node types are:" set | sed -n 's@^node_name_format_\(.*\) ().*@ \1@p' exit 1 } - # printf behaves weirdly if given too many args for format, so - # "head" handles the case where there is no %d or similar for - # $count. - name=$(printf "${fmt}" "$CLUSTER" $count | head -n 1) ctdb_node=$(call_func node_is_ctdb_node "$node_type") } hack_all_nodes_with _get_name_ctdb_node @@ -552,12 +547,9 @@ cluster_update_hosts () # Building a general node name regexp is a bit cumbersome. :-) local name_regexp="(" for i in $(set | sed -n -e "s@^\(node_name_format_.*\) ().*@\1@p") ; do - # For each node_name_format_* function, get the actual node - # name format string - fmt=$($i) - # fill it with placeholders (remembering that "_" is not valid - # in a real cluster name) - local t=$(printf "$fmt\n" "_" "0" | head -n 1) + # Format node name with placeholders (remembering that "_" is + # not valid in a real cluster name) + local t=$("$i" "_" "0") # now replace the placeholders with regexps - order is # important here, since the cluster name can contain digits t=$(sed -r -e "s@[[:digit:]]+@[[:digit:]]+@" -e "s@_@${CLUSTER}@" <<<"$t") diff --git a/config.d/50node_nas.defconf b/config.d/50node_nas.defconf index 65c14fd..2b19b56 100644 --- a/config.d/50node_nas.defconf +++ b/config.d/50node_nas.defconf @@ -2,7 +2,10 @@ node_name_format_nas () { - echo '%snas%d' + local cluster="$1" + local index="$2" + + printf '%snas%d' "$cluster" "$index" } node_is_ctdb_node_nas () diff --git a/config.d/51node_rhel_base.defconf b/config.d/51node_rhel_base.defconf index ddb90b5..65e98d3 100644 --- a/config.d/51node_rhel_base.defconf +++ b/config.d/51node_rhel_base.defconf @@ -2,5 +2,8 @@ node_name_format_rhel_base () { - echo '%sbase%d' + local cluster="$1" + local index="$2" + + printf '%sbase%d' "$cluster" "$index" } diff --git a/config.d/52node_build.defconf b/config.d/52node_build.defconf index c9fc3e0..c58123e 100644 --- a/config.d/52node_build.defconf +++ b/config.d/52node_build.defconf @@ -2,7 +2,10 @@ node_name_format_build () { - echo '%sbuild%d' + local cluster="$1" + local index="$2" + + printf '%sbuild%d' "$cluster" "$index" } cluster_setup_tasks_build () diff --git a/config.d/55node_storage_gpfs.defconf b/config.d/55node_storage_gpfs.defconf index 08f9811..fb4bfc5 100644 --- a/config.d/55node_storage_gpfs.defconf +++ b/config.d/55node_storage_gpfs.defconf @@ -4,7 +4,10 @@ NODES_STORAGE_GPFS= node_name_format_storage_gpfs () { - echo '%sstorage%d' + local cluster="$1" + local index="$2" + + printf '%sstorage%d' "$cluster" "$index" } create_node_storage_gpfs () diff --git a/config.d/57node_ad.defconf b/config.d/57node_ad.defconf index 8cc791c..4e69829 100644 --- a/config.d/57node_ad.defconf +++ b/config.d/57node_ad.defconf @@ -11,7 +11,10 @@ defconf AD_NETBIOS_NAME "samba4" \ node_name_format_ad () { - echo '%sad%d' + local cluster="$1" + local index="$2" + + printf '%sad%d' "$cluster" "$index" } cluster_setup_tasks_ad () diff --git a/config.d/60tsm.defconf b/config.d/60tsm.defconf index c831188..2dd6dc5 100644 --- a/config.d/60tsm.defconf +++ b/config.d/60tsm.defconf @@ -27,11 +27,14 @@ defconf TSM_TEMPLATE "$installdir/templates/tsmserver.xml" \ node_name_format_tsm () { + local cluster="$1" + local index="$2" + # If only 1 tsm_server node then don't number it. if [ "${NODES/tsm_server:/}" = "${NODES//tsm_server:/}" ] ; then - echo '%stsm' + printf '%stsm' "$cluster" else - echo '%stsm%d' + printf '%stsm%d' "$cluster" "$index" fi } |