summaryrefslogtreecommitdiff
path: root/0357-ganesha-ha-updates-for-pcs-0.10.x-i.e.-in-Fedora-29-.patch
diff options
context:
space:
mode:
Diffstat (limited to '0357-ganesha-ha-updates-for-pcs-0.10.x-i.e.-in-Fedora-29-.patch')
-rw-r--r--0357-ganesha-ha-updates-for-pcs-0.10.x-i.e.-in-Fedora-29-.patch268
1 files changed, 268 insertions, 0 deletions
diff --git a/0357-ganesha-ha-updates-for-pcs-0.10.x-i.e.-in-Fedora-29-.patch b/0357-ganesha-ha-updates-for-pcs-0.10.x-i.e.-in-Fedora-29-.patch
new file mode 100644
index 0000000..a67b89c
--- /dev/null
+++ b/0357-ganesha-ha-updates-for-pcs-0.10.x-i.e.-in-Fedora-29-.patch
@@ -0,0 +1,268 @@
+From 2d5e678f8331d4d99ee4dff6e166cbf01c83ab36 Mon Sep 17 00:00:00 2001
+From: "Kaleb S. KEITHLEY" <kkeithle@redhat.com>
+Date: Wed, 12 Feb 2020 12:47:57 -0500
+Subject: [PATCH 357/357] ganesha-ha: updates for pcs-0.10.x (i.e. in Fedora-29
+ and RHEL-8)
+
+pcs-0.10 has introduced changes options to pcs commands
+
+pcs-0.10.x is in Fedora-29 and later and RHEL-8.
+
+Also some minor cleanup. Namely use bash built-in [[...]] in a few
+more places instead of test(1), i.e. [...], and use correct "==" for
+comparison.
+
+master: https://review.gluster.org/24115
+
+Change-Id: I3fb2fcd71406964c77fdc4f18580ca133f365fd6
+BUG: 1802727
+Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
+Reviewed-on: https://code.engineering.redhat.com/gerrit/194467
+Tested-by: RHGS Build Bot <nigelb@redhat.com>
+Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
+---
+ extras/ganesha/scripts/ganesha-ha.sh | 84 ++++++++++++++++++++++++------------
+ 1 file changed, 56 insertions(+), 28 deletions(-)
+
+diff --git a/extras/ganesha/scripts/ganesha-ha.sh b/extras/ganesha/scripts/ganesha-ha.sh
+index 32af1ca..0b0050a 100644
+--- a/extras/ganesha/scripts/ganesha-ha.sh
++++ b/extras/ganesha/scripts/ganesha-ha.sh
+@@ -28,7 +28,12 @@ HA_VOL_MNT="/var/run/gluster/shared_storage"
+ HA_CONFDIR=$HA_VOL_MNT"/nfs-ganesha"
+ SERVICE_MAN="DISTRO_NOT_FOUND"
+
+-RHEL6_PCS_CNAME_OPTION="--name"
++# rhel, fedora id, version
++ID=""
++VERSION_ID=""
++
++PCS9OR10_PCS_CNAME_OPTION=""
++PCS9OR10_PCS_CLONE_OPTION="clone"
+ SECRET_PEM="/var/lib/glusterd/nfs/secret.pem"
+
+ # UNBLOCK RA uses shared_storage which may become unavailable
+@@ -101,9 +106,9 @@ determine_service_manager () {
+ then
+ SERVICE_MAN="/sbin/service"
+ fi
+- if [ "${SERVICE_MAN}" == "DISTRO_NOT_FOUND" ]
++ if [[ "${SERVICE_MAN}X" == "DISTRO_NOT_FOUNDX" ]]
+ then
+- echo "Service manager not recognized, exiting"
++ logger "Service manager not recognized, exiting"
+ exit 1
+ fi
+ }
+@@ -114,7 +119,7 @@ manage_service ()
+ local new_node=${2}
+ local option=
+
+- if [ "${action}" == "start" ]; then
++ if [[ "${action}" == "start" ]]; then
+ option="yes"
+ else
+ option="no"
+@@ -122,7 +127,7 @@ manage_service ()
+ ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \
+ ${SECRET_PEM} root@${new_node} "${GANESHA_HA_SH} --setup-ganesha-conf-files $HA_CONFDIR $option"
+
+- if [ "${SERVICE_MAN}" == "/bin/systemctl" ]
++ if [[ "${SERVICE_MAN}" == "/bin/systemctl" ]]
+ then
+ ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \
+ ${SECRET_PEM} root@${new_node} "${SERVICE_MAN} ${action} nfs-ganesha"
+@@ -140,7 +145,7 @@ check_cluster_exists()
+
+ if [ -e /var/run/corosync.pid ]; then
+ cluster_name=$(pcs status | grep "Cluster name:" | cut -d ' ' -f 3)
+- if [ ${cluster_name} -a ${cluster_name} = ${name} ]; then
++ if [[ "${cluster_name}X" == "${name}X" ]]; then
+ logger "$name already exists, exiting"
+ exit 0
+ fi
+@@ -155,7 +160,7 @@ determine_servers()
+ local tmp_ifs=${IFS}
+ local ha_servers=""
+
+- if [ "X${cmd}X" != "XsetupX" -a "X${cmd}X" != "XstatusX" ]; then
++ if [ "${cmd}X" != "setupX" -a "${cmd}X" != "statusX" ]; then
+ ha_servers=$(pcs status | grep "Online:" | grep -o '\[.*\]' | sed -e 's/\[//' | sed -e 's/\]//')
+ IFS=$' '
+ for server in ${ha_servers} ; do
+@@ -193,15 +198,21 @@ setup_cluster()
+
+ logger "setting up cluster ${name} with the following ${servers}"
+
+- pcs cluster auth ${servers}
+- # pcs cluster setup --name ${name} ${servers}
+- pcs cluster setup ${RHEL6_PCS_CNAME_OPTION} ${name} --enable --transport udpu ${servers}
++ # pcs cluster setup --force ${PCS9OR10_PCS_CNAME_OPTION} ${name} ${servers}
++ pcs cluster setup --force ${PCS9OR10_PCS_CNAME_OPTION} ${name} --enable ${servers}
+ if [ $? -ne 0 ]; then
+- logger "pcs cluster setup ${RHEL6_PCS_CNAME_OPTION} ${name} --enable --transport udpu ${servers} failed"
++ logger "pcs cluster setup ${PCS9OR10_PCS_CNAME_OPTION} ${name} --enable ${servers} failed, shutting down ganesha and bailing out"
+ #set up failed stop all ganesha process and clean up symlinks in cluster
+ stop_ganesha_all "${servers}"
+ exit 1;
+ fi
++
++ # pcs cluster auth ${servers}
++ pcs cluster auth
++ if [ $? -ne 0 ]; then
++ logger "pcs cluster auth failed"
++ fi
++
+ pcs cluster start --all
+ if [ $? -ne 0 ]; then
+ logger "pcs cluster start failed"
+@@ -217,7 +228,7 @@ setup_cluster()
+ done
+
+ unclean=$(pcs status | grep -u "UNCLEAN")
+- while [[ "${unclean}X" = "UNCLEANX" ]]; do
++ while [[ "${unclean}X" == "UNCLEANX" ]]; do
+ sleep 1
+ unclean=$(pcs status | grep -u "UNCLEAN")
+ done
+@@ -244,7 +255,7 @@ setup_finalize_ha()
+ local stopped=""
+
+ stopped=$(pcs status | grep -u "Stopped")
+- while [[ "${stopped}X" = "StoppedX" ]]; do
++ while [[ "${stopped}X" == "StoppedX" ]]; do
+ sleep 1
+ stopped=$(pcs status | grep -u "Stopped")
+ done
+@@ -265,7 +276,7 @@ refresh_config ()
+ if [ -e ${SECRET_PEM} ]; then
+ while [[ ${3} ]]; do
+ current_host=`echo ${3} | cut -d "." -f 1`
+- if [ ${short_host} != ${current_host} ]; then
++ if [[ ${short_host} != ${current_host} ]]; then
+ output=$(ssh -oPasswordAuthentication=no \
+ -oStrictHostKeyChecking=no -i ${SECRET_PEM} root@${current_host} \
+ "dbus-send --print-reply --system --dest=org.ganesha.nfsd \
+@@ -398,7 +409,7 @@ wrap_create_virt_ip_constraints()
+ # the result is "node2 node3 node4"; for node2, "node3 node4 node1"
+ # and so on.
+ while [[ ${1} ]]; do
+- if [ "${1}" = "${primary}" ]; then
++ if [[ ${1} == ${primary} ]]; then
+ shift
+ while [[ ${1} ]]; do
+ tail=${tail}" "${1}
+@@ -429,15 +440,15 @@ setup_create_resources()
+ local cibfile=$(mktemp -u)
+
+ # fixup /var/lib/nfs
+- logger "pcs resource create nfs_setup ocf:heartbeat:ganesha_nfsd ha_vol_mnt=${HA_VOL_MNT} --clone"
+- pcs resource create nfs_setup ocf:heartbeat:ganesha_nfsd ha_vol_mnt=${HA_VOL_MNT} --clone
++ logger "pcs resource create nfs_setup ocf:heartbeat:ganesha_nfsd ha_vol_mnt=${HA_VOL_MNT} ${PCS9OR10_PCS_CLONE_OPTION}"
++ pcs resource create nfs_setup ocf:heartbeat:ganesha_nfsd ha_vol_mnt=${HA_VOL_MNT} ${PCS9OR10_PCS_CLONE_OPTION}
+ if [ $? -ne 0 ]; then
+- logger "warning: pcs resource create nfs_setup ocf:heartbeat:ganesha_nfsd ha_vol_mnt=${HA_VOL_MNT} --clone failed"
++ logger "warning: pcs resource create nfs_setup ocf:heartbeat:ganesha_nfsd ha_vol_mnt=${HA_VOL_MNT} ${PCS9OR10_PCS_CLONE_OPTION} failed"
+ fi
+
+- pcs resource create nfs-mon ocf:heartbeat:ganesha_mon --clone
++ pcs resource create nfs-mon ocf:heartbeat:ganesha_mon ${PCS9OR10_PCS_CLONE_OPTION}
+ if [ $? -ne 0 ]; then
+- logger "warning: pcs resource create nfs-mon ocf:heartbeat:ganesha_mon --clone failed"
++ logger "warning: pcs resource create nfs-mon ocf:heartbeat:ganesha_mon ${PCS9OR10_PCS_CLONE_OPTION} failed"
+ fi
+
+ # see comment in (/usr/lib/ocf/resource.d/heartbeat/ganesha_grace
+@@ -445,9 +456,9 @@ setup_create_resources()
+ # ganesha-active crm_attribute
+ sleep 5
+
+- pcs resource create nfs-grace ocf:heartbeat:ganesha_grace --clone notify=true
++ pcs resource create nfs-grace ocf:heartbeat:ganesha_grace ${PCS9OR10_PCS_CLONE_OPTION} notify=true
+ if [ $? -ne 0 ]; then
+- logger "warning: pcs resource create nfs-grace ocf:heartbeat:ganesha_grace --clone failed"
++ logger "warning: pcs resource create nfs-grace ocf:heartbeat:ganesha_grace ${PCS9OR10_PCS_CLONE_OPTION} failed"
+ fi
+
+ pcs constraint location nfs-grace-clone rule score=-INFINITY grace-active ne 1
+@@ -616,7 +627,7 @@ addnode_recreate_resources()
+ --after ${add_node}-nfs_block
+ if [ $? -ne 0 ]; then
+ logger "warning pcs resource create ${add_node}-cluster_ip-1 ocf:heartbeat:IPaddr \
+- ip=${add_vip} cidr_netmask=32 op monitor interval=15s failed"
++ ip=${add_vip} cidr_netmask=32 op monitor interval=15s failed"
+ fi
+
+ pcs -f ${cibfile} constraint order nfs-grace-clone then ${add_node}-cluster_ip-1
+@@ -780,7 +791,7 @@ setup_state_volume()
+ touch ${mnt}/nfs-ganesha/${dirname}/nfs/statd/state
+ fi
+ for server in ${HA_SERVERS} ; do
+- if [ ${server} != ${dirname} ]; then
++ 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
+@@ -794,7 +805,7 @@ setup_state_volume()
+ enable_pacemaker()
+ {
+ while [[ ${1} ]]; do
+- if [ "${SERVICE_MAN}" == "/usr/bin/systemctl" ]; then
++ if [[ "${SERVICE_MAN}" == "/bin/systemctl" ]]; then
+ ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \
+ ${SECRET_PEM} root@${1} "${SERVICE_MAN} enable pacemaker"
+ else
+@@ -892,7 +903,7 @@ delnode_state_volume()
+ rm -rf ${mnt}/nfs-ganesha/${dirname}
+
+ for server in ${HA_SERVERS} ; do
+- if [[ "${server}" != "${dirname}" ]]; then
++ if [[ ${server} != ${dirname} ]]; then
+ rm -f ${mnt}/nfs-ganesha/${server}/nfs/ganesha/${dirname}
+ rm -f ${mnt}/nfs-ganesha/${server}/nfs/statd/${dirname}
+ fi
+@@ -963,7 +974,7 @@ status()
+
+ create_ganesha_conf_file()
+ {
+- if [ $1 == "yes" ];
++ if [[ "$1" == "yes" ]];
+ then
+ if [ -e $GANESHA_CONF ];
+ then
+@@ -1012,6 +1023,13 @@ main()
+ semanage boolean -m gluster_use_execmem --on
+ fi
+
++ local osid=""
++
++ osid=$(grep ^ID= /etc/os-release)
++ eval $(echo ${osid} | grep -F ID=)
++ osid=$(grep ^VERSION_ID= /etc/os-release)
++ eval $(echo ${osid} | grep -F VERSION_ID=)
++
+ HA_CONFDIR=${1%/}; shift
+ local ha_conf=${HA_CONFDIR}/ganesha-ha.conf
+ local node=""
+@@ -1032,7 +1050,17 @@ main()
+
+ determine_servers "setup"
+
+- if [ "X${HA_NUM_SERVERS}X" != "X1X" ]; then
++ # Fedora 29+ and rhel/centos 8 has PCS-0.10.x
++ # default is pcs-0.10.x options but check for
++ # rhel/centos 7 (pcs-0.9.x) and adjust accordingly
++ if [[ ${ID} =~ {rhel,centos} ]]; then
++ if [[ ${VERSION_ID} == 7.* ]]; then
++ PCS9OR10_PCS_CNAME_OPTION="--name"
++ PCS9OR10_PCS_CLONE_OPTION="--clone"
++ fi
++ fi
++
++ if [[ "${HA_NUM_SERVERS}X" != "1X" ]]; then
+
+ determine_service_manager
+
+--
+1.8.3.1
+