For "master", if there is a master then print the PNN, otherwise print
nothing.
For "list", print the PNN and IP addresses without a colon in between.
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
"$CTDB_LVS_PUBLIC_IFACE" "$CTDB_LVS_PUBLIC_IP"
ctdb_get_pnn
"$CTDB_LVS_PUBLIC_IFACE" "$CTDB_LVS_PUBLIC_IP"
ctdb_get_pnn
- lvsmaster=$("${CTDB_HELPER_BINDIR}/ctdb_lvs" master | sed -n -e 's/Node \([0-9]*\) is LVS master/\1/p')
+ lvsmaster=$("${CTDB_HELPER_BINDIR}/ctdb_lvs" master)
if [ "$pnn" != "$lvsmaster" ] ; then
# This node is not the LVS master so change the IP address
# to have scope "host" so this node won't respond to ARPs
if [ "$pnn" != "$lvsmaster" ] ; then
# This node is not the LVS master so change the IP address
# to have scope "host" so this node won't respond to ARPs
# Add all nodes (except this node) as LVS servers
"${CTDB_HELPER_BINDIR}/ctdb_lvs" list |
# Add all nodes (except this node) as LVS servers
"${CTDB_HELPER_BINDIR}/ctdb_lvs" list |
- awk -F: -v pnn="$pnn" '$1 != pnn { print $2 }' |
+ awk -v pnn="$pnn" '$1 != pnn { print $2 }' |
while read ip ; do
ipvsadm -a -t "$CTDB_LVS_PUBLIC_IP" -r $ip -g
ipvsadm -a -u "$CTDB_LVS_PUBLIC_IP" -r $ip -g
while read ip ; do
ipvsadm -a -t "$CTDB_LVS_PUBLIC_IP" -r $ip -g
ipvsadm -a -u "$CTDB_LVS_PUBLIC_IP" -r $ip -g
Example output:
</para>
<screen>
Example output:
</para>
<screen>
</screen>
</listitem>
</varlistentry>
</screen>
</listitem>
</varlistentry>
Example output:
</para>
<screen>
Example output:
</para>
<screen>
-2:10.0.0.13
-3:10.0.0.14
+2 10.0.0.13
+3 10.0.0.14
</screen>
</listitem>
</varlistentry>
</screen>
</listitem>
</varlistentry>
ctdb_lvs_master ()
{
if [ -n "$FAKE_CTDB_LVS_MASTER" ] ; then
ctdb_lvs_master ()
{
if [ -n "$FAKE_CTDB_LVS_MASTER" ] ; then
- echo "Node ${FAKE_CTDB_LVS_MASTER} is LVS master"
+ echo "$FAKE_CTDB_LVS_MASTER"
- echo "This is no LVS master"
{
_pnn=0
while read _ip _opts ; do
{
_pnn=0
while read _ip _opts ; do
_pnn=$(($_pnn + 1))
done <"$CTDB_LVS_NODES"
}
_pnn=$(($_pnn + 1))
done <"$CTDB_LVS_NODES"
}
#####
required_result 255 <<EOF
#####
required_result 255 <<EOF
EOF
simple_test master <<EOF
EOF
simple_test master <<EOF
#####
required_result 0 <<EOF
#####
required_result 0 <<EOF
EOF
simple_test master <<EOF
EOF
simple_test master <<EOF
#####
required_result 0 <<EOF
#####
required_result 0 <<EOF
-0:192.168.20.41
-1:192.168.20.42
-2:192.168.20.43
+0 192.168.20.41
+1 192.168.20.42
+2 192.168.20.43
EOF
simple_test list <<EOF
EOF
simple_test list <<EOF
#####
required_result 0 <<EOF
#####
required_result 0 <<EOF
EOF
simple_test master <<EOF
EOF
simple_test master <<EOF
#####
required_result 0 <<EOF
#####
required_result 0 <<EOF
-0:192.168.20.41
-2:192.168.20.43
+0 192.168.20.41
+2 192.168.20.43
EOF
simple_test list <<EOF
EOF
simple_test list <<EOF
#####
required_result 0 <<EOF
#####
required_result 0 <<EOF
EOF
simple_test master <<EOF
EOF
simple_test master <<EOF
#####
required_result 0 <<EOF
#####
required_result 0 <<EOF
-1:192.168.20.42
-2:192.168.20.43
+1 192.168.20.42
+2 192.168.20.43
EOF
simple_test list <<EOF
EOF
simple_test list <<EOF
#####
required_result 0 <<EOF
#####
required_result 0 <<EOF
EOF
simple_test master <<EOF
EOF
simple_test master <<EOF
#####
required_result 0 <<EOF
#####
required_result 0 <<EOF
-0:192.168.20.41
-1:192.168.20.42
-2:192.168.20.43
+0 192.168.20.41
+1 192.168.20.42
+2 192.168.20.43
EOF
simple_test list <<EOF
EOF
simple_test list <<EOF
#####
required_result 0 <<EOF
#####
required_result 0 <<EOF
EOF
simple_test master <<EOF
EOF
simple_test master <<EOF
#####
required_result 0 <<EOF
#####
required_result 0 <<EOF
EOF
simple_test list <<EOF
EOF
simple_test list <<EOF
#####
required_result 255 <<EOF
#####
required_result 255 <<EOF
EOF
simple_test master <<EOF
EOF
simple_test master <<EOF
echo "${_master_candidates%% *}"
}
echo "${_master_candidates%% *}"
}
-# Print the PNN of the LVS master node, verbose version
-show_master ()
-{
- _master_pnn=$(find_master)
- case "$?" in
- 0)
- echo "Node ${_master_pnn} is LVS master"
- exit 0
- ;;
- 255)
- echo "There is no LVS master"
- exit 255
- ;;
- *)
- exit 10
- ;;
- esac
-}
-
# List all usable nodes in the LVS group
nodes_list ()
{
# List all usable nodes in the LVS group
nodes_list ()
{
- awk '{ print $1 ":" $2 }'<<EOF
+ awk '{ print $1, $2 }'<<EOF
list) nodes_list ;;
status) nodes_status ;;
*) usage ;;
list) nodes_list ;;
status) nodes_status ;;
*) usage ;;