File 0001-Add-azure-aznfs-filesystem-support.patch of Package resource-agents.36657

From 3bffa541f7bf66e143f14e51551fc91dfebec86c Mon Sep 17 00:00:00 2001
From: Tobias Schug <happytobi@tscoding.de>
Date: Mon, 28 Oct 2024 09:14:41 +0100
Subject: [PATCH 1/1] Add azure aznfs filesystem support

---
 heartbeat/Filesystem | 37 ++++++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/heartbeat/Filesystem b/heartbeat/Filesystem
index 3405e2c2..b48bee14 100755
--- a/heartbeat/Filesystem 
+++ b/heartbeat/Filesystem
@@ -2,7 +2,7 @@
 #
 # Support:      users@clusterlabs.org
 # License:      GNU General Public License (GPL)
-# 
+#
 # Filesystem
 #      Description: Manages a Filesystem on a shared storage medium.
 #  Original Author: Eric Z. Ayers (eric.ayers@compgen.com)
@@ -142,7 +142,7 @@ meta_data() {
 
 <longdesc lang="en">
 Resource script for Filesystem. It manages a Filesystem on a
-shared storage medium. 
+shared storage medium.
 
 The standard monitor operation of depth 0 (also known as probe)
 checks if the filesystem is mounted. If you want deeper tests,
@@ -260,7 +260,7 @@ currently accessing the mount directory.
 "true"  : Kill processes accessing mount point
 "safe"  : Kill processes accessing mount point using methods that
           avoid functions that could potentially block during process
-          detection 
+          detection
 "false" : Do not kill any processes.
 
 The 'safe' option uses shell logic to walk the /procs/ directory
@@ -373,7 +373,7 @@ determine_blockdevice() {
 	# Get the current real device name, if possible.
 	# (specified devname could be -L or -U...)
 	case "$FSTYPE" in
-	nfs4|nfs|efs|smbfs|cifs|glusterfs|ceph|tmpfs|overlay|overlayfs|rozofs|zfs|cvfs|none|lustre)
+	nfs4|nfs|aznfs|efs|smbfs|cifs|glusterfs|ceph|tmpfs|overlay|overlayfs|rozofs|zfs|cvfs|none|lustre)
 		: ;;
 	*)
 		match_string="${TAB}${CANONICALIZED_MOUNTPOINT}${TAB}"
@@ -455,7 +455,7 @@ is_fsck_needed() {
 		no)    false;;
 		""|auto)
 		case "$FSTYPE" in
-			ext4|ext4dev|ext3|reiserfs|reiser4|nss|xfs|jfs|vfat|fat|nfs4|nfs|efs|cifs|smbfs|ocfs2|gfs2|none|lustre|glusterfs|ceph|tmpfs|overlay|overlayfs|rozofs|zfs|cvfs)
+			ext4|ext4dev|ext3|reiserfs|reiser4|nss|xfs|jfs|vfat|fat|nfs4|nfs|aznfs|efs|cifs|smbfs|ocfs2|gfs2|none|lustre|glusterfs|ceph|tmpfs|overlay|overlayfs|rozofs|zfs|cvfs)
 			false;;
 			*)
 			true;;
@@ -478,7 +478,7 @@ fstype_supported()
 	fi
 
 	if [ -z "$FSTYPE" -o "$FSTYPE" = none ]; then
-		: No FSTYPE specified, rely on the system has the right file-system support already 
+		: No FSTYPE specified, rely on the system has the right file-system support already
 		return $OCF_SUCCESS
 	fi
 
@@ -487,6 +487,7 @@ fstype_supported()
 	case "$FSTYPE" in
 		fuse.*|glusterfs|rozofs) support="fuse";;
 		efs) check_binary "mount.efs"; support="nfs4";;
+		aznfs) check_binary "mount.aznfs"; support="nfs4";;
 	esac
 
 	if [ "$support" != "$FSTYPE" ]; then
@@ -530,7 +531,7 @@ fstype_supported()
 # node on the shared storage, and is not visible yet. Then try
 # partprobe to refresh /dev/disk/by-{label,uuid}/* up to date.
 #
