import fence-agents-4.2.1-75.el8
This commit is contained in:
parent
9bba64d2d5
commit
f22138bf39
@ -0,0 +1,73 @@
|
|||||||
|
diff --color -uNr a/agents/gce/fence_gce.py b/agents/gce/fence_gce.py
|
||||||
|
--- a/agents/gce/fence_gce.py 2021-06-11 14:28:37.751959830 +0200
|
||||||
|
+++ b/agents/gce/fence_gce.py 2021-06-11 14:54:03.638926494 +0200
|
||||||
|
@@ -15,9 +15,15 @@
|
||||||
|
import urllib2 as urlrequest
|
||||||
|
sys.path.append("@FENCEAGENTSLIBDIR@")
|
||||||
|
|
||||||
|
-import googleapiclient.discovery
|
||||||
|
from fencing import fail_usage, run_delay, all_opt, atexit_handler, check_input, process_input, show_docs, fence_action
|
||||||
|
-
|
||||||
|
+try:
|
||||||
|
+ import googleapiclient.discovery
|
||||||
|
+ try:
|
||||||
|
+ from google.oauth2.credentials import Credentials as GoogleCredentials
|
||||||
|
+ except:
|
||||||
|
+ from oauth2client.client import GoogleCredentials
|
||||||
|
+except:
|
||||||
|
+ pass
|
||||||
|
|
||||||
|
METADATA_SERVER = 'http://metadata.google.internal/computeMetadata/v1/'
|
||||||
|
METADATA_HEADERS = {'Metadata-Flavor': 'Google'}
|
||||||
|
@@ -175,12 +181,21 @@
|
||||||
|
"required" : "0",
|
||||||
|
"order" : 4
|
||||||
|
}
|
||||||
|
+ all_opt["serviceaccount"] = {
|
||||||
|
+ "getopt" : ":",
|
||||||
|
+ "longopt" : "serviceaccount",
|
||||||
|
+ "help" : "--serviceaccount=[filename] Service account json file location e.g. serviceaccount=/somedir/service_account.json",
|
||||||
|
+ "shortdesc" : "Service Account to use for authentication to the google cloud APIs.",
|
||||||
|
+ "required" : "0",
|
||||||
|
+ "order" : 9
|
||||||
|
+ }
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
conn = None
|
||||||
|
|
||||||
|
- device_opt = ["port", "no_password", "zone", "project", "stackdriver-logging", "method"]
|
||||||
|
+ device_opt = ["port", "no_password", "zone", "project", "stackdriver-logging",
|
||||||
|
+ "method", "serviceaccount"]
|
||||||
|
|
||||||
|
atexit.register(atexit_handler)
|
||||||
|
|
||||||
|
@@ -226,10 +241,24 @@
|
||||||
|
|
||||||
|
# Prepare cli
|
||||||
|
try:
|
||||||
|
- credentials = None
|
||||||
|
- if tuple(googleapiclient.__version__) < tuple("1.6.0"):
|
||||||
|
- import oauth2client.client
|
||||||
|
- credentials = oauth2client.client.GoogleCredentials.get_application_default()
|
||||||
|
+ serviceaccount = options.get("--serviceaccount")
|
||||||
|
+ if serviceaccount:
|
||||||
|
+ scope = ['https://www.googleapis.com/auth/cloud-platform']
|
||||||
|
+ logging.debug("using credentials from service account")
|
||||||
|
+ try:
|
||||||
|
+ from google.oauth2.service_account import Credentials as ServiceAccountCredentials
|
||||||
|
+ credentials = ServiceAccountCredentials.from_service_account_file(filename=serviceaccount, scopes=scope)
|
||||||
|
+ except ImportError:
|
||||||
|
+ from oauth2client.service_account import ServiceAccountCredentials
|
||||||
|
+ credentials = ServiceAccountCredentials.from_json_keyfile_name(serviceaccount, scope)
|
||||||
|
+ else:
|
||||||
|
+ try:
|
||||||
|
+ from googleapiclient import _auth
|
||||||
|
+ credentials = _auth.default_credentials();
|
||||||
|
+ except:
|
||||||
|
+ credentials = GoogleCredentials.get_application_default()
|
||||||
|
+ logging.debug("using application default credentials")
|
||||||
|
+
|
||||||
|
conn = googleapiclient.discovery.build('compute', 'v1', credentials=credentials)
|
||||||
|
except Exception as err:
|
||||||
|
fail_usage("Failed: Create GCE compute v1 connection: {}".format(str(err)))
|
47
SOURCES/bz1780825-fencing-1-add-stonith_status_sleep.patch
Normal file
47
SOURCES/bz1780825-fencing-1-add-stonith_status_sleep.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
From b322891e91649d47656d63c73a0e08e9627f0b38 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
Date: Wed, 28 Apr 2021 12:20:07 +0200
|
||||||
|
Subject: [PATCH] fencing: add stonith_status_sleep parameter for sleep between
|
||||||
|
status calls during a STONITH action
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/fencing.py.py | 13 +++++++++++--
|
||||||
|
76 files changed, 386 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/fencing.py.py b/lib/fencing.py.py
|
||||||
|
index 9654f57be..bd7f529f7 100644
|
||||||
|
--- a/lib/fencing.py.py
|
||||||
|
+++ b/lib/fencing.py.py
|
||||||
|
@@ -367,6 +367,14 @@
|
||||||
|
"default" : "0",
|
||||||
|
"required" : "0",
|
||||||
|
"order" : 200},
|
||||||
|
+ "stonith_status_sleep" : {
|
||||||
|
+ "getopt" : ":",
|
||||||
|
+ "longopt" : "stonith-status-sleep",
|
||||||
|
+ "type" : "second",
|
||||||
|
+ "help" : "--stonith-status-sleep=[seconds] Sleep X seconds between status calls during a STONITH action",
|
||||||
|
+ "default" : "1",
|
||||||
|
+ "required" : "0",
|
||||||
|
+ "order" : 200},
|
||||||
|
"missing_as_off" : {
|
||||||
|
"getopt" : "",
|
||||||
|
"longopt" : "missing-as-off",
|
||||||
|
@@ -478,7 +486,8 @@
|
||||||
|
"default" : ["help", "debug", "verbose", "verbose_level",
|
||||||
|
"version", "action", "agent", "power_timeout",
|
||||||
|
"shell_timeout", "login_timeout", "disable_timeout",
|
||||||
|
- "power_wait", "retry_on", "delay", "quiet"],
|
||||||
|
+ "power_wait", "stonith_status_sleep", "retry_on", "delay",
|
||||||
|
+ "quiet"],
|
||||||
|
"passwd" : ["passwd_script"],
|
||||||
|
"sudo" : ["sudo_path"],
|
||||||
|
"secure" : ["identity_file", "ssh_options", "ssh_path", "inet4_only", "inet6_only"],
|
||||||
|
@@ -828,7 +837,7 @@ def async_set_multi_power_fn(connection, options, set_power_fn, get_power_fn, re
|
||||||
|
|
||||||
|
for _ in itertools.count(1):
|
||||||
|
if get_multi_power_fn(connection, options, get_power_fn) != options["--action"]:
|
||||||
|
- time.sleep(1)
|
||||||
|
+ time.sleep(int(options["--stonith-status-sleep"]))
|
||||||
|
else:
|
||||||
|
return True
|
@ -0,0 +1,22 @@
|
|||||||
|
From 199b5e8a63d8b3457262751b7fbe187f92b38e73 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
Date: Tue, 4 May 2021 09:33:34 +0200
|
||||||
|
Subject: [PATCH] fencing: fix issue with hardcoded help text length for
|
||||||
|
metadata
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/fencing.py.py | 2 +-
|
||||||
|
77 files changed, 153 insertions(+), 153 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/fencing.py.py b/lib/fencing.py.py
|
||||||
|
index bd7f529f7..b0ddde850 100644
|
||||||
|
--- a/lib/fencing.py.py
|
||||||
|
+++ b/lib/fencing.py.py
|
||||||
|
@@ -641,7 +641,7 @@ def metadata(options, avail_opt, docs):
|
||||||
|
mixed = _encode_html_entities(mixed)
|
||||||
|
|
||||||
|
if not "shortdesc" in opt:
|
||||||
|
- shortdesc = re.sub("\s\s+", " ", opt["help"][31:])
|
||||||
|
+ shortdesc = re.sub(".*\s\s+", "", opt["help"][31:])
|
||||||
|
else:
|
||||||
|
shortdesc = opt["shortdesc"]
|
53
SOURCES/bz1920947-fence_redfish-1-add-diag-action.patch
Normal file
53
SOURCES/bz1920947-fence_redfish-1-add-diag-action.patch
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
From 570e04d68c3595b137b104ba723aa2e6ceca5a3a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Reid Wahl <nrwahl@protonmail.com>
|
||||||
|
Date: Wed, 27 Jan 2021 01:45:43 -0800
|
||||||
|
Subject: [PATCH] fence_redfish: Add diag action
|
||||||
|
|
||||||
|
Sends NMI to fenced node.
|
||||||
|
|
||||||
|
Ref:
|
||||||
|
- http://redfish.dmtf.org/schemas/DSP2046_2020.3.html#redfish.dmtf.org/schemas/v1/ComputerSystem.json|details|ResetType
|
||||||
|
|
||||||
|
Resolves: RHBZ#1920947
|
||||||
|
|
||||||
|
Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
|
||||||
|
---
|
||||||
|
agents/redfish/fence_redfish.py | 6 ++++--
|
||||||
|
tests/data/metadata/fence_redfish.xml | 1 +
|
||||||
|
2 files changed, 5 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/agents/redfish/fence_redfish.py b/agents/redfish/fence_redfish.py
|
||||||
|
index 1b259576..9a7d604d 100644
|
||||||
|
--- a/agents/redfish/fence_redfish.py
|
||||||
|
+++ b/agents/redfish/fence_redfish.py
|
||||||
|
@@ -40,7 +40,8 @@ def set_power_status(conn, options):
|
||||||
|
action = {
|
||||||
|
'on' : "On",
|
||||||
|
'off': "ForceOff",
|
||||||
|
- 'reboot': "ForceRestart"
|
||||||
|
+ 'reboot': "ForceRestart",
|
||||||
|
+ 'diag': "Nmi"
|
||||||
|
}[options["--action"]]
|
||||||
|
|
||||||
|
payload = {'ResetType': action}
|
||||||
|
@@ -119,7 +120,8 @@ def define_new_opts():
|
||||||
|
|
||||||
|
def main():
|
||||||
|
atexit.register(atexit_handler)
|
||||||
|
- device_opt = ["ipaddr", "login", "passwd", "redfish-uri", "systems-uri", "ssl"]
|
||||||
|
+ device_opt = ["ipaddr", "login", "passwd", "redfish-uri", "systems-uri",
|
||||||
|
+ "ssl", "diag"]
|
||||||
|
define_new_opts()
|
||||||
|
|
||||||
|
opt = process_input(device_opt)
|
||||||
|
diff --git a/tests/data/metadata/fence_redfish.xml b/tests/data/metadata/fence_redfish.xml
|
||||||
|
index 6daf2cd9..fb112781 100644
|
||||||
|
--- a/tests/data/metadata/fence_redfish.xml
|
||||||
|
+++ b/tests/data/metadata/fence_redfish.xml
|
||||||
|
@@ -187,5 +187,6 @@
|
||||||
|
<action name="metadata" />
|
||||||
|
<action name="manpage" />
|
||||||
|
<action name="validate-all" />
|
||||||
|
+ <action name="diag" />
|
||||||
|
</actions>
|
||||||
|
</resource-agent>
|
@ -0,0 +1,49 @@
|
|||||||
|
From b50523850e7fe1ba73d4ff0ede193c9860eff2bc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
Date: Fri, 7 May 2021 10:35:00 +0200
|
||||||
|
Subject: [PATCH] fence_redfish: add missing diag logic
|
||||||
|
|
||||||
|
---
|
||||||
|
agents/redfish/fence_redfish.py | 15 +++++++++++++--
|
||||||
|
1 file changed, 13 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/agents/redfish/fence_redfish.py b/agents/redfish/fence_redfish.py
|
||||||
|
index 9a7d604d3..0f5af523c 100644
|
||||||
|
--- a/agents/redfish/fence_redfish.py
|
||||||
|
+++ b/agents/redfish/fence_redfish.py
|
||||||
|
@@ -42,7 +42,7 @@ def set_power_status(conn, options):
|
||||||
|
'off': "ForceOff",
|
||||||
|
'reboot': "ForceRestart",
|
||||||
|
'diag': "Nmi"
|
||||||
|
- }[options["--action"]]
|
||||||
|
+ }[options.get("original-action") or options["--action"]]
|
||||||
|
|
||||||
|
payload = {'ResetType': action}
|
||||||
|
|
||||||
|
@@ -56,6 +56,8 @@ def set_power_status(conn, options):
|
||||||
|
response = send_post_request(options, action_uri, payload)
|
||||||
|
if response['ret'] is False:
|
||||||
|
fail_usage("Error sending power command")
|
||||||
|
+ if options.get("original-action") == "diag":
|
||||||
|
+ return True
|
||||||
|
return
|
||||||
|
|
||||||
|
def send_get_request(options, uri):
|
||||||
|
@@ -159,7 +161,16 @@ def main():
|
||||||
|
else:
|
||||||
|
options["--systems-uri"] = sysresult["uri"]
|
||||||
|
|
||||||
|
- result = fence_action(None, options, set_power_status, get_power_status, None)
|
||||||
|
+ reboot_fn = None
|
||||||
|
+ if options["--action"] == "diag":
|
||||||
|
+ # Diag is a special action that can't be verified so we will reuse reboot functionality
|
||||||
|
+ # to minimize impact on generic library
|
||||||
|
+ options["original-action"] = options["--action"]
|
||||||
|
+ options["--action"] = "reboot"
|
||||||
|
+ options["--method"] = "cycle"
|
||||||
|
+ reboot_fn = set_power_status
|
||||||
|
+
|
||||||
|
+ result = fence_action(None, options, set_power_status, get_power_status, None, reboot_fn)
|
||||||
|
sys.exit(result)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
22
SOURCES/bz1920947-fence_redfish-3-fix-typo.patch
Normal file
22
SOURCES/bz1920947-fence_redfish-3-fix-typo.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
From 753e126d0b642159b3e936de76a814f753f0d918 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jeffrey Cutter <jcutter@redhat.com>
|
||||||
|
Date: Mon, 16 Nov 2020 14:29:30 -0500
|
||||||
|
Subject: [PATCH] fence_redfish: Fix typo in help.
|
||||||
|
|
||||||
|
---
|
||||||
|
agents/redfish/fence_redfish.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/agents/redfish/fence_redfish.py b/agents/redfish/fence_redfish.py
|
||||||
|
index c7c6492c6..1b259576e 100644
|
||||||
|
--- a/agents/redfish/fence_redfish.py
|
||||||
|
+++ b/agents/redfish/fence_redfish.py
|
||||||
|
@@ -102,7 +102,7 @@ def define_new_opts():
|
||||||
|
all_opt["redfish-uri"] = {
|
||||||
|
"getopt" : ":",
|
||||||
|
"longopt" : "redfish-uri",
|
||||||
|
- "help" : "--redfish-uri=[uri] Base or starting Redifsh URI",
|
||||||
|
+ "help" : "--redfish-uri=[uri] Base or starting Redfish URI",
|
||||||
|
"required" : "0",
|
||||||
|
"default" : "/redfish/v1",
|
||||||
|
"shortdesc" : "Base or starting Redfish URI",
|
111
SOURCES/bz1922437-fence_mpath-watchdog-retry-support.patch
Normal file
111
SOURCES/bz1922437-fence_mpath-watchdog-retry-support.patch
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
From 2c9ce6a7667e09010d498ca9d9bcf6e476123bbb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
Date: Thu, 20 May 2021 12:51:12 +0200
|
||||||
|
Subject: [PATCH] fence_mpath: watchdog retries support
|
||||||
|
|
||||||
|
Added options to be able to be able to set number of retries and sleep between retries.
|
||||||
|
---
|
||||||
|
agents/mpath/fence_mpath.py | 44 +++++++++++++++++++++--------
|
||||||
|
tests/data/metadata/fence_mpath.xml | 4 ++-
|
||||||
|
2 files changed, 35 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/agents/mpath/fence_mpath.py b/agents/mpath/fence_mpath.py
|
||||||
|
index 08dab6536..61ab1f205 100644
|
||||||
|
--- a/agents/mpath/fence_mpath.py
|
||||||
|
+++ b/agents/mpath/fence_mpath.py
|
||||||
|
@@ -4,6 +4,7 @@
|
||||||
|
import stat
|
||||||
|
import re
|
||||||
|
import os
|
||||||
|
+import time
|
||||||
|
import logging
|
||||||
|
import atexit
|
||||||
|
import ctypes
|
||||||
|
@@ -167,14 +168,20 @@ def dev_read(options, fail=True):
|
||||||
|
store_fh.close()
|
||||||
|
return dev_key
|
||||||
|
|
||||||
|
-def mpath_check_get_verbose():
|
||||||
|
+def mpath_check_get_options(options):
|
||||||
|
try:
|
||||||
|
- f = open("/etc/sysconfig/watchdog", "r")
|
||||||
|
+ f = open("/etc/sysconfig/stonith", "r")
|
||||||
|
except IOError:
|
||||||
|
- return False
|
||||||
|
- match = re.search(r"^\s*verbose=yes", "".join(f.readlines()), re.MULTILINE)
|
||||||
|
+ return options
|
||||||
|
+
|
||||||
|
+ match = re.findall(r"^\s*(\S*)\s*=\s*(\S*)\s*", "".join(f.readlines()), re.MULTILINE)
|
||||||
|
+
|
||||||
|
+ for m in match:
|
||||||
|
+ options[m[0].lower()] = m[1].lower()
|
||||||
|
+
|
||||||
|
f.close()
|
||||||
|
- return bool(match)
|
||||||
|
+
|
||||||
|
+ return options
|
||||||
|
|
||||||
|
def mpath_check(hardreboot=False):
|
||||||
|
if len(sys.argv) >= 3 and sys.argv[1] == "repair":
|
||||||
|
@@ -183,18 +190,27 @@ def mpath_check(hardreboot=False):
|
||||||
|
options["--mpathpersist-path"] = "/usr/sbin/mpathpersist"
|
||||||
|
options["--store-path"] = "/var/run/cluster"
|
||||||
|
options["--power-timeout"] = "5"
|
||||||
|
- if mpath_check_get_verbose():
|
||||||
|
+ options["retry"] = "0"
|
||||||
|
+ options["retry-sleep"] = "1"
|
||||||
|
+ options = mpath_check_get_options(options)
|
||||||
|
+ if "verbose" in options and options["verbose"] == "yes":
|
||||||
|
logging.getLogger().setLevel(logging.DEBUG)
|
||||||
|
devs = dev_read(options, fail=False)
|
||||||
|
if not devs:
|
||||||
|
logging.error("No devices found")
|
||||||
|
return 0
|
||||||
|
for dev, key in list(devs.items()):
|
||||||
|
- if key in get_registration_keys(options, dev, fail=False):
|
||||||
|
- logging.debug("key " + key + " registered with device " + dev)
|
||||||
|
- return 0
|
||||||
|
- else:
|
||||||
|
- logging.debug("key " + key + " not registered with device " + dev)
|
||||||
|
+ for n in range(int(options["retry"]) + 1):
|
||||||
|
+ if n > 0:
|
||||||
|
+ logging.debug("retry: " + str(n) + " of " + options["retry"])
|
||||||
|
+ if key in get_registration_keys(options, dev, fail=False):
|
||||||
|
+ logging.debug("key " + key + " registered with device " + dev)
|
||||||
|
+ return 0
|
||||||
|
+ else:
|
||||||
|
+ logging.debug("key " + key + " not registered with device " + dev)
|
||||||
|
+
|
||||||
|
+ if n < int(options["retry"]):
|
||||||
|
+ time.sleep(float(options["retry-sleep"]))
|
||||||
|
logging.debug("key " + key + " registered with any devices")
|
||||||
|
|
||||||
|
if hardreboot == True:
|
||||||
|
@@ -289,7 +305,11 @@ def main():
|
||||||
|
device(s). The result is that only registered nodes may write to the \
|
||||||
|
device(s). When a node failure occurs, the fence_mpath agent will remove the \
|
||||||
|
key belonging to the failed node from the device(s). The failed node will no \
|
||||||
|
-longer be able to write to the device(s). A manual reboot is required."
|
||||||
|
+longer be able to write to the device(s). A manual reboot is required.\
|
||||||
|
+\n.P\n\
|
||||||
|
+When used as a watchdog device you can define e.g. retry=1, retry-sleep=2 and \
|
||||||
|
+verbose=yes parameters in /etc/sysconfig/stonith if you have issues with it \
|
||||||
|
+failing."
|
||||||
|
docs["vendorurl"] = "https://www.sourceware.org/dm/"
|
||||||
|
show_docs(options, docs)
|
||||||
|
|
||||||
|
diff --git a/tests/data/metadata/fence_mpath.xml b/tests/data/metadata/fence_mpath.xml
|
||||||
|
index 524776aa0..0255d4b4e 100644
|
||||||
|
--- a/tests/data/metadata/fence_mpath.xml
|
||||||
|
+++ b/tests/data/metadata/fence_mpath.xml
|
||||||
|
@@ -1,7 +1,9 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<resource-agent name="fence_mpath" shortdesc="Fence agent for multipath persistent reservation" >
|
||||||
|
<longdesc>fence_mpath is an I/O fencing agent that uses SCSI-3 persistent reservations to control access multipath devices. Underlying devices must support SCSI-3 persistent reservations (SPC-3 or greater) as well as the "preempt-and-abort" subcommand.
|
||||||
|
-The fence_mpath agent works by having a unique key for each node that has to be set in /etc/multipath.conf. Once registered, a single node will become the reservation holder by creating a "write exclusive, registrants only" reservation on the device(s). The result is that only registered nodes may write to the device(s). When a node failure occurs, the fence_mpath agent will remove the key belonging to the failed node from the device(s). The failed node will no longer be able to write to the device(s). A manual reboot is required.</longdesc>
|
||||||
|
+The fence_mpath agent works by having a unique key for each node that has to be set in /etc/multipath.conf. Once registered, a single node will become the reservation holder by creating a "write exclusive, registrants only" reservation on the device(s). The result is that only registered nodes may write to the device(s). When a node failure occurs, the fence_mpath agent will remove the key belonging to the failed node from the device(s). The failed node will no longer be able to write to the device(s). A manual reboot is required.
|
||||||
|
+
|
||||||
|
+When used as a watchdog device you can define e.g. retry=1, retry-sleep=2 and verbose=yes parameters in /etc/sysconfig/stonith if you have issues with it failing.</longdesc>
|
||||||
|
<vendor-url>https://www.sourceware.org/dm/</vendor-url>
|
||||||
|
<parameters>
|
||||||
|
<parameter name="action" unique="0" required="1">
|
38
SOURCES/bz1925015-fence_ipmilan-add-fence_ipmilanplus.patch
Normal file
38
SOURCES/bz1925015-fence_ipmilan-add-fence_ipmilanplus.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
From 08a4521f9361c7ca4877e691fa82cc0e8f51d707 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thomas Renninger <trenn@suse.com>
|
||||||
|
Date: Wed, 3 Feb 2021 11:20:14 +0100
|
||||||
|
Subject: [PATCH] Add fence_ipmilanplus as fence_ipmilan wrapper always
|
||||||
|
enabling lanplus
|
||||||
|
|
||||||
|
Lanplus (IPMI protocol version 2) is the up-to-date protocol to
|
||||||
|
connect to all recent IPMI driven BMCs.
|
||||||
|
Using fence_ipmilan without lanplus=1 will fail on these.
|
||||||
|
|
||||||
|
To get around compatibility issues (old HW might still exist),
|
||||||
|
a new fence_agent is introduced via link and basename check.
|
||||||
|
---
|
||||||
|
agents/ipmilan/fence_ipmilan.py | 3 +
|
||||||
|
9 files changed, 240 insertions(+)
|
||||||
|
create mode 100644 tests/data/metadata/fence_ipmilanplus.xml
|
||||||
|
|
||||||
|
diff --git a/agents/ipmilan/fence_ipmilan.py b/agents/ipmilan/fence_ipmilan.py
|
||||||
|
index ee014e79..f751de69 100644
|
||||||
|
--- a/agents/ipmilan/fence_ipmilan.py
|
||||||
|
+++ b/agents/ipmilan/fence_ipmilan.py
|
||||||
|
@@ -187,6 +187,8 @@ def main():
|
||||||
|
all_opt["lanplus"]["default"] = "1"
|
||||||
|
elif os.path.basename(sys.argv[0]) == "fence_ilo5":
|
||||||
|
all_opt["lanplus"]["default"] = "1"
|
||||||
|
+ elif os.path.basename(sys.argv[0]) == "fence_ipmilanplus":
|
||||||
|
+ all_opt["lanplus"]["default"] = "1"
|
||||||
|
|
||||||
|
all_opt["ipport"]["default"] = "623"
|
||||||
|
all_opt["method"]["help"] = "-m, --method=[method] Method to fence (onoff|cycle) (Default: onoff)\n" \
|
||||||
|
@@ -206,6 +208,7 @@ def main():
|
||||||
|
docs["symlink"] = [("fence_ilo3", "Fence agent for HP iLO3"),
|
||||||
|
("fence_ilo4", "Fence agent for HP iLO4"),
|
||||||
|
("fence_ilo5", "Fence agent for HP iLO5"),
|
||||||
|
+ ("fence_ipmilanplus", "Fence agent for IPMIv2 lanplus"),
|
||||||
|
("fence_imm", "Fence agent for IBM Integrated Management Module"),
|
||||||
|
("fence_idrac", "Fence agent for Dell iDRAC")]
|
||||||
|
show_docs(options, docs)
|
37
SOURCES/bz1942363-fence_gce-default-to-cycle.patch
Normal file
37
SOURCES/bz1942363-fence_gce-default-to-cycle.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
From b8793b7cdacf0eb13e86581fcba1f78bb7a4bc13 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tim Megela <megela@google.com>
|
||||||
|
Date: Thu, 11 Mar 2021 06:41:59 -0500
|
||||||
|
Subject: [PATCH] Default method moved back to powercycle
|
||||||
|
|
||||||
|
Moving back to powercycle as the default method for GCE. This is the recommended approach from Google. Using on/off as the default will have unintended consequences on google cloud platforms.
|
||||||
|
---
|
||||||
|
agents/gce/fence_gce.py | 2 ++
|
||||||
|
tests/data/metadata/fence_gce.xml | 2 +-
|
||||||
|
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/agents/gce/fence_gce.py b/agents/gce/fence_gce.py
|
||||||
|
index 1784e1b70..d59ce2bad 100644
|
||||||
|
--- a/agents/gce/fence_gce.py
|
||||||
|
+++ b/agents/gce/fence_gce.py
|
||||||
|
@@ -358,6 +358,8 @@ def main():
|
||||||
|
define_new_opts()
|
||||||
|
|
||||||
|
all_opt["power_timeout"]["default"] = "60"
|
||||||
|
+ all_opt["method"]["default"] = "cycle"
|
||||||
|
+ all_opt["method"]["help"] = "-m, --method=[method] Method to fence (onoff|cycle) (Default: cycle)"
|
||||||
|
|
||||||
|
options = check_input(device_opt, process_input(device_opt))
|
||||||
|
|
||||||
|
diff --git a/tests/data/metadata/fence_gce.xml b/tests/data/metadata/fence_gce.xml
|
||||||
|
index f09c771f3..bb5137878 100644
|
||||||
|
--- a/tests/data/metadata/fence_gce.xml
|
||||||
|
+++ b/tests/data/metadata/fence_gce.xml
|
||||||
|
@@ -12,7 +12,7 @@ For instructions see: https://cloud.google.com/compute/docs/tutorials/python-gui
|
||||||
|
</parameter>
|
||||||
|
<parameter name="method" unique="0" required="0">
|
||||||
|
<getopt mixed="-m, --method=[method]" />
|
||||||
|
- <content type="select" default="onoff" >
|
||||||
|
+ <content type="select" default="cycle" >
|
||||||
|
<option value="onoff" />
|
||||||
|
<option value="cycle" />
|
||||||
|
</content>
|
@ -29,7 +29,7 @@
|
|||||||
Name: fence-agents
|
Name: fence-agents
|
||||||
Summary: Set of unified programs capable of host isolation ("fencing")
|
Summary: Set of unified programs capable of host isolation ("fencing")
|
||||||
Version: 4.2.1
|
Version: 4.2.1
|
||||||
Release: 65%{?alphatag:.%{alphatag}}%{?dist}.1
|
Release: 75%{?alphatag:.%{alphatag}}%{?dist}
|
||||||
License: GPLv2+ and LGPLv2+
|
License: GPLv2+ and LGPLv2+
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
URL: https://github.com/ClusterLabs/fence-agents
|
URL: https://github.com/ClusterLabs/fence-agents
|
||||||
@ -122,10 +122,19 @@ Patch80: bz1841087-fence_scsi-dont-write-key-device-to-file.patch
|
|||||||
Patch81: bz1896827-fence_aws-add-imdsv2-support.patch
|
Patch81: bz1896827-fence_aws-add-imdsv2-support.patch
|
||||||
Patch82: bz1914313-fence_zvmip-fix-disable-timeout.patch
|
Patch82: bz1914313-fence_zvmip-fix-disable-timeout.patch
|
||||||
Patch83: bz1906978-fence_gce-default-to-onoff.patch
|
Patch83: bz1906978-fence_gce-default-to-onoff.patch
|
||||||
Patch84: bz1977819-fence_aws-add-filter-parameter.patch
|
Patch84: bz1925015-fence_ipmilan-add-fence_ipmilanplus.patch
|
||||||
|
Patch85: bz1920947-fence_redfish-1-add-diag-action.patch
|
||||||
|
Patch86: bz1941989-fence_aws-add-filter-parameter.patch
|
||||||
|
Patch87: bz1780825-fencing-1-add-stonith_status_sleep.patch
|
||||||
|
Patch88: bz1780825-fencing-2-metadata-fix-long-parameters.patch
|
||||||
|
Patch89: bz1942363-fence_gce-default-to-cycle.patch
|
||||||
|
Patch90: bz1920947-fence_redfish-2-add-diag-action-logic.patch
|
||||||
|
Patch91: bz1920947-fence_redfish-3-fix-typo.patch
|
||||||
|
Patch92: bz1922437-fence_mpath-watchdog-retry-support.patch
|
||||||
|
Patch93: bz1685814-fence_gce-add-serviceaccount-file-support.patch
|
||||||
|
|
||||||
%if 0%{?fedora} || 0%{?rhel} > 7
|
%if 0%{?fedora} || 0%{?rhel} > 7
|
||||||
%global supportedagents amt_ws apc apc_snmp bladecenter brocade cisco_mds cisco_ucs compute drac5 eaton_snmp emerson eps evacuate hpblade ibmblade ifmib ilo ilo_moonshot ilo_mp ilo_ssh intelmodular ipdu ipmilan kdump lpar mpath redfish rhevm rsa rsb sbd scsi vmware_rest vmware_soap wti
|
%global supportedagents amt_ws apc apc_snmp bladecenter brocade cisco_mds cisco_ucs compute drac5 eaton_snmp emerson eps evacuate hds_cb hpblade ibmblade ifmib ilo ilo_moonshot ilo_mp ilo_ssh intelmodular ipdu ipmilan kdump lpar mpath redfish rhevm rsa rsb sbd scsi vmware_rest vmware_soap wti
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
%global testagents virsh heuristics_ping aliyun aws azure_arm gce
|
%global testagents virsh heuristics_ping aliyun aws azure_arm gce
|
||||||
%endif
|
%endif
|
||||||
@ -284,7 +293,16 @@ BuildRequires: python3-google-api-client
|
|||||||
%patch81 -p1
|
%patch81 -p1
|
||||||
%patch82 -p1
|
%patch82 -p1
|
||||||
%patch83 -p1
|
%patch83 -p1
|
||||||
%patch84 -p1 -F1
|
%patch84 -p1
|
||||||
|
%patch85 -p1
|
||||||
|
%patch86 -p1 -F1
|
||||||
|
%patch87 -p1
|
||||||
|
%patch88 -p1
|
||||||
|
%patch89 -p1
|
||||||
|
%patch90 -p1
|
||||||
|
%patch91 -p1
|
||||||
|
%patch92 -p1
|
||||||
|
%patch93 -p1
|
||||||
|
|
||||||
# prevent compilation of something that won't get used anyway
|
# prevent compilation of something that won't get used anyway
|
||||||
sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac
|
sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac
|
||||||
@ -708,6 +726,7 @@ Group: System Environment/Base
|
|||||||
Summary: Fence agent for GCE (Google Cloud Engine)
|
Summary: Fence agent for GCE (Google Cloud Engine)
|
||||||
Requires: fence-agents-common >= %{version}-%{release}
|
Requires: fence-agents-common >= %{version}-%{release}
|
||||||
Requires: python3-google-api-client
|
Requires: python3-google-api-client
|
||||||
|
Requires: python3-pysocks
|
||||||
Obsoletes: %{name} < %{version}-%{release}
|
Obsoletes: %{name} < %{version}-%{release}
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%description gce
|
%description gce
|
||||||
@ -915,6 +934,8 @@ Fence agents for devices with IPMI interface.
|
|||||||
%{_mandir}/man8/fence_ilo4.8*
|
%{_mandir}/man8/fence_ilo4.8*
|
||||||
%{_sbindir}/fence_ilo5
|
%{_sbindir}/fence_ilo5
|
||||||
%{_mandir}/man8/fence_ilo5.8*
|
%{_mandir}/man8/fence_ilo5.8*
|
||||||
|
%{_sbindir}/fence_ipmilanplus
|
||||||
|
%{_mandir}/man8/fence_ipmilanplus.8*
|
||||||
%{_sbindir}/fence_imm
|
%{_sbindir}/fence_imm
|
||||||
%{_mandir}/man8/fence_imm.8*
|
%{_mandir}/man8/fence_imm.8*
|
||||||
|
|
||||||
@ -1154,9 +1175,34 @@ Fence agent for IBM z/VM over IP.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu Jul 1 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-65.1
|
* Wed Aug 11 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-75
|
||||||
|
- fence_gce: add serviceaccount JSON file support
|
||||||
|
Resolves: rhbz#1685814
|
||||||
|
|
||||||
|
* Thu May 20 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-72
|
||||||
|
- fence_mpath: add watchdog retry support
|
||||||
|
Resolves: rhbz#1922437
|
||||||
|
|
||||||
|
* Fri May 7 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-71
|
||||||
|
- fence_redfish: add diag action
|
||||||
|
Resolves: rhbz#1920947
|
||||||
|
|
||||||
|
* Thu May 6 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-70
|
||||||
|
- fence_gce: change default back to cycle to avoid "soft" off
|
||||||
|
Resolves: rhbz#1942363
|
||||||
|
|
||||||
|
* Tue May 4 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-69
|
||||||
|
- fencing: add "stonith_status_sleep" parameter to set sleep between
|
||||||
|
status calls during STONITH action
|
||||||
|
Resolves: rhbz#1780825
|
||||||
|
|
||||||
|
* Fri Apr 30 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-68
|
||||||
- fence_aws: add "filter" parameter
|
- fence_aws: add "filter" parameter
|
||||||
Resolves: rhbz#1977819
|
Resolves: rhbz#1941989
|
||||||
|
|
||||||
|
* Wed Mar 3 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-67
|
||||||
|
- fence_ipmilanplus: new symlink agent with lanplus enabled by default
|
||||||
|
Resolves: rhbz#1925015
|
||||||
|
|
||||||
* Tue Feb 2 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-65
|
* Tue Feb 2 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.2.1-65
|
||||||
- fence_gce: default to onoff
|
- fence_gce: default to onoff
|
||||||
|
Loading…
Reference in New Issue
Block a user