diff --git a/.gitignore b/.gitignore index 5b2683b..11e610e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/ClusterLabs-resource-agents-e76b7d3a.tar.gz +SOURCES/ClusterLabs-resource-agents-fd0720f7.tar.gz diff --git a/.resource-agents.metadata b/.resource-agents.metadata index 802a19c..d893801 100644 --- a/.resource-agents.metadata +++ b/.resource-agents.metadata @@ -1 +1 @@ -b1c1e65d690d94e080319217486f8dcd248b2a2a SOURCES/ClusterLabs-resource-agents-e76b7d3a.tar.gz +3b517ecdbe2103df77813050e5c998e102c5de7e SOURCES/ClusterLabs-resource-agents-fd0720f7.tar.gz diff --git a/SOURCES/bz1991855-nfsserver-add-nfsconvert.patch b/SOURCES/bz1991855-nfsserver-add-nfsconvert.patch deleted file mode 100644 index e955c1a..0000000 --- a/SOURCES/bz1991855-nfsserver-add-nfsconvert.patch +++ /dev/null @@ -1,429 +0,0 @@ -From 6a1e619d46d7ff04b610eb9f6e20ed41ac23b0ab Mon Sep 17 00:00:00 2001 -From: Oyvind Albrigtsen <oalbrigt@redhat.com> -Date: Thu, 19 Aug 2021 09:37:57 +0200 -Subject: [PATCH] tools: add nfsconvert for RHEL-based distros - ---- - .gitignore | 1 + - configure.ac | 5 + - heartbeat/nfsserver-redhat.sh | 6 + - tools/Makefile.am | 5 + - tools/nfsconvert.in | 324 ++++++++++++++++++++++++++++++++++ - 5 files changed, 341 insertions(+) - create mode 100644 tools/nfsconvert.in - -diff --git a/.gitignore b/.gitignore -index f7277bf04e..ec30a3bb00 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -99,6 +99,7 @@ ldirectord/init.d/ldirectord.debian.default - ldirectord/systemd/ldirectord.service - systemd/resource-agents.conf - tools/findif -+tools/nfsconvert - tools/ocf-tester - tools/send_arp - tools/tickle_tcp -diff --git a/configure.ac b/configure.ac -index c125df98f6..058c0f1da7 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -787,11 +787,15 @@ case $host_os in - *Linux*|*linux*) sendarp_linux=1;; - esac - -+redhat_based=0 -+AC_CHECK_FILE(/etc/redhat-release, [redhat_based=1]) -+ - AC_SUBST(LIBNETLIBS) - AC_SUBST(LIBNETDEFINES) - - AM_CONDITIONAL(SENDARP_LINUX, test $sendarp_linux = 1 ) - AM_CONDITIONAL(USE_LIBNET, test "x$libnet_version" != "xnone" ) -+AM_CONDITIONAL(NFSCONVERT, test $redhat_based = 1 ) - - dnl ************************************************************************ - dnl * Check for netinet/icmp6.h to enable the IPv6addr resource agent -@@ -932,6 +936,7 @@ heartbeat/Makefile \ - systemd/Makefile \ - systemd/resource-agents.conf \ - tools/Makefile \ -+ tools/nfsconvert \ - tools/ocf-tester \ - tools/ocft/Makefile \ - tools/ocft/ocft \ -diff --git a/heartbeat/nfsserver-redhat.sh b/heartbeat/nfsserver-redhat.sh -index 73a70c186c..aec0966050 100644 ---- a/heartbeat/nfsserver-redhat.sh -+++ b/heartbeat/nfsserver-redhat.sh -@@ -1,6 +1,7 @@ - NFS_SYSCONFIG="/etc/sysconfig/nfs" - NFS_SYSCONFIG_LOCAL_BACKUP="/etc/sysconfig/nfs.ha.bu" - NFS_SYSCONFIG_AUTOGEN_TAG="AUTOGENERATED by $0 high availability resource-agent" -+NFSCONVERT="$HA_BIN/nfsconvert" - - nfsserver_redhat_meta_data() { - cat<<EOF -@@ -168,4 +169,9 @@ set_env_args() - fi - fi - rm -f $tmpconfig -+ -+ if [ -e "$NFSCONVERT" ]; then -+ ocf_log debug "Running $NFSCONVERT" -+ $NFSCONVERT -+ fi - } -diff --git a/tools/Makefile.am b/tools/Makefile.am -index 83ff43651d..1309223b48 100644 ---- a/tools/Makefile.am -+++ b/tools/Makefile.am -@@ -31,6 +31,7 @@ sbin_PROGRAMS = - sbin_PROGRAMS = - sbin_SCRIPTS = ocf-tester - halib_PROGRAMS = findif -+halib_SCRIPTS = - - man8_MANS = ocf-tester.8 - -@@ -52,6 +53,10 @@ halib_PROGRAMS += send_arp - send_arp_SOURCES = send_arp.linux.c - endif - -+if NFSCONVERT -+halib_SCRIPTS += nfsconvert -+endif -+ - endif - - sfex_daemon_SOURCES = sfex_daemon.c sfex.h sfex_lib.c sfex_lib.h -diff --git a/tools/nfsconvert.in b/tools/nfsconvert.in -new file mode 100644 -index 0000000000..c58a16a4e6 ---- /dev/null -+++ b/tools/nfsconvert.in -@@ -0,0 +1,324 @@ -+#!@PYTHON@ -tt -+""" -+Read in the deprecated /etc/sysconfig/nfs file and -+set the corresponding values in nfs.conf -+""" -+ -+from __future__ import print_function -+import os -+import sys -+import getopt -+import subprocess -+import configparser -+ -+CONF_NFS = '/etc/nfs.conf' -+CONF_IDMAP = '/etc/idmapd.conf' -+SYSCONF_NFS = '/etc/sysconfig/nfs' -+SYSCONF_BACKUP = ".rpmsave" -+CONF_TOOL = '/usr/sbin/nfsconf' -+ -+# options for nfsd found in RPCNFSDARGS -+OPTS_NFSD = 'dH:p:rR:N:V:stTuUG:L:' -+LONG_NFSD = ['debug', 'host=', 'port=', 'rdma=', 'nfs-version=', 'no-nfs-version=', -+ 'tcp', 'no-tcp', 'udp', 'no-udp', 'grace-time=', 'lease-time='] -+CONV_NFSD = {'-d': (CONF_NFS, 'nfsd', 'debug', 'all'), -+ '-H': (CONF_NFS, 'nfsd', 'host', ','), -+ '-p': (CONF_NFS, 'nfsd', 'port', '$1'), -+ '-r': (CONF_NFS, 'nfsd', 'rdma', 'nfsrdma'), -+ '-R': (CONF_NFS, 'nfsd', 'rdma', '$1'), -+ '-N': (CONF_NFS, 'nfsd', 'vers$1', 'n'), -+ '-V': (CONF_NFS, 'nfsd', 'vers$1', 'y'), -+ '-t': (CONF_NFS, 'nfsd', 'tcp', '1'), -+ '-T': (CONF_NFS, 'nfsd', 'tcp', '0'), -+ '-u': (CONF_NFS, 'nfsd', 'udp', '1'), -+ '-U': (CONF_NFS, 'nfsd', 'udp', '0'), -+ '-G': (CONF_NFS, 'nfsd', 'grace-time', '$1'), -+ '-L': (CONF_NFS, 'nfsd', 'lease-time', '$1'), -+ '$1': (CONF_NFS, 'nfsd', 'threads', '$1'), -+ '--debug': (CONF_NFS, 'nfsd', 'debug', 'all'), -+ '--host': (CONF_NFS, 'nfsd', 'host', ','), -+ '--port': (CONF_NFS, 'nfsd', 'port', '$1'), -+ '--rdma': (CONF_NFS, 'nfsd', 'rdma', '$1'), -+ '--no-nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'n'), -+ '--nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'y'), -+ '--tcp': (CONF_NFS, 'nfsd', 'tcp', '1'), -+ '--no-tcp': (CONF_NFS, 'nfsd', 'tcp', '0'), -+ '--udp': (CONF_NFS, 'nfsd', 'udp', '1'), -+ '--no-udp': (CONF_NFS, 'nfsd', 'udp', '0'), -+ '--grace-time': (CONF_NFS, 'nfsd', 'grace-time', '$1'), -+ '--lease-time': (CONF_NFS, 'nfsd', 'lease-time', '$1'), -+ } -+ -+# options for mountd found in RPCMOUNTDOPTS -+OPTS_MOUNTD = 'go:d:H:p:N:nrs:t:V:' -+LONG_MOUNTD = ['descriptors=', 'debug=', 'nfs-version=', 'no-nfs-version=', -+ 'port=', 'no-tcp', 'ha-callout=', 'state-directory-path=', -+ 'num-threads=', 'reverse-lookup', 'manage-gids', 'no-udp'] -+ -+CONV_MOUNTD = {'-g': (CONF_NFS, 'mountd', 'manage-gids', '1'), -+ '-o': (CONF_NFS, 'mountd', 'descriptors', '$1'), -+ '-d': (CONF_NFS, 'mountd', 'debug', '$1'), -+ '-H': (CONF_NFS, 'mountd', 'ha-callout', '$1'), -+ '-p': (CONF_NFS, 'mountd', 'port', '$1'), -+ '-N': (CONF_NFS, 'nfsd', 'vers$1', 'n'), -+ '-V': (CONF_NFS, 'nfsd', 'vers$1', 'y'), -+ '-n': (CONF_NFS, 'nfsd', 'tcp', '0'), -+ '-s': (CONF_NFS, 'mountd', 'stat-directory-path', '$1'), -+ '-t': (CONF_NFS, 'mountd', 'threads', '$1'), -+ '-r': (CONF_NFS, 'mountd', 'reverse-lookup', '1'), -+ '-u': (CONF_NFS, 'nfsd', 'udp', '0'), -+ '--manage-gids': (CONF_NFS, 'mountd', 'manage-gids', '1'), -+ '--descriptors': (CONF_NFS, 'mountd', 'descriptors', '$1'), -+ '--debug': (CONF_NFS, 'mountd', 'debug', '$1'), -+ '--ha-callout': (CONF_NFS, 'mountd', 'ha-callout', '$1'), -+ '--port': (CONF_NFS, 'mountd', 'port', '$1'), -+ '--nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'y'), -+ '--no-nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'n'), -+ '--no-tcp': (CONF_NFS, 'nfsd', 'tcp', '0'), -+ '--state-directory-path': (CONF_NFS, 'mountd', 'state-directory-path', '$1'), -+ '--num-threads': (CONF_NFS, 'mountd', 'threads', '$1'), -+ '--reverse-lookup': (CONF_NFS, 'mountd', 'reverse-lookup', '1'), -+ '--no-udp': (CONF_NFS, 'nfsd', 'udp', '0'), -+ } -+ -+# options for statd found in STATDARG -+OPTS_STATD = 'o:p:T:U:n:P:H:L' -+LONG_STATD = ['outgoing-port=', 'port=', 'name=', 'state-directory-path=', -+ 'ha-callout=', 'nlm-port=', 'nlm-udp-port=', 'no-notify'] -+CONV_STATD = {'-o': (CONF_NFS, 'statd', 'outgoing-port', '$1'), -+ '-p': (CONF_NFS, 'statd', 'port', '$1'), -+ '-T': (CONF_NFS, 'lockd', 'port', '$1'), -+ '-U': (CONF_NFS, 'lockd', 'udp-port', '$1'), -+ '-n': (CONF_NFS, 'statd', 'name', '$1'), -+ '-P': (CONF_NFS, 'statd', 'state-directory-path', '$1'), -+ '-H': (CONF_NFS, 'statd', 'ha-callout', '$1'), -+ '-L': (CONF_NFS, 'statd', 'no-notify', '1'), -+ '--outgoing-port': (CONF_NFS, 'statd', 'outgoing-port', '$1'), -+ '--port': (CONF_NFS, 'statd', 'port', '$1'), -+ '--name': (CONF_NFS, 'statd', 'name', '$1'), -+ '--state-directory-path': (CONF_NFS, 'statd', 'state-directory-path', '$1'), -+ '--ha-callout': (CONF_NFS, 'statd', 'ha-callout', '$1'), -+ '--nlm-port': (CONF_NFS, 'lockd', 'port', '$1'), -+ '--nlm-udp-port': (CONF_NFS, 'lockd', 'udp-port', '$1'), -+ '--no-notify': (CONF_NFS, 'statd', 'no-notify', '1'), -+ } -+ -+# options for sm-notify found in SMNOTIFYARGS -+OPTS_SMNOTIFY = 'dm:np:v:P:f' -+CONV_SMNOTIFY = {'-d': (CONF_NFS, 'sm-notify', 'debug', 'all'), -+ '-m': (CONF_NFS, 'sm-notify', 'retry-time', '$1'), -+ '-n': (CONF_NFS, 'sm-notify', 'update-state', '1'), -+ '-p': (CONF_NFS, 'sm-notify', 'outgoing-port', '$1'), -+ '-v': (CONF_NFS, 'sm-notify', 'outgoing-addr', '$1'), -+ '-f': (CONF_NFS, 'sm-notify', 'force', '1'), -+ '-P': (CONF_NFS, 'statd', 'state-directory-path', '$1'), -+ } -+ -+# options for idmapd found in RPCIDMAPDARGS -+OPTS_IDMAPD = 'vp:CS' -+CONV_IDMAPD = {'-v': (CONF_IDMAP, 'general', 'verbosity', '+'), -+ '-p': (CONF_NFS, 'general', 'pipefs-directory', '$1'), -+ '-C': (CONF_IDMAP, 'general', 'client-only', '1'), -+ '-S': (CONF_IDMAP, 'general', 'server-only', '1'), -+ } -+ -+# options for gssd found in RPCGSSDARGS -+OPTS_GSSD = 'Mnvrp:k:d:t:T:R:lD' -+CONV_GSSD = {'-M': (CONF_NFS, 'gssd', 'use-memcache', '1'), -+ '-n': (CONF_NFS, 'gssd', 'root_uses_machine_creds', '0'), -+ '-v': (CONF_NFS, 'gssd', 'verbosity', '+'), -+ '-r': (CONF_NFS, 'gssd', 'rpc-verbosity', '+'), -+ '-p': (CONF_NFS, 'general', 'pipefs-directory', '$1'), -+ '-k': (CONF_NFS, 'gssd', 'keytab-file', '$1'), -+ '-d': (CONF_NFS, 'gssd', 'cred-cache-directory', '$1'), -+ '-t': (CONF_NFS, 'gssd', 'context-timeout', '$1'), -+ '-T': (CONF_NFS, 'gssd', 'rpc-timeout', '$1'), -+ '-R': (CONF_NFS, 'gssd', 'preferred-realm', '$1'), -+ '-l': (CONF_NFS, 'gssd', 'limit-to-legacy-enctypes', '0'), -+ '-D': (CONF_NFS, 'gssd', 'avoid-dns', '0'), -+ } -+ -+# options for blkmapd found in BLKMAPDARGS -+OPTS_BLKMAPD = '' -+CONV_BLKMAPD = {} -+ -+# meta list of all the getopt lists -+GETOPT_MAPS = [('RPCNFSDARGS', OPTS_NFSD, LONG_NFSD, CONV_NFSD), -+ ('RPCMOUNTDOPTS', OPTS_MOUNTD, LONG_MOUNTD, CONV_MOUNTD), -+ ('STATDARG', OPTS_STATD, LONG_STATD, CONV_STATD), -+ ('STATDARGS', OPTS_STATD, LONG_STATD, CONV_STATD), -+ ('SMNOTIFYARGS', OPTS_SMNOTIFY, [], CONV_SMNOTIFY), -+ ('RPCIDMAPDARGS', OPTS_IDMAPD, [], CONV_IDMAPD), -+ ('RPCGSSDARGS', OPTS_GSSD, [], CONV_GSSD), -+ ('BLKMAPDARGS', OPTS_BLKMAPD, [], CONV_BLKMAPD), -+ ] -+ -+# any fixups we need to apply first -+GETOPT_FIXUP = {'RPCNFSDARGS': ('--rdma', '--rdma=nfsrdma'), -+ } -+ -+# map for all of the single option values -+VALUE_MAPS = {'LOCKD_TCPPORT': (CONF_NFS, 'lockd', 'port', '$1'), -+ 'LOCKD_UDPPORT': (CONF_NFS, 'lockd', 'udp-port', '$1'), -+ 'RPCNFSDCOUNT': (CONF_NFS, 'nfsd', 'threads', '$1'), -+ 'NFSD_V4_GRACE': (CONF_NFS, 'nfsd', 'grace-time', '$1'), -+ 'NFSD_V4_LEASE': (CONF_NFS, 'nfsd', 'lease-time', '$1'), -+ 'MOUNTD_PORT': (CONF_NFS, 'mountd', 'port', '$1'), -+ 'STATD_PORT': (CONF_NFS, 'statd', 'port', '$1'), -+ 'STATD_OUTGOING_PORT': (CONF_NFS, 'statd', 'outgoing-port', '$1'), -+ 'STATD_HA_CALLOUT': (CONF_NFS, 'statd', 'ha-callout', '$1'), -+ 'GSS_USE_PROXY': (CONF_NFS, 'gssd', 'use-gss-proxy', '$1') -+ } -+ -+def eprint(*args, **kwargs): -+ """ Print error to stderr """ -+ print(*args, file=sys.stderr, **kwargs) -+ -+def makesub(param, value): -+ """ Variable substitution """ -+ return param.replace('$1', value) -+ -+def set_value(value, entry): -+ """ Set a configuration value by running nfsconf tool""" -+ cfile, section, tag, param = entry -+ -+ tag = makesub(tag, value) -+ param = makesub(param, value) -+ if param == '+': -+ param = value -+ if param == ',': -+ param = value -+ args = [CONF_TOOL, "--file", cfile, "--set", section, tag, param] -+ -+ try: -+ subprocess.check_output(args, stderr=subprocess.STDOUT) -+ except subprocess.CalledProcessError as e: -+ print("Error running nfs-conf tool:\n %s" % (e.output.decode())) -+ print("Args: %s\n" % args) -+ raise Exception -+ -+def convert_getopt(optname, options, optstring, longopts, conversions): -+ """ Parse option string into seperate config items -+ -+ Take a getopt string and a table of conversions -+ parse it all and spit out the converted config -+ -+ Keyword arguments: -+ options -- the argv string to convert -+ optstring -- getopt format option list -+ conversions -- table of translations -+ """ -+ optcount = 0 -+ try: -+ args = options.strip('\"').split() -+ if optname in GETOPT_FIXUP: -+ (k, v) = GETOPT_FIXUP[optname] -+ for i, opt in enumerate(args): -+ if opt == k: -+ args[i] = v -+ elif opt == '--': -+ break -+ optlist, optargs = getopt.gnu_getopt(args, optstring, longopts=longopts) -+ except getopt.GetoptError as err: -+ eprint(err) -+ raise Exception -+ -+ setlist = {} -+ for (k, v) in optlist: -+ if k in conversions: -+ # it's already been set once -+ param = conversions[k][3] -+ tag = k + makesub(conversions[k][2], v) -+ if tag in setlist: -+ value = setlist[tag][0] -+ # is it a cummulative entry -+ if param == '+': -+ value = str(int(value) + 1) -+ if param == ',': -+ value += "," + v -+ else: -+ if param == '+': -+ value = "1" -+ elif param == ',': -+ value = v -+ else: -+ value = v -+ setlist[tag] = (value, conversions[k]) -+ else: -+ if v: -+ eprint("Ignoring unrecognised option %s=%s in %s" % (k, v, optname)) -+ else: -+ eprint("Ignoring unrecognised option %s in %s" % (k, optname)) -+ -+ -+ for v, c in setlist.values(): -+ try: -+ set_value(v, c) -+ optcount += 1 -+ except Exception: -+ raise -+ -+ i = 1 -+ for o in optargs: -+ opname = '$' + str(i) -+ if opname in conversions: -+ try: -+ set_value(o, conversions[opname]) -+ optcount += 1 -+ except Exception: -+ raise -+ else: -+ eprint("Unrecognised trailing arguments") -+ raise Exception -+ i += 1 -+ -+ return optcount -+ -+def map_values(): -+ """ Main function """ -+ mapcount = 0 -+ -+ # Lets load the old config -+ with open(SYSCONF_NFS) as cfile: -+ file_content = '[sysconf]\n' + cfile.read() -+ sysconfig = configparser.RawConfigParser() -+ sysconfig.read_string(file_content) -+ -+ # Map all the getopt option lists -+ for (name, opts, lopts, conv) in GETOPT_MAPS: -+ if name in sysconfig['sysconf']: -+ try: -+ mapcount += convert_getopt(name, sysconfig['sysconf'][name], opts, -+ lopts, conv) -+ except Exception: -+ eprint("Error whilst converting %s to nfsconf options." % (name)) -+ raise -+ -+ # Map the single value options -+ for name, opts in VALUE_MAPS.items(): -+ if name in sysconfig['sysconf']: -+ try: -+ value = sysconfig['sysconf'][name] -+ set_value(value.strip('\"'), opts) -+ mapcount += 1 -+ except Exception: -+ raise -+ -+ # All went well, move aside the old file -+ # but dont bother if there were no changes and -+ # an old config file already exists -+ backupfile = SYSCONF_NFS + SYSCONF_BACKUP -+ if mapcount > 0 or not os.path.exists(backupfile): -+ try: -+ os.replace(SYSCONF_NFS, backupfile) -+ except OSError as err: -+ eprint("Error moving old config %s: %s" % (SYSCONF_NFS, err)) -+ raise -+ -+# Main routine -+try: -+ map_values() -+except Exception as e: -+ eprint(e) -+ eprint("Conversion failed. Please correct the error and try again.") -+ exit(1) diff --git a/SOURCES/bz1998039-nfsnotify-fix-notify_args-default.patch b/SOURCES/bz1998039-nfsnotify-fix-notify_args-default.patch deleted file mode 100644 index 75ca836..0000000 --- a/SOURCES/bz1998039-nfsnotify-fix-notify_args-default.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 1c037b3ac0288509fb2b74fb4a661a504155da15 Mon Sep 17 00:00:00 2001 -From: Oyvind Albrigtsen <oalbrigt@redhat.com> -Date: Thu, 26 Aug 2021 12:27:50 +0200 -Subject: [PATCH] nfsnotify: fix default value for "notify_args" - ---- - heartbeat/nfsnotify.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/heartbeat/nfsnotify.in b/heartbeat/nfsnotify.in -index 851f6ad6b4..fe6d2793ba 100644 ---- a/heartbeat/nfsnotify.in -+++ b/heartbeat/nfsnotify.in -@@ -33,7 +33,7 @@ - # Parameter defaults - - OCF_RESKEY_source_host_default="" --OCF_RESKEY_notify_args_default="false" -+OCF_RESKEY_notify_args_default="" - - : ${OCF_RESKEY_source_host=${OCF_RESKEY_source_host_default}} - : ${OCF_RESKEY_notify_args=${OCF_RESKEY_notify_args_default}} diff --git a/SOURCES/bz2021125-gcp-ilb-1-fix-log_enable.patch b/SOURCES/bz2021125-gcp-ilb-1-fix-log_enable.patch new file mode 100644 index 0000000..b72f3e3 --- /dev/null +++ b/SOURCES/bz2021125-gcp-ilb-1-fix-log_enable.patch @@ -0,0 +1,29 @@ +From 9a7b47f1838e9d6e3c807e9db5312097adb5c499 Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen <oalbrigt@redhat.com> +Date: Fri, 5 Nov 2021 10:30:49 +0100 +Subject: [PATCH] gcp-ilb/Squid: fix issues detected by CI + +--- + heartbeat/Squid.in | 2 +- + heartbeat/gcp-ilb | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/heartbeat/gcp-ilb b/heartbeat/gcp-ilb +index 28484b241..48dc3ac4e 100755 +--- a/heartbeat/gcp-ilb ++++ b/heartbeat/gcp-ilb +@@ -53,12 +53,12 @@ pidfile="/var/run/$OCF_RESOURCE_INSTANCE.pid" + + + #Validate command for logging +-if $OCF_RESKEY_log_enable = "true"; then ++if [ $OCF_RESKEY_log_enable = "true" ]; then + if type $OCF_RESKEY_log_cmd > /dev/null 2>&1; then + logging_cmd="$OCF_RESKEY_log_cmd $OCF_RESKEY_log_params" + ocf_log debug "Logging command is: \'$logging_cmd\' " + else +- $OCF_RESKEY_log_enable = "false" ++ OCF_RESKEY_log_enable="false" + ocf_log err "\'$logging_cmd\' is invalid. External logging disabled." + + fi; diff --git a/SOURCES/bz2021125-gcp-ilb-2-only-check-log_cmd-if-log-enabled.patch b/SOURCES/bz2021125-gcp-ilb-2-only-check-log_cmd-if-log-enabled.patch new file mode 100644 index 0000000..8a7df42 --- /dev/null +++ b/SOURCES/bz2021125-gcp-ilb-2-only-check-log_cmd-if-log-enabled.patch @@ -0,0 +1,51 @@ +From 14576f7ca02fb0abff188238ac019e88ab06e878 Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen <oalbrigt@redhat.com> +Date: Tue, 9 Nov 2021 11:49:36 +0100 +Subject: [PATCH] gcp-ilb: only check if log_cmd binary is available if + log_enable is true + +--- + heartbeat/gcp-ilb | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/heartbeat/gcp-ilb b/heartbeat/gcp-ilb +index 48dc3ac4e..f84f373b7 100755 +--- a/heartbeat/gcp-ilb ++++ b/heartbeat/gcp-ilb +@@ -37,7 +37,7 @@ if type "socat" > /dev/null 2>&1; then + OCF_RESKEY_cat_default="socat" + else + OCF_RESKEY_cat_default="nc" +-fi; ++fi + + + : ${OCF_RESKEY_cat=${OCF_RESKEY_cat_default}} +@@ -53,7 +53,7 @@ pidfile="/var/run/$OCF_RESOURCE_INSTANCE.pid" + + + #Validate command for logging +-if [ $OCF_RESKEY_log_enable = "true" ]; then ++if ocf_is_true "$OCF_RESKEY_log_enable"; then + if type $OCF_RESKEY_log_cmd > /dev/null 2>&1; then + logging_cmd="$OCF_RESKEY_log_cmd $OCF_RESKEY_log_params" + ocf_log debug "Logging command is: \'$logging_cmd\' " +@@ -61,7 +61,7 @@ if [ $OCF_RESKEY_log_enable = "true" ]; then + OCF_RESKEY_log_enable="false" + ocf_log err "\'$logging_cmd\' is invalid. External logging disabled." + +- fi; ++ fi + fi + + +@@ -285,7 +285,8 @@ ilb_stop() { + + ilb_validate() { + check_binary "$OCF_RESKEY_cat" +- check_binary "$OCF_RESKEY_log_cmd" ++ ++ ocf_is_true "$OCF_RESKEY_log_enable" && check_binary "$OCF_RESKEY_log_cmd" + + if ! ocf_is_decimal "$OCF_RESKEY_port"; then + ocf_exit_reason "$OCF_RESKEY_port is not a valid port" diff --git a/SOURCES/ha-cloud-support-aws.patch b/SOURCES/ha-cloud-support-aws.patch index d858d5a..fbda111 100644 --- a/SOURCES/ha-cloud-support-aws.patch +++ b/SOURCES/ha-cloud-support-aws.patch @@ -6,7 +6,7 @@ diff --color -uNr a/heartbeat/awseip b/heartbeat/awseip # Defaults # -OCF_RESKEY_awscli_default="/usr/bin/aws" -+OCF_RESKEY_awscli_default="/usr/lib/fence-agents/support/aws/bin/aws" ++OCF_RESKEY_awscli_default="/usr/lib/fence-agents/support/awscli/bin/aws" OCF_RESKEY_profile_default="default" OCF_RESKEY_api_delay_default="3" @@ -18,7 +18,7 @@ diff --color -uNr a/heartbeat/awsvip b/heartbeat/awsvip # Defaults # -OCF_RESKEY_awscli_default="/usr/bin/aws" -+OCF_RESKEY_awscli_default="/usr/lib/fence-agents/support/aws/bin/aws" ++OCF_RESKEY_awscli_default="/usr/lib/fence-agents/support/awscli/bin/aws" OCF_RESKEY_profile_default="default" OCF_RESKEY_api_delay_default="3" @@ -30,7 +30,7 @@ diff --color -uNr a/heartbeat/aws-vpc-move-ip b/heartbeat/aws-vpc-move-ip # Defaults -OCF_RESKEY_awscli_default="/usr/bin/aws" -+OCF_RESKEY_awscli_default="/usr/lib/fence-agents/support/aws/bin/aws" ++OCF_RESKEY_awscli_default="/usr/lib/fence-agents/support/awscli/bin/aws" OCF_RESKEY_profile_default="default" OCF_RESKEY_region_default="" OCF_RESKEY_ip_default="" @@ -42,7 +42,7 @@ diff --color -uNr a/heartbeat/aws-vpc-route53.in b/heartbeat/aws-vpc-route53.in # Defaults -OCF_RESKEY_awscli_default="/usr/bin/aws" -+OCF_RESKEY_awscli_default="/usr/lib/fence-agents/support/aws/bin/aws" ++OCF_RESKEY_awscli_default="/usr/lib/fence-agents/support/awscli/bin/aws" OCF_RESKEY_profile_default="default" OCF_RESKEY_hostedzoneid_default="" OCF_RESKEY_fullname_default="" diff --git a/SPECS/resource-agents.spec b/SPECS/resource-agents.spec index d7d81e5..6b2eece 100644 --- a/SPECS/resource-agents.spec +++ b/SPECS/resource-agents.spec @@ -20,7 +20,7 @@ # %global upstream_prefix ClusterLabs-resource-agents -%global upstream_version e76b7d3a +%global upstream_version fd0720f7 # Whether this platform defaults to using systemd as an init system # (needs to be evaluated prior to BuildRequires being enumerated and @@ -44,15 +44,15 @@ Name: resource-agents Summary: Open Source HA Reusable Cluster Resource Scripts -Version: 4.8.0 -Release: 13%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist} +Version: 4.10.0 +Release: 3%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist} License: GPLv2+ and LGPLv2+ URL: https://github.com/ClusterLabs/resource-agents Source0: %{upstream_prefix}-%{upstream_version}.tar.gz Patch0: nova-compute-wait-NovaEvacuate.patch Patch1: bz1952005-pgsqlms-new-ra.patch -Patch2: bz1991855-nfsserver-add-nfsconvert.patch -Patch3: bz1998039-nfsnotify-fix-notify_args-default.patch +Patch2: bz2021125-gcp-ilb-1-fix-log_enable.patch +Patch3: bz2021125-gcp-ilb-2-only-check-log_cmd-if-log-enabled.patch # bundled ha-cloud-support libs Patch500: ha-cloud-support-aws.patch @@ -100,6 +100,7 @@ BuildRequires: libxslt docbook_4 docbook-xsl-stylesheets Requires: /bin/bash /usr/bin/grep /bin/sed /bin/gawk Requires: /bin/ps /usr/bin/pkill /usr/bin/hostname /usr/bin/netstat Requires: /usr/sbin/fuser /bin/mount +Requires: which # Filesystem / fs.sh / netfs.sh Requires: /sbin/fsck @@ -123,6 +124,9 @@ Requires: /usr/sbin/lvm # nfsserver / netfs.sh Requires: /usr/sbin/rpc.nfsd /sbin/rpc.statd /usr/sbin/rpc.mountd +# ocf.py +Requires: python3 + # rgmanager %if %{with rgmanager} # ip.sh @@ -145,6 +149,7 @@ License: GPLv2+ and LGPLv2+ Summary: Cloud resource agents Requires: %{name} = %{version}-%{release} Requires: ha-cloud-support +Requires: socat Provides: resource-agents-aliyun Obsoletes: resource-agents-aliyun <= %{version} Provides: resource-agents-gcp @@ -173,13 +178,13 @@ exit 1 %setup -q -n %{upstream_prefix}-%{upstream_version} %patch0 -p1 -F1 %patch1 -p1 -%patch2 -p1 -F1 +%patch2 -p1 %patch3 -p1 # bundled ha-cloud-support libs %patch500 -p1 %patch501 -p1 -%patch502 -p1 -F2 +%patch502 -p1 chmod 755 heartbeat/nova-compute-wait chmod 755 heartbeat/NovaEvacuate @@ -219,10 +224,10 @@ export CFLAGS %endif %{conf_opt_fatal} \ %if %{defined _unitdir} - --with-systemdsystemunitdir=%{_unitdir} \ + SYSTEMD_UNIT_DIR=%{_unitdir} \ %endif %if %{defined _tmpfilesdir} - --with-systemdtmpfilesdir=%{_tmpfilesdir} \ + SYSTEMD_TMPFILES_DIR=%{_tmpfilesdir} \ --with-rsctmpdir=/run/resource-agents \ %endif --with-pkg-name=%{name} \ @@ -350,6 +355,8 @@ rm -rf %{buildroot}/usr/share/doc/resource-agents %exclude %{_usr}/lib/ocf/resource.d/heartbeat/clvm %exclude %{_usr}/lib/ocf/resource.d/heartbeat/dnsupdate %exclude %{_usr}/lib/ocf/resource.d/heartbeat/docker* +%exclude %{_usr}/lib/ocf/resource.d/heartbeat/dovecot +%exclude %{_usr}/lib/ocf/resource.d/heartbeat/dummypy %exclude %{_usr}/lib/ocf/resource.d/heartbeat/eDir88 %exclude %{_usr}/lib/ocf/resource.d/heartbeat/fio %exclude %{_usr}/lib/ocf/resource.d/heartbeat/ids @@ -364,12 +371,15 @@ rm -rf %{buildroot}/usr/share/doc/resource-agents %exclude %{_usr}/lib/ocf/resource.d/heartbeat/lxd-info %exclude %{_usr}/lib/ocf/resource.d/heartbeat/machine-info %exclude %{_usr}/lib/ocf/resource.d/heartbeat/mariadb +%exclude %{_usr}/lib/ocf/resource.d/heartbeat/mdraid %exclude %{_usr}/lib/ocf/resource.d/heartbeat/minio %exclude %{_usr}/lib/ocf/resource.d/heartbeat/mpathpersist %exclude %{_usr}/lib/ocf/resource.d/heartbeat/mysql-proxy +%exclude %{_usr}/lib/ocf/resource.d/heartbeat/nvmet-* %exclude %{_usr}/lib/ocf/resource.d/heartbeat/openstack-cinder-volume %exclude %{_usr}/lib/ocf/resource.d/heartbeat/openstack-floating-ip %exclude %{_usr}/lib/ocf/resource.d/heartbeat/openstack-info +%exclude %{_usr}/lib/ocf/resource.d/heartbeat/openstack-virtual-ip %exclude %{_usr}/lib/ocf/resource.d/heartbeat/ovsmonitor %exclude %{_usr}/lib/ocf/resource.d/heartbeat/pgagent %exclude %{_usr}/lib/ocf/resource.d/heartbeat/pingd @@ -380,6 +390,7 @@ rm -rf %{buildroot}/usr/share/doc/resource-agents %exclude %{_usr}/lib/ocf/resource.d/heartbeat/scsi2reservation %exclude %{_usr}/lib/ocf/resource.d/heartbeat/sfex %exclude %{_usr}/lib/ocf/resource.d/heartbeat/sg_persist +%exclude %{_usr}/lib/ocf/resource.d/heartbeat/smb-share %exclude %{_usr}/lib/ocf/resource.d/heartbeat/syslog-ng %exclude %{_usr}/lib/ocf/resource.d/heartbeat/varnish %exclude %{_usr}/lib/ocf/resource.d/heartbeat/vmware @@ -413,6 +424,8 @@ rm -rf %{buildroot}/usr/share/doc/resource-agents %exclude %{_mandir}/man7/ocf_heartbeat_clvm.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_dnsupdate.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_docker*.7.gz +%exclude %{_mandir}/man7/ocf_heartbeat_dovecot.7.gz +%exclude %{_mandir}/man7/ocf_heartbeat_dummypy.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_eDir88.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_fio.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_ids.7.gz @@ -426,12 +439,15 @@ rm -rf %{buildroot}/usr/share/doc/resource-agents %exclude %{_mandir}/man7/ocf_heartbeat_lxd-info.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_machine-info.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_mariadb.7.gz +%exclude %{_mandir}/man7/ocf_heartbeat_mdraid.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_minio.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_mpathpersist.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_mysql-proxy.7.gz +%exclude %{_mandir}/man7/ocf_heartbeat_nvmet-*.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_openstack-cinder-volume.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_openstack-floating-ip.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_openstack-info.7.gz +%exclude %{_mandir}/man7/ocf_heartbeat_openstack-virtual-ip.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_ovsmonitor.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_pgagent.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_pingd.7.gz @@ -442,6 +458,7 @@ rm -rf %{buildroot}/usr/share/doc/resource-agents %exclude %{_mandir}/man7/ocf_heartbeat_scsi2reservation.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_sfex.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_sg_persist.7.gz +%exclude %{_mandir}/man7/ocf_heartbeat_smb-share.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_syslog-ng.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_varnish.7.gz %exclude %{_mandir}/man7/ocf_heartbeat_vmware.7.gz @@ -492,6 +509,27 @@ rm -rf %{buildroot}/usr/share/doc/resource-agents %{_usr}/lib/ocf/lib/heartbeat/OCF_*.pm %changelog +* Tue Nov 9 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-3 +- gcp-ilb: new resource agent + + Resolves: rhbz#2021125 + +* Wed Nov 3 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-1 +- Rebase to resource-agents 4.10.0 upstream release. +- nfsserver: add nfs_server_scope parameter + + Resolves: rhbz#1995918 + Resolves: rhbz#2015171 + +* Thu Oct 7 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.9.0-2 +- Rebase to resource-agents 4.9.0 upstream release. +- Add "which" dependency +- All agents: set correct agent and OCF version in metadata + + Resolves: rhbz#1995918 + Resolves: rhbz#2011142 + Resolves: rhbz#2003118 + * Thu Aug 26 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.8.0-13 - nfsnotify: fix default value for "notify_args" @@ -503,7 +541,6 @@ rm -rf %{buildroot}/usr/share/doc/resource-agents - nfsserver: fix nfs-convert issue Resolves: rhbz#1997548, rhbz#1997576, rhbz#1991855 - * Mon Aug 16 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.8.0-11 - Filesystem: force_unmount: remove "Default value" text from metadata