common-ha: handle long node names and node names with '-' and '.' in them
sourcing the /etc/ganesha/ganesha-ha.conf file seemed like a simple and elegant solution for reading config params, but bash variable names do not allow '-' and '.' in them. Change-Id: I0d2e6cb21017472b1e0f764335cf28946cca95f0 BUG: 1225572 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/10952 Tested-by: NetBSD Build System Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Niels de Vos <ndevos@redhat.com>
This commit is contained in:
parent
378fa28f2e
commit
54b193760c
@ -1,12 +1,26 @@
|
||||
# Name of the HA cluster created.
|
||||
# must be unique within the subnet
|
||||
HA_NAME="ganesha-ha-360"
|
||||
# The server from which you intend to mount
|
||||
# the shared volume.
|
||||
#
|
||||
# The gluster server from which to mount the shared data volume.
|
||||
HA_VOL_SERVER="server1"
|
||||
#
|
||||
# N.B. you may use short names, long names, or IP addresses. Once you
|
||||
# select one, stay with it as it will be mildly unpleasant to clean up
|
||||
# if you switch later on. Ensure that all names - short and/or long -
|
||||
# are in DNS or /etc/hosts on all machines in the cluster.
|
||||
#
|
||||
# The subset of nodes of the Gluster Trusted Pool
|
||||
# that forms the ganesha HA cluster. IP/Hostname
|
||||
# is specified.
|
||||
HA_CLUSTER_NODES="server1,server2,..."
|
||||
# Virtual IPs of each of the nodes specified above.
|
||||
VIP_server1="10.x.x.x"
|
||||
VIP_server2="10.x.x.x"
|
||||
#HA_CLUSTER_NODES="server1.lab.redhat.com,server2.lab.redhat.com,..."
|
||||
#HA_CLUSTER_NODES="10.0.1.1,10.0.1.2,..."
|
||||
#
|
||||
# Virtual IPs for each of the nodes specified above.
|
||||
VIP_server1="10.0.2.1"
|
||||
VIP_server2="10.0.2.2"
|
||||
#VIP_server1.lab.redhat.com="10.0.2.1"
|
||||
#VIP_server2.lab.redhat.com="10.0.2.2"
|
||||
#VIP_10.0.1.1="10.0.2.1"
|
||||
#VIP_10.0.1.2="10.0.2.2"
|
||||
|
@ -363,10 +363,7 @@ setup_create_resources()
|
||||
|
||||
while [[ ${1} ]]; do
|
||||
|
||||
# ipaddr=$(grep ^${1} ${HA_CONFIG_FILE} | cut -d = -f 2)
|
||||
ipaddrx="VIP_${1//-/_}"
|
||||
|
||||
ipaddr=${!ipaddrx}
|
||||
ipaddr=$(grep "^VIP_${1}=" ${HA_CONFDIR}/ganesha-ha.conf | cut -d = -f 2)
|
||||
|
||||
pcs -f ${cibfile} resource create ${1}-cluster_ip-1 ocf:heartbeat:IPaddr ip=${ipaddr} cidr_netmask=32 op monitor interval=15s
|
||||
if [ $? -ne 0 ]; then
|
||||
@ -460,9 +457,7 @@ recreate_resources()
|
||||
local cibfile=${1}; shift
|
||||
|
||||
while [[ ${1} ]]; do
|
||||
ipaddrx="VIP_${1//-/_}"
|
||||
|
||||
ipaddr=${!ipaddrx}
|
||||
ipaddr=$(grep "VIP_${1}=" ${HA_CONFDIR}/ganesha-ha.conf | cut -d = -f 2)
|
||||
|
||||
pcs -f ${cibfile} resource create ${1}-cluster_ip-1 ocf:heartbeat:IPaddr ip=${ipaddr} cidr_netmask=32 op monitor interval=15s
|
||||
if [ $? -ne 0 ]; then
|
||||
@ -679,43 +674,52 @@ setup_state_volume()
|
||||
local longname=""
|
||||
local shortname=""
|
||||
local dname=""
|
||||
local dirname=""
|
||||
|
||||
longname=$(hostname)
|
||||
dname=${longname#$(hostname -s)}
|
||||
|
||||
while [[ ${1} ]]; do
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${1}${dname} ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${1}${dname}
|
||||
|
||||
if [[ ${1} == *${dname} ]]; then
|
||||
dirname=${1}
|
||||
else
|
||||
dirname=${1}${dname}
|
||||
fi
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${1}${dname}/nfs ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs
|
||||
|
||||
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${dirname} ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${dirname}
|
||||
fi
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${1}${dname}/nfs/ganesha ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs/ganesha
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${dirname}/nfs ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${dirname}/nfs
|
||||
fi
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${dirname}/nfs/ganesha ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${dirname}/nfs/ganesha
|
||||
fi
|
||||
touch ${mnt}/nfs-ganesha/${1}${dname}/nfs/state
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${1}${dname}/nfs/ganesha/v4recov ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs/ganesha/v4recov
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${dirname}/nfs/statd ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${dirname}/nfs/statd
|
||||
fi
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${1}${dname}/nfs/ganesha/v4old ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs/ganesha/v4old
|
||||
touch ${mnt}/nfs-ganesha/${dirname}/nfs/state
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${dirname}/nfs/ganesha/v4recov ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${dirname}/nfs/ganesha/v4recov
|
||||
fi
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd/sm ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd/sm
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${dirname}/nfs/ganesha/v4old ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${dirname}/nfs/ganesha/v4old
|
||||
fi
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd/sm.bak ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd/sm.bak
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${dirname}/nfs/statd/sm ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${dirname}/nfs/statd/sm
|
||||
fi
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd/state ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd/state
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${dirname}/nfs/statd/sm.bak ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${dirname}/nfs/statd/sm.bak
|
||||
fi
|
||||
if [ ! -d ${mnt}/nfs-ganesha/${dirname}/nfs/statd/state ]; then
|
||||
mkdir ${mnt}/nfs-ganesha/${dirname}/nfs/statd/state
|
||||
fi
|
||||
for server in ${HA_SERVERS} ; do
|
||||
if [ ${server} != ${1}${dname} ]; then
|
||||
ln -s ${mnt}/nfs-ganesha/${server}/nfs/ganesha ${mnt}/nfs-ganesha/${1}${dname}/nfs/ganesha/${server}
|
||||
ln -s ${mnt}/nfs-ganesha/${server}/nfs/statd ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd/${server}
|
||||
if [ ${server} != ${dirname} ]; then
|
||||
ln -s ${mnt}/nfs-ganesha/${server}/nfs/ganesha ${mnt}/nfs-ganesha/${dirname}/nfs/ganesha/${server}
|
||||
ln -s ${mnt}/nfs-ganesha/${server}/nfs/statd ${mnt}/nfs-ganesha/${dirname}/nfs/statd/${server}
|
||||
fi
|
||||
done
|
||||
shift
|
||||
@ -728,10 +732,16 @@ main()
|
||||
{
|
||||
local cmd=${1}; shift
|
||||
HA_CONFDIR=${1}; shift
|
||||
local ha_conf=${HA_CONFDIR}/ganesha-ha.conf
|
||||
local node=""
|
||||
local vip=""
|
||||
|
||||
. ${HA_CONFDIR}/ganesha-ha.conf
|
||||
ha_name=$(grep ^HA_NAME= ${ha_conf} | cut -d = -f 2)
|
||||
HA_NAME=${ha_name//\"/}
|
||||
ha_vol_server=$(grep ^HA_VOL_SERVER= ${ha_conf} | cut -d = -f 2)
|
||||
HA_VOL_SERVER=${ha_vol_server//\"/}
|
||||
ha_cluster_nodes=$(grep ^HA_CLUSTER_NODES= ${ha_conf} | cut -d = -f 2)
|
||||
HA_CLUSTER_NODES=${ha_cluster_nodes//\"/}
|
||||
|
||||
if [ -e /etc/os-release ]; then
|
||||
RHEL6_PCS_CNAME_OPTION=""
|
||||
|
Loading…
x
Reference in New Issue
Block a user