File 0001-add_upgrade_shell.patch of Package corosync

From baa48c90da852fcae26d4708d96eb430dcdea628 Mon Sep 17 00:00:00 2001
From: liangxin1300 <XLiang@suse.com>
Date: Mon, 5 Jul 2021 10:01:06 +0800
Subject: [PATCH] add_upgrade_shell

---
 init/upgrade.sh | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 init/upgrade.sh

diff --git a/init/upgrade.sh b/init/upgrade.sh
new file mode 100644
index 00000000..60cb6cba
--- /dev/null
+++ b/init/upgrade.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+CONFIG_FILE=/etc/corosync/corosync.conf
+CONFIG_FILE_OLD=/etc/corosync/corosync.conf.old
+
+if [ -f $CONFIG_FILE ]; then
+
+    grep -E "nodelist\s+{" $CONFIG_FILE &> /dev/null
+    if [ $? -ne 0 ];then
+	echo "ERROR: Invalid corosync.conf, missing nodelist section" > /dev/stderr
+        exit 1
+    fi
+
+    cp $CONFIG_FILE $CONFIG_FILE_OLD
+    grep "ring1_addr" $CONFIG_FILE &> /dev/null
+    if [ $? -eq 0 ];then
+	# two rings, remove rrp_mode, and change as knet
+        sed -i "/\(rrp_mode\|bindnetaddr\)/d" $CONFIG_FILE && \
+		sed -i "s/transport:\ *.*/transport: knet/g" $CONFIG_FILE
+    else
+	# one ring, keep origin transport, need to remove sec realted options
+	sed -i "/\(secauth\|crypto_hash\|crypto_cipher\):/d" $CONFIG_FILE
+    fi
+    if [ $? -ne 0 ]; then
+        cp $CONFIG_FILE_OLD $CONFIG_FILE
+	rm -f $CONFIG_FILE_OLD
+    else
+        echo "corosync.conf changed, origin is in $CONFIG_FILE_OLD"
+	diff $CONFIG_FILE $CONFIG_FILE_OLD
+    fi
+fi
-- 
2.21.3

openSUSE Build Service is sponsored by