import OL fence-agents-4.10.0-86.el9_6.11

This commit is contained in:
eabdullin 2025-11-05 07:42:09 +00:00
parent c4c85b947a
commit c03a2ff813
5 changed files with 140 additions and 13 deletions

View File

@ -13,8 +13,8 @@ bda476965c380701795849179ed91e9d8134ec7c SOURCES/aliyun-python-sdk-core-2.11.5.t
838eaf93a9cd4dfd3c87a342ee7691cf799b2df2 SOURCES/azure_mgmt_compute-34.0.0.tar.gz
adc0e3e2d5b126174273efcc40a5e6fc8fe8a8ff SOURCES/azure_mgmt_core-1.5.0.tar.gz
f70832bb6367a31808c22849ae2932dae9b17df0 SOURCES/azure_mgmt_network-28.1.0.tar.gz
6591882be0937b2b900eab4ec70feadf34f71738 SOURCES/boto3-1.17.102-py2.py3-none-any.whl
22507f43314ccb2dd203337e87ffafb385ba3627 SOURCES/botocore-1.20.102-py2.py3-none-any.whl
18167d84640a4522ee23f6c115c208e09c852bb0 SOURCES/boto3-1.40.13.tar.gz
0d393b17c1d023ab145ba0d06c7a292710291213 SOURCES/botocore-1.40.13.tar.gz
c953dcd6e69587e5b182d77255ed836172fea70a SOURCES/cachetools-4.2.2-py3-none-any.whl
0d12f48faa727f0979e9ad5c4c80dfa32b73caff SOURCES/cachetools-4.2.4.tar.gz
ec7e8dd8ef95edfdb83a1ea040b8b88507b47615 SOURCES/certifi-2023.7.22.tar.gz
@ -77,7 +77,7 @@ c0d5be2edf538122d35fe06c29d2d7a5f22f3117 SOURCES/rsa-4.7.2-py3-none-any.whl
e8a53067e03fe1b6682fd99a40a7359396a06daa SOURCES/rsa-4.7.2.tar.gz
d1011ff44cd5a045de0460c1b79ec65592e86860 SOURCES/ruamel.yaml-0.17.16.tar.gz
27de97227bbbde5a9f571f9fad223578d7bdf7cc SOURCES/ruamel.yaml.clib-0.2.6.tar.gz
d7eb0ced8b9f12005ad6f13035689d5611f8a81a SOURCES/s3transfer-0.4.2-py2.py3-none-any.whl
cba8cc24b8a0dc50f1ef763ad029fa95bfbb3f88 SOURCES/s3transfer-0.13.1.tar.gz
fc3caa7370e18be4c0ca4703f813df1ca4a6b7ad SOURCES/setuptools-80.9.0.tar.gz
749fa3bff5be78c80ac6d6d313c38c73d679542c SOURCES/setuptools_scm-8.1.0.tar.gz
06fa0bb50f2a4e2917fd14c21e9d2d5508ce0163 SOURCES/six-1.16.0.tar.gz

6
.gitignore vendored
View File

@ -13,8 +13,8 @@ SOURCES/azure_identity-1.19.0.tar.gz
SOURCES/azure_mgmt_compute-34.0.0.tar.gz
SOURCES/azure_mgmt_core-1.5.0.tar.gz
SOURCES/azure_mgmt_network-28.1.0.tar.gz
SOURCES/boto3-1.17.102-py2.py3-none-any.whl
SOURCES/botocore-1.20.102-py2.py3-none-any.whl
SOURCES/boto3-1.40.13.tar.gz
SOURCES/botocore-1.40.13.tar.gz
SOURCES/cachetools-4.2.2-py3-none-any.whl
SOURCES/cachetools-4.2.4.tar.gz
SOURCES/certifi-2023.7.22.tar.gz
@ -77,7 +77,7 @@ SOURCES/rsa-4.7.2-py3-none-any.whl
SOURCES/rsa-4.7.2.tar.gz
SOURCES/ruamel.yaml-0.17.16.tar.gz
SOURCES/ruamel.yaml.clib-0.2.6.tar.gz
SOURCES/s3transfer-0.4.2-py2.py3-none-any.whl
SOURCES/s3transfer-0.13.1.tar.gz
SOURCES/setuptools-80.9.0.tar.gz
SOURCES/setuptools_scm-8.1.0.tar.gz
SOURCES/six-1.16.0.tar.gz

View File