-# DEVICE can be /dev/xxx, -U, -L 
+# DEVICE can be /dev/xxx, -U, -L
 #
 trigger_udev_rules_if_needed()
 {
@@ -545,12 +546,12 @@ trigger_udev_rules_if_needed()
 		fi
 	else
 		tmp="$(echo $DEVICE|awk '{$1=""; print substr($0,2)}')"
-		case "$DEVICE" in 
-		-U*|--uuid*) 
-			tmp="/dev/disk/by-uuid/$tmp" 
+		case "$DEVICE" in
+		-U*|--uuid*)
+			tmp="/dev/disk/by-uuid/$tmp"
 			;;
 		-L*|--label*)
-			tmp="/dev/disk/by-label/$tmp" 
+			tmp="/dev/disk/by-label/$tmp"
 			;;
 		*)
 			# bind mount?
@@ -589,7 +590,7 @@ Filesystem_start()
 
 	fstype_supported || exit $OCF_ERR_INSTALLED
 
-	# Check the filesystem & auto repair.  
+	# Check the filesystem & auto repair.
 	# NOTE: Some filesystem types don't need this step...  Please modify
 	#       accordingly
 
@@ -672,7 +673,7 @@ signal_processes() {
 	local sig=$2
 	local pids pid
 	# fuser returns a non-zero return code if none of the
-	# specified files is accessed or in case of a fatal 
+	# specified files is accessed or in case of a fatal
 	# error.
 	pids=$(get_pids "$dir")
 	if [ -z "$pids" ]; then
@@ -718,6 +719,7 @@ fs_stop_loop() {
 		try_umount "$SUB" && return $OCF_SUCCESS
 	done
 }
+
 fs_stop() {
 	local SUB="$1" timeout=$2 grace_time ret
 	grace_time=$((timeout/2))
@@ -765,7 +767,7 @@ Filesystem_stop()
 
 		# For networked filesystems, there's merit in trying -f:
 		case "$FSTYPE" in
-		nfs4|nfs|efs|cifs|smbfs) umount_force="-f" ;;
+		nfs4|nfs|aznfs|efs|cifs|smbfs) umount_force="-f" ;;
 		esac
 
 		# Umount all sub-filesystems mounted under $MOUNTPOINT/ too.
@@ -878,6 +880,7 @@ Filesystem_monitor_20()
 	fi
 	return $OCF_SUCCESS
 }
+
 Filesystem_monitor()
 {
 	Filesystem_status
@@ -952,7 +955,7 @@ set_blockdevice_var() {
 
 	# these are definitely not block devices
 	case "$FSTYPE" in
-	nfs4|nfs|efs|smbfs|cifs|none|glusterfs|ceph|tmpfs|overlay|overlayfs|rozofs|zfs|cvfs|lustre) return;;
+	nfs4|nfs|aznfs|efs|smbfs|cifs|none|glusterfs|ceph|tmpfs|overlay|overlayfs|rozofs|zfs|cvfs|lustre) return;;
 	esac
 
 	if $(is_option "loop"); then
@@ -1027,7 +1030,7 @@ set_blockdevice_var
 if [ -z "$OCF_RESKEY_directory" ]; then
 	if [ X$OP = "Xstart" -o $blockdevice = "no" ]; then
 		ocf_exit_reason "Please specify the directory"
-		exit $OCF_ERR_CONFIGURED 
+		exit $OCF_ERR_CONFIGURED
 	fi
 else
 	MOUNTPOINT="$(echo "$OCF_RESKEY_directory" | sed 's/\/*$//')"
@@ -1079,7 +1082,7 @@ is_option "ro" &&
 	CLUSTERSAFE=2
 
 case "$FSTYPE" in
-nfs4|nfs|efs|smbfs|cifs|none|gfs2|glusterfs|ceph|ocfs2|overlay|overlayfs|tmpfs|cvfs|lustre)
+nfs4|nfs|aznfs|efs|smbfs|cifs|none|gfs2|glusterfs|ceph|ocfs2|overlay|overlayfs|tmpfs|cvfs|lustre)
 	CLUSTERSAFE=1 # this is kind of safe too
 	systemd_drop_in "99-Filesystem-remote" "After" "remote-fs.target"
 	;;
openSUSE Build Service is sponsored by