diff options
author | Kaleb S. KEITHLEY <kkeithle@redhat.com> | 2015-05-27 15:00:00 -0400 |
---|---|---|
committer | Niels de Vos <ndevos@redhat.com> | 2015-05-30 05:24:17 -0700 |
commit | 54b193760ce59569fa5813e64af7753afbf0d500 (patch) | |
tree | 345a0caaa2c654cf5b91f98f797d7cbc0096eb3b /extras/ganesha/scripts | |
parent | 378fa28f2ed397e71d05b5869026e1e23bab9e96 (diff) |
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>
Diffstat (limited to 'extras/ganesha/scripts')
-rwxr-xr-x | extras/ganesha/scripts/ganesha-ha.sh | 70 |
1 files changed, 40 insertions, 30 deletions
diff --git a/extras/ganesha/scripts/ganesha-ha.sh b/extras/ganesha/scripts/ganesha-ha.sh index 79a99c49c33..bd344fa50f1 100755 --- a/extras/ganesha/scripts/ganesha-ha.sh +++ b/extras/ganesha/scripts/ganesha-ha.sh @@ -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/${dirname} ]; then + mkdir ${mnt}/nfs-ganesha/${dirname} fi - if [ ! -d ${mnt}/nfs-ganesha/${1}${dname}/nfs ]; then - mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs + if [ ! -d ${mnt}/nfs-ganesha/${dirname}/nfs ]; then + mkdir ${mnt}/nfs-ganesha/${dirname}/nfs 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/ganesha ]; then + mkdir ${mnt}/nfs-ganesha/${dirname}/nfs/ganesha 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/statd ]; then + mkdir ${mnt}/nfs-ganesha/${dirname}/nfs/statd 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 + 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/ganesha/v4old ]; then - mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs/ganesha/v4old + 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 ]; then - mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd/sm + 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/sm.bak ]; then - mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd/sm.bak + 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/${1}${dname}/nfs/statd/state ]; then - mkdir ${mnt}/nfs-ganesha/${1}${dname}/nfs/statd/state + 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="" |