@ -0,0 +1,92 @@
From 5cf006ffa3a948ccded3a55c15669f1d5efef5f5 Mon Sep 17 00:00:00 2001
From: gguifelixamz <45173771+gguifelixamz@users.noreply.github.com>
Date: Tue, 19 Aug 2025 02:04:53 -0700
Subject: [PATCH] fence_aws: Add new skip_os_shutdown flag (#632)
---
agents/aws/fence_aws.py | 29 ++++++++++++++++++++++++++---
tests/data/metadata/fence_aws.xml | 5 +++++
2 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/agents/aws/fence_aws.py b/agents/aws/fence_aws.py
index 5459a06c4..cddca4580 100644
--- a/agents/aws/fence_aws.py
+++ b/agents/aws/fence_aws.py
@@ -12,7 +12,7 @@
try:
import boto3
- from botocore.exceptions import ConnectionError, ClientError, EndpointConnectionError, NoRegionError
+ from botocore.exceptions import ConnectionError, ClientError, EndpointConnectionError, NoRegionError, ParamValidationError
except ImportError:
pass
@@ -120,14 +120,28 @@ def get_self_power_status(conn, instance_id):
def set_power_status(conn, options):
my_instance = get_instance_id(options)
try:
+ if options.get("--skip-os-shutdown", "false").lower() in ["1", "yes", "on", "true"]:
+ shutdown_option = {
+ "SkipOsShutdown": True,
+ "Force": True
+ }
+ else:
+ shutdown_option = {
+ "SkipOsShutdown": False,
+ "Force": True
+ }
if (options["--action"]=="off"):
if "--skip-race-check" in options or get_self_power_status(conn,my_instance) == "ok":
- conn.instances.filter(InstanceIds=[options["--plug"]]).stop(Force=True)
+ conn.instances.filter(InstanceIds=[options["--plug"]]).stop(**shutdown_option)
logger.debug("Called StopInstance API call for %s", options["--plug"])
else:
logger.debug("Skipping fencing as instance is not in running status")
elif (options["--action"]=="on"):
conn.instances.filter(InstanceIds=[options["--plug"]]).start()
+ except ParamValidationError:
+ if (options["--action"] == "off"):
+ logger.warning(f"SkipOsShutdown not supported with the current boto3 version {boto3.__version__} - falling back to graceful shutdown")
+ conn.instances.filter(InstanceIds=[options["--plug"]]).stop(Force=True)
except Exception as e:
logger.debug("Failed to power %s %s: %s", \
options["--action"], options["--plug"], e)
@@ -183,12 +197,21 @@ def define_new_opts():
"required": "0",
"order": 7
}
+ all_opt["skip_os_shutdown"] = {
+ "getopt" : ":",
+ "longopt" : "skip-os-shutdown",
+ "help" : "--skip-os-shutdown=[true|false] Uses SkipOsShutdown flag",
+ "shortdesc" : "Use SkipOsShutdown flag to stop the EC2 instance",
+ "required" : "0",
+ "default" : "false",
+ "order" : 8
+ }
# Main agent method
def main():
conn = None
- device_opt = ["port", "no_password", "region", "access_key", "secret_key", "filter", "boto3_debug", "skip_race_check"]
+ device_opt = ["port", "no_password", "region", "access_key", "secret_key", "filter", "boto3_debug", "skip_race_check", "skip_os_shutdown"]
atexit.register(atexit_handler)
diff --git a/tests/data/metadata/fence_aws.xml b/tests/data/metadata/fence_aws.xml
index ad471c797..c53873bbe 100644
--- a/tests/data/metadata/fence_aws.xml
+++ b/tests/data/metadata/fence_aws.xml
@@ -51,6 +51,11 @@ For instructions see: https://boto3.readthedocs.io/en/latest/guide/quickstart.ht
<content type="boolean" />
<shortdesc lang="en">Skip race condition check</shortdesc>
</parameter>
+ <parameter name="skip_os_shutdown" unique="0" required="0">
+ <getopt mixed="--skip-os-shutdown=[true|false]" />
+ <content type="string" default="false" />
+ <shortdesc lang="en">Use SkipOsShutdown flag to stop the EC2 instance</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />

View File

@ -0,0 +1,23 @@
From b6e05c57a73e5d9bdde7d133ba7ec43737a7c6b7 Mon Sep 17 00:00:00 2001
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
Date: Tue, 25 Feb 2025 16:11:32 +0100
Subject: [PATCH] fence_kubevirt: set grace_period_seconds=0 to immediately
power off the node
---
agents/kubevirt/fence_kubevirt.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/agents/kubevirt/fence_kubevirt.py b/agents/kubevirt/fence_kubevirt.py
index e3817b0fb..8ba8ce8db 100755
--- a/agents/kubevirt/fence_kubevirt.py
+++ b/agents/kubevirt/fence_kubevirt.py
@@ -108,7 +108,7 @@ def define_new_opts():
def virtctl_vm_action(conn, action, namespace, name, apiversion):
path = '/apis/subresources.{api_version}/namespaces/{namespace}/virtualmachines/{name}/{action}'
path = path.format(api_version=apiversion, namespace=namespace, name=name, action=action)
- return conn.request('put', path, header_params={'accept': '*/*'})
+ return conn.request('put', path, header_params={'accept': '*/*'}, body={'gracePeriod': 0} if action == 'stop' else None)
# Main agent method
def main():

View File

@ -57,7 +57,7 @@
Name: fence-agents
Summary: Set of unified programs capable of host isolation ("fencing")
Version: 4.10.0
Release: 86%{?alphatag:.%{alphatag}}%{?dist}.9
Release: 86%{?alphatag:.%{alphatag}}%{?dist}.11
License: GPLv2+ and LGPLv2+
URL: https://github.com/ClusterLabs/fence-agents
Source0: https://fedorahosted.org/releases/f/e/fence-agents/%{name}-%{version}.tar.gz
@ -90,10 +90,10 @@ Source2001: aliyun-openapi-meta-5cf98b660.tar.gz
## go mod vendor
Source2002: aliyun-cli-go-vendor.tar.gz
# aws
Source1007: boto3-1.17.102-py2.py3-none-any.whl
Source1008: botocore-1.20.102-py2.py3-none-any.whl
Source1007: boto3-1.40.13.tar.gz
Source1008: botocore-1.40.13.tar.gz
Source1009: python_%{dateutil}-%{dateutil_version}-py2.py3-none-any.whl
Source1010: s3transfer-0.4.2-py2.py3-none-any.whl
Source1010: s3transfer-0.13.1.tar.gz
Source1011: %{urllib3}-%{urllib3_version}.tar.gz
# azure
Source1012: adal-1.2.7.tar.gz
@ -248,6 +248,8 @@ Patch63: RHEL-83488-fence_ibm_vpc-refresh-bearer-token.patch
Patch64: RHEL-92695-1-fence_sbd-improve-error-handling.patch
Patch65: RHEL-92695-2-fence_sbd-get-devices-from-SBD_DEVICE-if-devices-parameter-isnt-set.patch
Patch66: RHEL-107529-fence_ibm_vpc-add-apikey-file-support.patch
Patch67: RHEL-109923-fence_aws-add-skipshutdown-parameter.patch
Patch68: RHEL-96183-fence_kubevirt-force-off.patch
### HA support libs/utils ###
# all archs
@ -436,6 +438,8 @@ BuildRequires: %{systemd_units}
%patch -p1 -P 64
%patch -p1 -P 65
%patch -p1 -P 66
%patch -p1 -P 67 -F2
%patch -p1 -P 68
# prevent compilation of something that won't get used anyway
sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac
@ -634,10 +638,10 @@ Provides: bundled(python-pycparser) = 2.20
Provides: bundled(aliyun-cli) = 3.0.198
Provides: bundled(aliyun-openapi-meta) = 5cf98b660
# aws
Provides: bundled(python-boto3) = 1.17.102
Provides: bundled(python-botocore) = 1.20.102
Provides: bundled(python-boto3) = 1.40.13
Provides: bundled(python-botocore) = 1.40.13
Provides: bundled(python-%{dateutil}) = %{dateutil_version}
Provides: bundled(python-s3transfer) = 0.4.2
Provides: bundled(python-s3transfer) = 0.13.1
Provides: bundled(python-urllib3) = 1.26.18
# azure
Provides: bundled(python-adal) = 1.2.7
@ -1543,6 +1547,14 @@ are located on corosync cluster nodes.
%endif
%changelog
* Thu Sep 11 2025 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-86.11
- fence_kubevirt: use hard poweroff
Resolves: RHEL-96183
* Tue Aug 19 2025 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-86.10
- fence_aws: add "skip_os_shutdown" parameter to allow hard poweroff
Resolves: RHEL-109923
* Tue Aug 12 2025 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-86.9
- fence_ibm_vpc: add apikey file support
Resolves: RHEL-107529