diff --git a/.gitignore b/.gitignore index f18cf35..19002c1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ -/fence-agents-*.tar.?z -/fence-agents-*.src.rpm +/*.tar.?z* +/*.rpm /.build-*.log +/*.txt +/*.whl +/*.zip /*/ diff --git a/build-pythonpath.patch b/build-pythonpath.patch new file mode 100644 index 0000000..72af625 --- /dev/null +++ b/build-pythonpath.patch @@ -0,0 +1,113 @@ +diff --color -uNr a/agents/Makefile.am b/agents/Makefile.am +--- a/agents/Makefile.am 2021-07-08 13:09:05.000000000 +0200 ++++ b/agents/Makefile.am 2024-03-14 12:26:11.186502759 +0100 +@@ -112,10 +112,10 @@ + cisco_mds/fence_cisco_mds.delay-check: cisco_mds/fence_cisco_mds + $(eval INPUT=$(subst .delay-check,,$@)) + FENCE_TEST_ARGS_CISCO_MDS=$$(printf '$(FENCE_TEST_ARGS)' | sed 's#port=1#port=fc1/1#'); \ +- test `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \ ++ test `PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \ + sh -c "printf 'delay=10\n $$FENCE_TEST_ARGS_CISCO_MDS' | $(PYTHON) ./$(INPUT)" 2>&1 |\ + awk -F"[. ]" -vOFS= '/real/ {print $$2,$$3}'` -ge 1000 || ( \ +- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \ ++ PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \ + sh -c "printf "delay=0\n $$FENCE_TEST_ARGS_CISCO_MDS" | $(PYTHON) ./$(INPUT)"; false ) + + include $(top_srcdir)/make/fencebuild.mk +diff --color -uNr a/make/agentpycheck.mk b/make/agentpycheck.mk +--- a/make/agentpycheck.mk 2023-10-09 09:53:21.000000000 +0200 ++++ b/make/agentpycheck.mk 2024-03-14 11:52:48.045134164 +0100 +@@ -10,38 +10,38 @@ + + %.xml-check: %.8 + $(eval INPUT=$(subst .xml-check,,$(@F))) +- for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ ++ for x in $(INPUT) `PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ + TEMPFILE=$$(mktemp); \ +- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $$TEMPFILE && \ ++ PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $$TEMPFILE && \ + diff $$TEMPFILE $(DATADIR)/$$x.xml || exit 1 && \ + rm $$TEMPFILE; \ + done + + %.xml-upload: %.8 + $(eval INPUT=$(subst .xml-upload,,$(@F))) +- for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ +- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $(DATADIR)/$$x.xml; \ ++ for x in $(INPUT) `PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ ++ PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $(DATADIR)/$$x.xml; \ + done + + # If test will fail, rerun fence agents to show problems + %.delay-check: % + $(eval INPUT=$(subst .delay-check,,$(@F))) +- for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ +- test `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \ ++ for x in $(INPUT) `PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ ++ test `PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \ + sh -c "printf 'delay=10\n $(FENCE_TEST_ARGS)' | $(PYTHON) $(@D)/$$x" 2>&1 |\ + awk -F"[. ]" -vOFS= '/real/ {print $$2,$$3}'` -ge 1000 || ( \ +- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \ ++ PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \ + sh -c "printf 'delay=0\n $(FENCE_TEST_ARGS)' | $(PYTHON) $(@D)/$$x"; false ); \ + done + + %.rng-check: % + $(eval INPUT=$(subst .rng-check,,$(@F))) +- for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ +- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | \ ++ for x in $(INPUT) `PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ ++ PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | \ + xsltproc ${abs_top_srcdir}/lib/fence2rng.xsl - | \ + sed -e 's/ rha:description=/ description=/g' -e 's/ rha:name=/ name=/g' | \ + xmllint --nsclean --noout -; \ + done + + test-fencing: +- PYTHONPATH=$(abs_top_builddir)/lib $(PYTHON) $(abs_top_srcdir)/lib/tests/test_fencing.py ++ PYTHONPATH=$(PYTHONPATH):$(abs_top_builddir)/lib $(PYTHON) $(abs_top_srcdir)/lib/tests/test_fencing.py +diff --color -uNr a/make/fencebuild.mk b/make/fencebuild.mk +--- a/make/fencebuild.mk 2022-10-24 11:02:10.000000000 +0200 ++++ b/make/fencebuild.mk 2024-03-14 11:33:24.688964424 +0100 +@@ -35,10 +35,10 @@ + > $@ + + if [ 0 -eq `echo "$(@)" | grep fence_ > /dev/null 2>&1; echo $$?` ]; then \ +- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(top_srcdir)/lib/check_used_options.py $@; \ ++ PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(top_srcdir)/lib/check_used_options.py $@; \ + else true ; fi + +- for x in `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ ++ for x in `PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ + cp -f $(@) $(@D)/$$x; \ + $(MAKE) $(@D)/$$x.8; \ + done +@@ -65,7 +65,7 @@ + fi + for p in $(TARGET); do \ + dir=`dirname $$p`; \ +- for x in `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ ++ for x in `PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ + echo " $(INSTALL_SCRIPT) $$dir/$$x '$(DESTDIR)$(sbindir)'"; \ + $(INSTALL_SCRIPT) $$dir/$$x "$(DESTDIR)$(sbindir)" || exit $$?; \ + echo " $(INSTALL_DATA) '$$dir/$$x.8' '$(DESTDIR)$(man8dir)'"; \ +@@ -75,7 +75,7 @@ + + uninstall-hook: $(TARGET) + files=`for p in $(TARGET); do \ +- for x in \`PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"\`; do \ ++ for x in \`PYTHONPATH=$(PYTHONPATH):$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"\`; do \ + echo " rm -f '$(DESTDIR)$(sbindir)/$$x'"; \ + rm -f "$(DESTDIR)$(sbindir)/$$x"; \ + echo " rm -f '$(DESTDIR)$(man8dir)/$$x.8'"; \ +diff --color -uNr a/make/fenceman.mk b/make/fenceman.mk +--- a/make/fenceman.mk 2021-07-08 13:09:05.000000000 +0200 ++++ b/make/fenceman.mk 2024-03-14 11:32:55.075320897 +0100 +@@ -1,6 +1,6 @@ + %.8: % $(top_srcdir)/lib/fence2man.xsl + set -e && \ +- PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/../lib:$(abs_builddir)/lib \ ++ PYTHONPATH=$(PYTHONPATH):$(abs_srcdir)/lib:$(abs_builddir)/../lib:$(abs_builddir)/lib \ + $(PYTHON) $* -o manpage > $(@D)/.$(@F).tmp && \ + xmllint --noout --relaxng $(top_srcdir)/lib/metadata.rng $(@D)/.$(@F).tmp && \ + xsltproc $(top_srcdir)/lib/fence2man.xsl $(@D)/.$(@F).tmp > $@ diff --git a/bundled-kubevirt.patch b/bundled-kubevirt.patch new file mode 100644 index 0000000..1b75f21 --- /dev/null +++ b/bundled-kubevirt.patch @@ -0,0 +1,12 @@ +diff --color -uNr a/agents/kubevirt/fence_kubevirt.py b/agents/kubevirt/fence_kubevirt.py +--- a/agents/kubevirt/fence_kubevirt.py 2022-01-17 12:18:10.000000000 +0100 ++++ b/agents/kubevirt/fence_kubevirt.py 2024-03-14 10:10:00.334272185 +0100 +@@ -8,6 +8,8 @@ + from fencing import fail, fail_usage, run_delay, EC_STATUS, EC_FETCH_VM_UUID + + try: ++ sys.path.insert(0, '/usr/lib/fence-agents/support/kubevirt/lib/python#PYTHON3_VERSION#/site-packages') ++ sys.path.insert(0, '/usr/lib/fence-agents/support/kubevirt/lib64/python#PYTHON3_VERSION#/site-packages') + from kubernetes.client.exceptions import ApiException + except ImportError: + logging.error("Couldn\'t import kubernetes.client.exceptions.ApiException - not found or not accessible") diff --git a/bundled-pycurl.patch b/bundled-pycurl.patch new file mode 100644 index 0000000..c72d790 --- /dev/null +++ b/bundled-pycurl.patch @@ -0,0 +1,101 @@ +diff --color -uNr a/agents/cisco_ucs/fence_cisco_ucs.py b/agents/cisco_ucs/fence_cisco_ucs.py +--- a/agents/cisco_ucs/fence_cisco_ucs.py 2022-10-18 15:50:58.000000000 +0200 ++++ b/agents/cisco_ucs/fence_cisco_ucs.py 2024-03-14 09:23:55.010793743 +0100 +@@ -1,6 +1,7 @@ + #!@PYTHON@ -tt + + import sys, re ++sys.path.insert(0, '/usr/lib/fence-agents/support/common/lib/python#PYTHON3_VERSION#/site-packages') + import pycurl, io + import logging + import atexit +diff --color -uNr a/agents/docker/fence_docker.py b/agents/docker/fence_docker.py +--- a/agents/docker/fence_docker.py 2022-10-18 15:50:58.000000000 +0200 ++++ b/agents/docker/fence_docker.py 2024-03-14 09:24:02.013951459 +0100 +@@ -4,6 +4,7 @@ + import sys + import io + import logging ++sys.path.insert(0, '/usr/lib/fence-agents/support/common/lib/python#PYTHON3_VERSION#/site-packages') + import pycurl + import json + +diff --color -uNr a/agents/ibm_powervs/fence_ibm_powervs.py b/agents/ibm_powervs/fence_ibm_powervs.py +--- a/agents/ibm_powervs/fence_ibm_powervs.py 2023-06-21 14:05:19.000000000 +0200 ++++ b/agents/ibm_powervs/fence_ibm_powervs.py 2024-03-14 09:24:07.631077960 +0100 +@@ -1,6 +1,7 @@ + #!@PYTHON@ -tt + + import sys ++sys.path.insert(0, '/usr/lib/fence-agents/support/common/lib/python#PYTHON3_VERSION#/site-packages') + import pycurl, io, json + import logging + import atexit +diff --color -uNr a/agents/ibm_vpc/fence_ibm_vpc.py b/agents/ibm_vpc/fence_ibm_vpc.py +--- a/agents/ibm_vpc/fence_ibm_vpc.py 2022-10-24 11:02:10.000000000 +0200 ++++ b/agents/ibm_vpc/fence_ibm_vpc.py 2024-03-14 09:24:15.509255382 +0100 +@@ -1,6 +1,7 @@ + #!@PYTHON@ -tt + + import sys ++sys.path.insert(0, '/usr/lib/fence-agents/support/common/lib/python#PYTHON3_VERSION#/site-packages') + import pycurl, io, json + import logging + import atexit +diff --color -uNr a/agents/pve/fence_pve.py b/agents/pve/fence_pve.py +--- a/agents/pve/fence_pve.py 2022-10-18 15:50:58.000000000 +0200 ++++ b/agents/pve/fence_pve.py 2024-03-14 09:24:20.762373685 +0100 +@@ -6,6 +6,7 @@ + + import sys + import json ++sys.path.insert(0, '/usr/lib/fence-agents/support/common/lib/python#PYTHON3_VERSION#/site-packages') + import pycurl + import io + import atexit +diff --color -uNr a/agents/rhevm/fence_rhevm.py b/agents/rhevm/fence_rhevm.py +--- a/agents/rhevm/fence_rhevm.py 2022-10-18 15:50:58.000000000 +0200 ++++ b/agents/rhevm/fence_rhevm.py 2024-03-14 09:24:26.490502687 +0100 +@@ -1,6 +1,7 @@ + #!@PYTHON@ -tt + + import sys, re ++sys.path.insert(0, '/usr/lib/fence-agents/support/common/lib/python#PYTHON3_VERSION#/site-packages') + import pycurl, io + import logging + import atexit +diff --color -uNr a/agents/vmware_rest/fence_vmware_rest.py b/agents/vmware_rest/fence_vmware_rest.py +--- a/agents/vmware_rest/fence_vmware_rest.py 2022-10-18 15:50:58.000000000 +0200 ++++ b/agents/vmware_rest/fence_vmware_rest.py 2024-03-14 09:25:24.081799686 +0100 +@@ -1,6 +1,7 @@ + #!@PYTHON@ -tt + + import sys ++sys.path.insert(0, '/usr/lib/fence-agents/support/common/lib/python#PYTHON3_VERSION#/site-packages') + import pycurl, io, json + import logging + import atexit +diff --color -uNr a/agents/vmware_vcloud/fence_vmware_vcloud.py b/agents/vmware_vcloud/fence_vmware_vcloud.py +--- a/agents/vmware_vcloud/fence_vmware_vcloud.py 2022-10-18 15:50:58.000000000 +0200 ++++ b/agents/vmware_vcloud/fence_vmware_vcloud.py 2024-03-14 09:25:28.098890153 +0100 +@@ -1,6 +1,7 @@ + #!@PYTHON@ -tt + + import sys ++sys.path.insert(0, '/usr/lib/fence-agents/support/common/lib/python#PYTHON3_VERSION#/site-packages') + import pycurl, io + import logging + import atexit +diff --color -uNr a/lib/fencing.py.py b/lib/fencing.py.py +--- a/lib/fencing.py.py 2023-10-06 16:38:40.000000000 +0200 ++++ b/lib/fencing.py.py 2024-03-14 09:26:01.053632288 +0100 +@@ -1,6 +1,8 @@ + #!@PYTHON@ -tt + +-import sys, getopt, time, os, uuid, pycurl, stat ++import sys, getopt, time, os, uuid, stat ++sys.path.insert(0, '/usr/lib/fence-agents/support/common/lib/python#PYTHON3_VERSION#/site-packages') ++import pycurl + import pexpect, re, syslog + import logging + import subprocess diff --git a/bundled-suds.patch b/bundled-suds.patch new file mode 100644 index 0000000..ff28d2e --- /dev/null +++ b/bundled-suds.patch @@ -0,0 +1,10 @@ +--- a/agents/vmware_soap/fence_vmware_soap.py 2021-08-24 15:38:05.145039598 +0200 ++++ b/agents/vmware_soap/fence_vmware_soap.py 2021-08-24 15:37:51.885003751 +0200 +@@ -1,6 +1,7 @@ + #!@PYTHON@ -tt + + import sys ++sys.path.insert(0, '/usr/lib/fence-agents/support/common/lib/python#PYTHON3_VERSION#/site-packages') + import shutil, tempfile, suds + import logging, requests + import atexit, signal diff --git a/fence-agents.spec b/fence-agents.spec index e89d9e6..1fb2c19 100644 --- a/fence-agents.spec +++ b/fence-agents.spec @@ -13,48 +13,119 @@ Name: fence-agents Summary: Set of unified programs capable of host isolation ("fencing") Version: 4.13.1 -Release: 3%{?alphatag:.%{alphatag}}%{?dist} +Release: 4%{?alphatag:.%{alphatag}}%{?dist} License: GPL-2.0-or-later AND LGPL-2.0-or-later URL: https://github.com/ClusterLabs/fence-agents Source0: https://fedorahosted.org/releases/f/e/fence-agents/%{name}-%{version}.tar.gz +### HA support requirements-*.txt ### +Source100: requirements-common.txt +Source101: requirements-aliyun.txt +Source102: requirements-aws.txt +Source103: requirements-azure.txt +Source104: requirements-google.txt +### HA support libs/utils ### +### BEGIN ### +## pip download --no-binary :all: -r requirements-.txt +# common +Source1000: pycurl-7.45.3.tar.gz +Source1001: suds-community-1.1.2.tar.gz +# aliyun +Source1100: aliyun-python-sdk-ecs-4.24.71.tar.gz +Source1101: aliyun-python-sdk-core-2.14.0.tar.gz +Source1102: jmespath-0.10.0.tar.gz +# aliyun-cli +Source1150: aliyun-cli-3.0.198.tar.gz +## TAG=$(git log --pretty="format:%h" -n 1) +## distdir="aliyun-openapi-meta-${TAG}" +## TARFILE="${distdir}.tar.gz" +## rm -rf $TARFILE $distdir +## git archive --prefix=$distdir/ HEAD | gzip > $TARFILE +Source1151: aliyun-openapi-meta-5cf98b660.tar.gz +## go mod vendor +Source1152: aliyun-cli-go-vendor.tar.gz +# awscli +Source1200: s3transfer-0.10.0.tar.gz +# aws +Source1300: boto3-1.34.47.tar.gz +Source1301: botocore-1.34.47.tar.gz +# azure +Source1400: azure-mgmt-compute-30.5.0.tar.gz +Source1401: azure-mgmt-network-25.3.0.tar.gz +Source1402: azure-identity-1.15.0.tar.gz +Source1403: msrestazure-0.6.4.tar.gz +Source1404: adal-1.2.7.tar.gz +Source1405: azure-common-1.1.28.zip +Source1406: azure-core-1.30.0.tar.gz +Source1407: azure-mgmt-core-1.4.0.zip +Source1408: isodate-0.6.1.tar.gz +Source1409: msal-1.27.0.tar.gz +Source1410: msal-extensions-1.1.0.tar.gz +Source1411: msrest-0.7.1.zip +Source1412: certifi-2024.2.2.tar.gz +Source1413: PyJWT-2.8.0.tar.gz +Source1414: portalocker-2.8.2.tar.gz +# google +Source1500: google-api-python-client-1.12.8.tar.gz +Source1501: chardet-3.0.4.tar.gz +Source1502: google-api-core-1.34.1.tar.gz +Source1503: google-auth-2.28.1.tar.gz +Source1504: google-auth-httplib2-0.2.0.tar.gz +Source1505: httplib2-0.22.0.tar.gz +Source1506: uritemplate-3.0.1.tar.gz +Source1507: cachetools-5.3.2.tar.gz +Source1508: googleapis-common-protos-1.62.0.tar.gz +Source1509: pyasn1_modules-0.3.0.tar.gz +## NEEEDED FOR GOOGLE AUTH +## INFO: pip is looking at multiple versions of google-auth to determine which version is compatible with other requirements. This could take a while. +## ERROR: Could not find a version that satisfies the requirement rsa<5,>=3.1.4 (from google-auth) (from versions: none) +Source1510: rsa-4.9.tar.gz +# kubevirt +## pip download --no-binary :all: openshift +Source1600: openshift-0.13.2.tar.gz +Source1601: kubernetes-29.0.0.tar.gz +Source1602: python-string-utils-1.0.0.tar.gz +Source1603: websocket-client-1.7.0.tar.gz +### END -%if 0%{?rhel} == 9 -%ifarch ppc64le s390x -%define rhel9_ppc64le_s390x 1 +Patch0: build-pythonpath.patch +Patch1: ha-cloud-support-aliyun.patch +Patch2: ha-cloud-support-aws.patch +Patch3: ha-cloud-support-azure.patch +Patch4: ha-cloud-support-google.patch +Patch5: bundled-kubevirt.patch +Patch6: bundled-pycurl.patch +Patch7: bundled-suds.patch + +%global supportedagents amt_ws apc apc_snmp bladecenter brocade cisco_mds cisco_ucs compute drac5 eaton_snmp emerson eps evacuate hpblade ibmblade ibm_powervs ibm_vpc ifmib ilo ilo_moonshot ilo_mp ilo_ssh intelmodular ipdu ipmilan kdump kubevirt lpar mpath redfish rhevm rsa rsb sbd scsi vmware_rest vmware_soap wti +%ifarch x86_64 +%global testagents virsh heuristics_ping aliyun aws azure_arm gce openstack virt %endif +%ifarch ppc64le +%global testagents virsh heuristics_ping openstack +%endif +%ifarch s390x +%global testagents virsh zvm heuristics_ping +%endif +%ifnarch x86_64 ppc64le s390x +%global testagents virsh heuristics_ping %endif # skipped: pve, raritan, rcd-serial, virsh %global allfenceagents %(cat < 1500 -BuildRequires: python3-suds-community -%else -BuildRequires: python3-suds -%endif +# dependencies for building HA support subpackages +BuildRequires: python3-pip python3-wheel python3-setuptools python-poetry-core libcurl-devel golang go-rpm-macros git +# dependencies for HA support subpackages +BuildRequires: python3-pexpect python3-ptyprocess python3-colorama python3-docutils python3-pyyaml python3-jmespath python3-pyasn1 python3-dateutil python3-urllib3 python3-six python3-cryptography python3-cffi python3-requests python3-requests-oauthlib python3-typing-extensions python3-packaging python3-charset-normalizer python3-idna python3-oauthlib python3-pycparser python3-pyroute2 python3-protobuf python3-pyparsing + %if 0%{?fedora} || 0%{?centos} || 0%{?rhel} BuildRequires: openwsman-python3 -%if ! %{defined rhel9_ppc64le_s390x} -BuildRequires: python3-boto3 -%endif %else -BuildRequires: python3-openwsman python3-boto3 +BuildRequires: python3-openwsman %endif # fence-virt @@ -155,20 +207,72 @@ sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac %build export PYTHON="%{__python3}" +# aliyun-cli +tar zxf %SOURCE1150 +pushd aliyun-cli-* +git init +rmdir aliyun-openapi-meta +tar zxf %SOURCE1151 +tar zxf %SOURCE1152 +mv aliyun-openapi-meta-* aliyun-openapi-meta +TMPLDFLAGS="$LDFLAGS" +%define aliyun_cli_version 3.0.198 +export LDFLAGS="-X github.com/aliyun/aliyun-cli/cli.Version=%{aliyun_cli_version}" +go build %{gobuildflags} -mod=vendor -o out/aliyun main/main.go +export LDFLAGS="$TMPLDFLAGS" +unset TMPLDFLAGS +mkdir -p ../support/aliyun/aliyun-cli +install -m 0755 out/aliyun ../support/aliyun/aliyun-cli/ +popd + +# support libs +%ifarch x86_64 +LIBS="%{_sourcedir}/requirements-*.txt" +%endif +%ifnarch x86_64 +LIBS="%{_sourcedir}/requirements-common.txt" +%endif +for x in $LIBS; do + %{__python3} -m pip install --no-build-isolation --root support/$(echo $x | sed -E "s/.*requirements-(.*).txt/\1/") --prefix "" --no-index --find-links %{_sourcedir} -r $x +done + +# kubevirt +%{__python3} -m pip install --no-build-isolation --root support/kubevirt --prefix "" --no-index --find-links %{_sourcedir} openshift suds-community +rm -rf kubevirt/rsa* + +for dir in support/*; do + rm -rf $dir/bin +done + +# avoid buildtime errors +%{__python3} -m pip install --no-build-isolation --user --no-index --find-links %{_sourcedir} suds-community + +sed -i -e "s/#PYTHON3_VERSION#/%{python3_version}/" lib/*.py agents/*/*.py + +export PYTHONPATH="%{_builddir}/%{name}-%{version}/support/common/lib/python%{python3_version}/site-packages:%{_builddir}/%{name}-%{version}/support/common/lib64/python%{python3_version}/site-packages:%{_builddir}/%{name}-%{version}/support/aliyun/lib/python%{python3_version}/site-packages:%{_builddir}/%{name}-%{version}/support/aws/lib/python%{python3_version}/site-packages:%{_builddir}/%{name}-%{version}/support/azure/lib/python%{python3_version}/site-packages:%{_builddir}/%{name}-%{version}/support/google/lib/python%{python3_version}/site-packages:%{_builddir}/%{name}-%{version}/support/kubevirt/lib/python%{python3_version}/site-packages:%{_builddir}/%{name}-%{version}/support/kubevirt/lib64/python%{python3_version}/site-packages" ./autogen.sh %{configure} \ %if %{defined _tmpfilesdir} SYSTEMD_TMPFILES_DIR=%{_tmpfilesdir} \ - --with-fencetmpdir=/run/fence-agents + --with-fencetmpdir=/run/fence-agents \ %endif + --with-agents='%{supportedagents} %{testagents}' CFLAGS="$(echo '%{optflags}')" make %{_smp_mflags} %install rm -rf %{buildroot} + +# support libs +mkdir -p %{buildroot}%{_usr}/lib/%{name} +mv support %{buildroot}%{_usr}/lib/%{name} + +export PYTHONPATH="%{buildroot}%{_usr}/lib/%{name}/support/common/lib/python%{python3_version}/site-packages:%{buildroot}%{_usr}/lib/%{name}/support/common/lib64/python%{python3_version}/site-packages:%{buildroot}%{_usr}/lib/%{name}/support/aliyun/lib/python%{python3_version}/site-packages:%{buildroot}%{_usr}/lib/%{name}/support/aws/lib/python%{python3_version}/site-packages:%{buildroot}%{_usr}/lib/%{name}/support/azure/lib/python%{python3_version}/site-packages:%{buildroot}%{_usr}/lib/%{name}/support/google/lib/python%{python3_version}/site-packages:%{buildroot}%{_usr}/lib/%{name}/support/kubevirt/lib/python%{python3_version}/site-packages:%{buildroot}%{_usr}/lib/%{name}/support/kubevirt/lib64/python%{python3_version}/site-packages" make install DESTDIR=%{buildroot} mkdir -p %{buildroot}/%{_unitdir}/ +%ifarch x86_64 install -m 0644 agents/virt/fence_virtd.service %{buildroot}/%{_unitdir}/ +%endif # bytecompile Python source code in a non-standard location %if 0%{?fedora} || 0%{?centos} || 0%{?rhel} %py_byte_compile %{__python3} %{buildroot}%{_datadir}/fence @@ -222,10 +326,11 @@ network, storage, or similar. They operate through a unified interface (calling conventions) devised for the original Red Hat clustering solution. %package common -License: GPL-2.0-or-later AND LGPL-2.0-or-later +License: GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-3.0-or-later AND LGPL-2.1-or-later AND MIT Summary: Common base for Fence Agents -Requires: python3-pexpect python3-pycurl -BuildArch: noarch +Requires: python3-pexpect python3-ptyprocess +Provides: bundled(python3-pycurl) = 7.45.3 +Provides: bundled(python3-suds-community) = 1.1.2 %description common A collection of executables to handle isolation ("fencing") of possibly misbehaving hosts by the means of remote power management, blocking @@ -237,8 +342,6 @@ This package contains support files including the Python fencing library. %{_datadir}/fence %exclude %{_datadir}/fence/azure_fence.* %exclude %{_datadir}/fence/__pycache__/azure_fence.* -%exclude %{_datadir}/fence/XenAPI.* -%exclude %{_datadir}/fence/__pycache__/XenAPI.* %{_datadir}/cluster %exclude %{_datadir}/cluster/fence_mpath_check* %exclude %{_datadir}/cluster/fence_scsi_check* @@ -253,11 +356,67 @@ This package contains support files including the Python fencing library. %else %dir %attr (1755, root, root) %{_var}/run/%{name} %endif +%dir %{_usr}/lib/%{name} +%{_usr}/lib/%{name}/support/common + +%ifarch x86_64 +%package -n ha-cloud-support +License: GPL-2.0-or-later AND LGPL-2.0-or-later AND Apache-2.0 AND MIT AND BSD-2-Clause AND BSD-3-Clause AND MPL-2.0 AND LGPL-2.1-or-later AND ISC +Summary: Support libraries for HA Cloud agents +Requires: python3-colorama python3-docutils python3-pyyaml python3-jmespath python3-pyasn1 python3-dateutil python3-urllib3 python3-six python3-cryptography python3-cffi python3-requests python3-requests-oauthlib python3-typing-extensions python3-packaging python3-charset-normalizer python3-idna python3-oauthlib python3-pycparser python3-pyroute2 python3-protobuf python3-pyparsing +Provides: bundled(python3-aliyun-python-sdk-ecs) = 4.24.71 +Provides: bundled(python3-aliyun-python-sdk-core) = 2.14.0 +Provides: bundled(python3-jmespath) = 0.10.0 +Provides: bundled(aliyun-cli) = 3.0.198 +Provides: bundled(aliyun-openapi-meta) = 5cf98b660 +Provides: bundled(python3-s3transfer) = 0.10.0 +Provides: bundled(python3-boto3) = 1.34.47 +Provides: bundled(python3-botocore) = 1.34.47 +Provides: bundled(python3-azure-mgmt-compute) = 30.5.0 +Provides: bundled(python3-azure-mgmt-network) = 25.3.0 +Provides: bundled(python3-azure-identity) = 1.15.0 +Provides: bundled(python3-msrestazure) = 0.6.4 +Provides: bundled(python3-adal) = 1.2.7 +Provides: bundled(python3-azure-common) = 1.1.28.zip +Provides: bundled(python3-azure-core) = 1.30.0 +Provides: bundled(python3-azure-mgmt-core) = 1.4.0.zip +Provides: bundled(python3-isodate) = 0.6.1 +Provides: bundled(python3-msal) = 1.27.0 +Provides: bundled(python3-msal-extensions) = 1.1.0 +Provides: bundled(python3-msrest) = 0.7.1.zip +Provides: bundled(python3-certifi) = 2024.2.2 +Provides: bundled(python3-PyJWT) = 2.8.0 +Provides: bundled(python3-portalocker) = 2.8.2 +Provides: bundled(python3-google-api-python-client) = 1.12.8 +Provides: bundled(python3-chardet) = 3.0.4 +Provides: bundled(python3-google-api-core) = 1.34.1 +Provides: bundled(python3-google-auth) = 2.28.1 +Provides: bundled(python3-google-auth-httplib2) = 0.2.0 +Provides: bundled(python3-httplib2) = 0.22.0 +Provides: bundled(python3-uritemplate) = 3.0.1 +Provides: bundled(python3-cachetools) = 5.3.2 +Provides: bundled(python3-googleapis-common-protos) = 1.62.0 +Provides: bundled(python3-pyasn1_modules) = 0.3.0 +Provides: bundled(python3-rsa) = 4.9 +%description -n ha-cloud-support +Support libraries for Fence Agents. +%files -n ha-cloud-support +%dir %{_usr}/lib/%{name} +%{_usr}/lib/%{name}/support +%exclude %{_usr}/lib/%{name}/support/common +%exclude %{_usr}/lib/%{name}/support/kubevirt +%endif %package all License: GPL-2.0-or-later AND LGPL-2.0-or-later AND Apache-2.0 Summary: Set of unified programs capable of host isolation ("fencing") Requires: %{allfenceagents} +%ifarch ppc64le +Requires: fence-agents-lpar >= %{version}-%{release} +%endif +%ifarch s390x +Requires: fence-agents-zvm >= %{version}-%{release} +%endif Provides: fence-agents = %{version}-%{release} Obsoletes: fence-agents < 3.1.13 %description all @@ -274,6 +433,7 @@ License: GPL-2.0-or-later AND LGPL-2.0-or-later AND Apache-2.0 AND BSD-3-Clause Group: System Environment/Base Summary: Fence agent for Alibaba Cloud (Aliyun) Requires: fence-agents-common >= %{version}-%{release} +Requires: ha-cloud-support = %{version}-%{release} Requires: python3-jmespath >= 0.9.0 Obsoletes: %{name} < %{version}-%{release} %description aliyun @@ -284,34 +444,6 @@ The fence-agents-aliyun package contains a fence agent for Alibaba Cloud (Aliyun %{_mandir}/man8/fence_aliyun.8* %endif -%package alom -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for SUN ALOM -Requires: openssh-clients -%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} -Recommends: telnet -%endif -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description alom -Fence agent for SUN ALOM. -%files alom -%{_sbindir}/fence_alom -%{_mandir}/man8/fence_alom.8* - -%package amt -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for Intel AMT devices -Requires: amtterm -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description amt -Fence agent for AMT compatibile devices that are accessed via -3rd party software. -%files amt -%{_sbindir}/fence_amt -%{_mandir}/man8/fence_amt.8* - %package amt-ws License: Apache-2.0 Summary: Fence agent for Intel AMT (WS-Man) devices @@ -357,33 +489,26 @@ Fence agents for APC devices that are accessed via the SNMP protocol. %{_sbindir}/fence_tripplite_snmp %{_mandir}/man8/fence_tripplite_snmp.8* +%ifarch x86_64 %package aws License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for Amazon AWS Requires: fence-agents-common = %{version}-%{release} -Requires: python3-boto3 -BuildArch: noarch +Requires: ha-cloud-support = %{version}-%{release} Obsoletes: fence-agents < 3.1.13 %description aws Fence agent for Amazon AWS instances. %files aws %{_sbindir}/fence_aws %{_mandir}/man8/fence_aws.8* +%endif +%ifarch x86_64 %package azure-arm License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for Azure Resource Manager Requires: fence-agents-common = %{version}-%{release} -%if 0%{?fedora} > 34 -Requires: python3-azure-common -Requires: python3-azure-identity -Requires: python3-azure-mgmt-compute -Requires: python3-azure-mgmt-network -Requires: python3-msrestazure -%else -Requires: python3-azure-sdk -%endif -BuildArch: noarch +Requires: ha-cloud-support = %{version}-%{release} Obsoletes: fence-agents < 3.1.13 %description azure-arm Fence agent for Azure Resource Manager instances. @@ -394,6 +519,7 @@ Fence agent for Azure Resource Manager instances. %{_datadir}/fence/__pycache__/azure_fence.* %endif %{_mandir}/man8/fence_azure_arm.8* +%endif %package bladecenter License: GPL-2.0-or-later AND LGPL-2.0-or-later @@ -426,17 +552,6 @@ Fence agent for Brocade devices that are accessed via telnet or SSH. %{_sbindir}/fence_brocade %{_mandir}/man8/fence_brocade.8* -%package cdu -License: GPL-3.0-only -Summary: Fence agent for a Sentry Switch CDU -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description cdu -Fence agent for Sentry Switch CDU power switch. -%files cdu -%{_sbindir}/fence_cdu -%{_mandir}/man8/fence_cdu.8* - %package cisco-mds License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for Cisco MDS 9000 series @@ -453,7 +568,6 @@ via the SNMP protocol. %package cisco-ucs License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for Cisco UCS series -Requires: python3-pycurl Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description cisco-ucs @@ -468,9 +582,8 @@ via the SNMP protocol. License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for Nova compute nodes Requires: python3-requests -Requires: python3-novaclient Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch +Obsoletes: ha-openstack-support <= %{version}-%{release} %description compute Fence agent for Nova compute nodes. %files compute @@ -480,42 +593,6 @@ Fence agent for Nova compute nodes. %{_mandir}/man8/fence_evacuate.8* %endif -%package cyberpower-ssh -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for CyberPower network PDUs -Requires: openssh-clients -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description cyberpower-ssh -%files cyberpower-ssh -%{_sbindir}/fence_cyberpower_ssh -%{_mandir}/man8/fence_cyberpower_ssh.8* - -%package docker -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for Docker -Requires: python3-pycurl -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description docker -Fence agent for Docker images that are accessed over HTTP. -%files docker -%{_sbindir}/fence_docker -%{_mandir}/man8/fence_docker.8* - -%package drac -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for Dell DRAC -Requires: telnet -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description drac -Fence agent for Dell DRAC IV series devices that are accessed -via telnet. -%files drac -%{_sbindir}/fence_drac -%{_mandir}/man8/fence_drac.8* - %package drac5 License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for Dell DRAC 5 @@ -545,30 +622,6 @@ via the SNMP protocol. %{_sbindir}/fence_eaton_snmp %{_mandir}/man8/fence_eaton_snmp.8* -%package eaton-ssh -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for Eaton network power switches -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description eaton-ssh -Fence agent for Eaton network power switches that are accessed -via the serial protocol tunnel over SSH. -%files eaton-ssh -%{_sbindir}/fence_eaton_ssh -%{_mandir}/man8/fence_eaton_ssh.8* - -%package ecloud -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for eCloud and eCloud VPC -Requires: python3-requests -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description ecloud -Fence agent for eCloud and eCloud VPC from ANS Group Limited -%files ecloud -%{_sbindir}/fence_ecloud -%{_mandir}/man8/fence_ecloud.8* - %package emerson License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for Emerson devices (SNMP) @@ -593,34 +646,19 @@ via the HTTP(s) protocol. %{_sbindir}/fence_eps %{_mandir}/man8/fence_eps.8* +%ifarch x86_64 %package gce License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for GCE (Google Cloud Engine) Requires: fence-agents-common = %{version}-%{release} -%if 0%{?fedora} || 0%{?centos} || 0%{?rhel} -Requires: python3-google-api-client -%else -Requires: python3-google-api-python-client -%endif -BuildArch: noarch +Requires: ha-cloud-support = %{version}-%{release} Obsoletes: fence-agents < 3.1.13 %description gce Fence agent for GCE (Google Cloud Engine) instances. %files gce %{_sbindir}/fence_gce %{_mandir}/man8/fence_gce.8* - -%package hds-cb -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for Hitachi Compute Blade systems -Requires: telnet -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description hds-cb -Fence agent for Hitachi Compute Blades that are accessed via telnet. -%files hds-cb -%{_sbindir}/fence_hds_cb -%{_mandir}/man8/fence_hds_cb.8* +%endif %package heuristics-ping License: GPL-2.0-or-later AND LGPL-2.0-or-later @@ -664,19 +702,6 @@ via the SNMP protocol. %{_sbindir}/fence_ibmblade %{_mandir}/man8/fence_ibmblade.8* -%package ibmz -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for IBM z LPARs -Requires: python3-requests -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description ibmz -Fence agent for IBM z LPARs that are accessed via the HMC -Web Services REST API. -%files ibmz -%{_sbindir}/fence_ibmz -%{_mandir}/man8/fence_ibmz.8* - %package ibm-powervs License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for IBM PowerVS @@ -826,19 +851,6 @@ Fence agents for devices with IPMI interface. %{_sbindir}/fence_imm %{_mandir}/man8/fence_imm.8* -%ifarch x86_64 ppc64le -%package ironic -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for OpenStack's Ironic (Bare Metal as a service) -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description ironic -Fence agent for OpenStack's Ironic (Bare Metal as a service) service. -%files ironic -%{_sbindir}/fence_ironic -%{_mandir}/man8/fence_ironic.8* -%endif - %package kdump License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for use with kdump crash recovery service @@ -853,31 +865,21 @@ Fence agent for use with kdump crash recovery service. %{_mandir}/man8/fence_kdump_send.8* %package kubevirt -License: GPL-2.0-or-later AND LGPL-2.0-or-later +License: GPL-2.0-or-later AND LGPL-2.0-or-later AND Apache-2.0 AND MIT Summary: Fence agent for KubeVirt platform -Requires: python3-openshift >= 0.12.1 Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch +Requires: python3-pyyaml python3-pyasn1 python3-dateutil python3-urllib3 python3-six python3-requests python3-requests-oauthlib python3-charset-normalizer python3-oauthlib +Provides: bundled(python3-openshift) = 0.13.2 +Provides: bundled(python3-kubernetes) = 29.0.0 +Provides: bundled(python3-python-string-utils) = 1.0.0 +Provides: bundled(python3-websocket-client) = 1.7.0 %description kubevirt Fence agent for KubeVirt platform. %files kubevirt %{_sbindir}/fence_kubevirt %{_mandir}/man8/fence_kubevirt.8* - -%package ldom -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for Sun LDom virtual machines -Requires: openssh-clients -%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} -Recommends: telnet -%endif -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description ldom -Fence agent for APC devices that are accessed via telnet or SSH. -%files ldom -%{_sbindir}/fence_ldom -%{_mandir}/man8/fence_ldom.8* +# bundled libraries +%{_usr}/lib/%{name}/support/kubevirt %package lpar License: GPL-2.0-or-later AND LGPL-2.0-or-later @@ -908,29 +910,13 @@ Device Mapper Multipath. %{_datadir}/cluster/fence_mpath_check* %{_mandir}/man8/fence_mpath.8* -%package netio -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for Koukaam NETIO devices -Requires: openssh-clients -%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} -Recommends: telnet -%endif -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description netio -Fence agent for Koukaam NETIO devices that are accessed -via telnet or SSH. -%files netio -%{_sbindir}/fence_netio -%{_mandir}/man8/fence_netio.8* - %ifarch x86_64 ppc64le %package openstack License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for OpenStack's Nova service Requires: python3-requests Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch +Obsoletes: ha-openstack-support <= %{version}-%{release} %description openstack Fence agent for OpenStack's Nova service. %files openstack @@ -938,59 +924,6 @@ Fence agent for OpenStack's Nova service. %{_mandir}/man8/fence_openstack.8* %endif -%package ovh -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for OVH provider -%if 0%{?suse_version} > 1500 -Requires: python3-suds-community -%else -Requires: python3-suds -%endif -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description ovh -Fence agent for OVH hosting provider. -%files ovh -%{_sbindir}/fence_ovh -%{_mandir}/man8/fence_ovh.8* - -# skipped from allfenceagents -%package pve -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for PVE -Requires: python3-pycurl -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description pve -Fence agent for PVE. -%files pve -%{_sbindir}/fence_pve -%{_mandir}/man8/fence_pve.8* - -# skipped from allfenceagents -%package raritan -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for Raritan Dominion PX -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description raritan -Fence agent for Raritan Dominion PX. -%files raritan -%{_sbindir}/fence_raritan -%{_mandir}/man8/fence_raritan.8* - -# skipped from allfenceagents -%package rcd-serial -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for RCD serial -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description rcd-serial -Fence agent for RCD serial. -%files rcd-serial -%{_sbindir}/fence_rcd_serial -%{_mandir}/man8/fence_rcd_serial.8* - %package redfish License: GPL-2.0-or-later AND LGPL-2.0-or-later Group: System Environment/Base @@ -1048,18 +981,6 @@ via telnet or SSH. %{_sbindir}/fence_rsb %{_mandir}/man8/fence_rsb.8* -%package sanbox2 -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for QLogic SANBox2 FC switches -Requires: telnet -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description sanbox2 -Fence agent for QLogic SANBox2 switches that are accessed via telnet. -%files sanbox2 -%{_sbindir}/fence_sanbox2 -%{_mandir}/man8/fence_sanbox2.8* - %package sbd License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for SBD (storage-based death) @@ -1086,18 +1007,6 @@ Fence agent for SCSI persistent reservations. %{_datadir}/cluster/fence_scsi_check_hardreboot %{_mandir}/man8/fence_scsi.8* -%package vbox -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for VirtualBox -Requires: openssh-clients -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description vbox -Fence agent for VirtualBox dom0 accessed via SSH. -%files vbox -%{_sbindir}/fence_vbox -%{_mandir}/man8/fence_vbox.8* - # skipped from allfenceagents %package virsh License: GPL-2.0-or-later AND LGPL-2.0-or-later @@ -1111,18 +1020,6 @@ Fence agent for virtual machines that are accessed via SSH. %{_sbindir}/fence_virsh %{_mandir}/man8/fence_virsh.8* -%package vmware -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for VMWare with VI Perl Toolkit or vmrun -Requires: python3-pexpect -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description vmware -Fence agent for VMWare accessed with VI Perl Toolkit or vmrun. -%files vmware -%{_sbindir}/fence_vmware -%{_mandir}/man8/fence_vmware.8* - %package vmware-rest License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for VMWare with REST API @@ -1138,11 +1035,6 @@ Fence agent for VMWare with REST API. %package vmware-soap License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for VMWare with SOAP API v4.1+ -%if 0%{?suse_version} > 1500 -Requires: python3-suds-community -%else -Requires: python3-suds -%endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description vmware-soap @@ -1151,18 +1043,6 @@ Fence agent for VMWare with SOAP API v4.1+. %{_sbindir}/fence_vmware_soap %{_mandir}/man8/fence_vmware_soap.8* -%package vmware-vcloud -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for VMWare vCloud Director -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -Obsoletes: fence-agents < 3.1.13 -%description vmware-vcloud -Fence agent for VMWare vCloud Director. -%files vmware-vcloud -%{_sbindir}/fence_vmware_vcloud -%{_mandir}/man8/fence_vmware_vcloud.8* - %package wti License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for WTI Network power switches @@ -1179,35 +1059,21 @@ via telnet or SSH. %{_sbindir}/fence_wti %{_mandir}/man8/fence_wti.8* -%package xenapi -License: GPL-2.0-or-later AND LGPL-2.0-or-later -Summary: Fence agent for Citrix XenServer over XenAPI -Requires: python3-pexpect -Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch -%description xenapi -Fence agent for Citrix XenServer accessed over XenAPI. -%files xenapi -%{_sbindir}/fence_xenapi -%{_datadir}/fence/XenAPI.py* -%if 0%{?fedora} || 0%{?centos} || 0%{?rhel} -%{_datadir}/fence/__pycache__/XenAPI.* -%endif -%{_mandir}/man8/fence_xenapi.8* - +%ifarch s390x %package zvm License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Fence agent for IBM z/VM over IP Requires: fence-agents-common = %{version}-%{release} -BuildArch: noarch %description zvm Fence agent for IBM z/VM over IP. %files zvm %{_sbindir}/fence_zvmip %{_mandir}/man8/fence_zvmip.8* +%endif # fence-virt +%ifarch x86_64 %package -n fence-virt Summary: A pluggable fencing framework for virtual machines Requires(post): systemd-sysv %{systemd_units} @@ -1285,8 +1151,13 @@ locations to allow for non-local VMs to be fenced when VMs are located on corosync cluster nodes. %files -n fence-virtd-cpg %{_libdir}/fence-virt/cpg.so +%endif %changelog +* Mon Mar 4 2024 Oyvind Albrigtsen - 4.13.1-4 +- Bundled missing libraries + Resolves: RHEL-25954 + * Wed Jan 24 2024 Fedora Release Engineering - 4.13.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild @@ -1295,276 +1166,3 @@ are located on corosync cluster nodes. * Tue Oct 17 2023 Oyvind Albrigtsen - 4.13.1-1 - new upstream release - -* Tue Oct 10 2023 Oyvind Albrigtsen - 4.13.0-1 -- new upstream release - -* Wed Jul 19 2023 Fedora Release Engineering - 4.12.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Wed Mar 15 2023 Antonio Torres - 4.12.1-2 -- Migrate to SPDX license - -* Fri Jan 27 2023 Oyvind Albrigtsen - 4.12.1-1 -- new upstream release - -* Thu Jan 19 2023 Fedora Release Engineering - 4.12.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Mon Jan 9 2023 Oyvind Albrigtsen - 4.12.0-1 -- new upstream release - -* Thu Jul 21 2022 Fedora Release Engineering - 4.11.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Thu Jan 20 2022 Fedora Release Engineering - 4.11.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Thu Jan 6 2022 Oyvind Albrigtsen - 4.11.0-2 -- spec: dont use commas in license - Resolves: rhbz#2036072 - -* Wed Nov 24 2021 Oyvind Albrigtsen - 4.11.0-1 -- new upstream release - -* Wed Jul 21 2021 Fedora Release Engineering - 4.10.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Thu Jul 15 2021 Oyvind Albrigtsen - 4.10.0-2 -- new upstream release - -* Wed Jul 14 2021 Major Hayden - 4.9.0-2 -- Use new Azure Python SDK packages for F35+. - -* Fri Jun 4 2021 Oyvind Albrigtsen - 4.9.0-1 -- new upstream release - -* Thu Feb 11 2021 Oyvind Albrigtsen - 4.7.1-3 -- add aliyun subpackage -- fence-agents-mpath: add missing fence_mpath_check* - -* Mon Feb 8 2021 Oyvind Albrigtsen - 4.7.1-1 -- new upstream release - -* Tue Jan 26 2021 Fedora Release Engineering - 4.7.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Dec 9 2020 Oyvind Albrigtsen - 4.7.0-1 -- new upstream release - -* Sat Aug 01 2020 Fedora Release Engineering - 4.5.2-4 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 4.5.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jan 28 2020 Fedora Release Engineering - 4.5.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Oct 23 2019 Oyvind Albrigtsen - 4.5.2-1 -- new upstream release -- added openstack subpackage -- spec improvements based on upstream spec-file - -* Tue Sep 24 2019 Oyvind Albrigtsen - 4.5.1-1 -- new upstream release - -* Thu Jul 25 2019 Fedora Release Engineering - 4.4.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Tue Jun 4 2019 Oyvind Albrigtsen - 4.4.0-1 -- new upstream release - -* Thu Jan 31 2019 Fedora Release Engineering - 4.3.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Wed Jan 16 2019 Oyvind Albrigtsen - 4.3.3-2 -- fence-agents-scsi: add missing fence-agents-common dependency - -* Mon Dec 3 2018 Oyvind Albrigtsen - 4.3.3-1 -- new upstream release - -* Fri Oct 5 2018 Oyvind Albrigtsen - 4.3.0-1 -- new upstream release - -* Wed Sep 19 2018 Oyvind Albrigtsen - 4.2.1-6 -- Fix missing fence-agents-all subpackage after spec improvements - -* Wed Aug 22 2018 Oyvind Albrigtsen - 4.2.1-5 -- Python 3: fix has_key() issues - -* Mon Aug 20 2018 Jan Pokorný - 4.2.1-4 -- mark non-compiled packages properly as noarch, restructure excludes -- move azure_fence.py and XenAPI.py to respective subpackages from -common -- sanitize allfenceagents internally defined enumeration -- sanitize BuildRequires with respect to packaging guidelines -- bytecompile native Python modules and ship these bytecodes properly -- only refer to Python binary symbolically, drop buildroot cleanup -- cleanup package summaries/descriptions, order agent subpackages properly - -* Fri Jul 13 2018 Fedora Release Engineering - 4.2.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Mon Jun 18 2018 Oyvind Albrigtsen - 4.2.1-2 -- fence_vmware_soap: fix python3-suds issue - -* Thu May 31 2018 Oyvind Albrigtsen - 4.2.1-1 -- new upstream release - -* Fri May 25 2018 Oyvind Albrigtsen - 4.2.0-2 -- fence_scsi: fix Python 3 encoding issue - -* Thu May 17 2018 Oyvind Albrigtsen - 4.2.0-1 -- new upstream release - -* Thu Feb 15 2018 Oyvind Albrigtsen - 4.1.1-1 -- new upstream release -- fence_vmware_soap / fence_ovh: use Python 2 till python3-suds bug - is fixed - -* Fri Feb 9 2018 Oyvind Albrigtsen - 4.1.0-2 -- new upstream release - -* Wed Feb 07 2018 Fedora Release Engineering - 4.0.24-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Jan 11 2018 Iryna Shcherbina - 4.0.24-14 -- Cleanup no longer needed Python 2 dependencies - -* Tue Nov 07 2017 Troy Dawson - 4.0.24-13 -- Cleanup spec file conditionals - -* Tue Aug 29 2017 Oyvind Albrigtsen - 4.0.24-12 -- fence-agents-common: remove fence_scsi_check files -- fence-scsi: add "fence_scsi_check_hardreboot" - -* Thu Aug 3 2017 Oyvind Albrigtsen - 4.0.24-10 -- fence_zvm: fix "uintptr_t" undeclared - -* Thu Aug 3 2017 Oyvind Albrigtsen - 4.0.24-9 -- Fix encoding for pexpect with Python 3.6 - Resolves: rhbz#1473908 - -* Wed Aug 02 2017 Fedora Release Engineering - 4.0.24-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 4.0.24-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Fri Feb 10 2017 Fedora Release Engineering - 4.0.24-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Fri Dec 23 2016 Oyvind Albrigtsen - 4.0.24-5 -- Fix to build in Python 3 only environment - -* Mon Dec 19 2016 Miro Hrončok - 4.0.24-4 -- Rebuild for Python 3.6 - -* Wed Sep 21 2016 Marek Grac - 4.0.24-4 -- Remove Obsoletes that are no longer valid - -* Fri Sep 2 2016 Oyvind Albrigtsen - 4.0.24-2 -- fence-agents-common: add dependency on python3-pycurl - -* Fri Aug 26 2016 Oyvind Albrigtsen - 4.0.24-1 -- new upstream release - -* Wed Jul 13 2016 Oyvind Albrigtsen - 4.0.23-2 -- fix build issue on s390 - -* Tue Jul 12 2016 Oyvind Albrigtsen - 4.0.23-1 -- new upstream release -- new package fence-agents-amt-ws -- new package fence-agents-compute -- new package fence-agents-drac -- new package fence-agents-hds-cb -- new package fence-agents-mpath -- new package fence-agents-sanbox2 -- new package fence-agents-sbd -- new package fence-agents-vbox -- new package fence-agents-vmware -- new package fence-agents-xenapi - -* Wed Feb 03 2016 Fedora Release Engineering - 4.0.20-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Aug 11 2015 Marek Grac - 4.0.20-1 -- new upstream release -- new package fence-agents-rcd-serial - -* Wed Jun 17 2015 Fedora Release Engineering - 4.0.16-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Thu Mar 05 2015 Marek Grac - 4.0.16-1 -- new upstream release - -* Mon Feb 09 2015 Marek Grac - 4.0.15-1 -- new upstream release - -* Thu Jan 08 2015 Marek Grac - 4.0.14-1 -- new upstream release -- new packages fence-agents-zvm and fence-agents-emerson - -* Thu Oct 16 2014 Marek Grac - 4.0.12-1 -- new upstream release -- new package fence-agents-ilo-ssh - -* Wed Aug 27 2014 Marek Grac - 4.0.10 -- new upstream release -- new package fence-agents-ilo-moonshot - -* Sat Jun 07 2014 Fedora Release Engineering - 4.0.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Fri May 16 2014 Marek Grac - 4.0.9 -- new upstream release -- new package fence-agents-pve - -* Mon Apr 07 2014 Marek Grac - 4.0.8-1 -- new upstream release -- new package fence-agents-raritan - -* Wed Feb 26 2014 Marek Grac - 4.0.7-3 -- requires a specific version of fence-agents-common - -* Mon Feb 17 2014 Marek Grac - 4.0.7-2 -- new upstream release -- changed dependancy from nss/nspr to gnutls-utils - -* Fri Jan 10 2014 Marek Grac - 4.0.4-4 -- new upstream release -- new package fence-agents-amt - -* Mon Oct 07 2013 Marek Grac - 4.0.4-3 -- new upstream release -- new package fence-agents-netio - -* Tue Sep 03 2013 Marek Grac - 4.0.3-1 -- new upstream release -- new packages fence-agents-brocade and fence-agents-ovh - -* Sat Aug 03 2013 Fedora Release Engineering - 4.0.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Thu Jul 18 2013 Petr Pisar - 4.0.1-2 -- Perl 5.18 rebuild - -* Mon Jul 01 2013 Marek Grac - 4.0.1-1 -- new upstream release - -* Mon Jun 24 2013 Marek Grac - 4.0.0-5 -- fence-agents-all should provide fence-agent for clean update path - -* Wed Apr 03 2013 Marek Grac - 4.0.0-4 -- minor changes in spec file - -* Thu Mar 21 2013 Marek Grac - 4.0.0-3 -- minor changes in spec file - -* Mon Mar 18 2013 Marek Grac - 4.0.0-2 -- minor changes in spec file - -* Mon Mar 11 2013 Marek Grac - 4.0.0-1 -- new upstream release -- introducing subpackages diff --git a/ha-cloud-support-aliyun.patch b/ha-cloud-support-aliyun.patch new file mode 100644 index 0000000..22b35a5 --- /dev/null +++ b/ha-cloud-support-aliyun.patch @@ -0,0 +1,10 @@ +--- a/agents/aliyun/fence_aliyun.py 2021-02-08 16:27:46.587068911 +0100 ++++ b/agents/aliyun/fence_aliyun.py 2021-02-08 16:27:41.368054268 +0100 +@@ -9,6 +9,7 @@ + + + try: ++ sys.path.insert(0, '/usr/lib/fence-agents/support/aliyun/lib/python#PYTHON3_VERSION#/site-packages') + from aliyunsdkcore import client + from aliyunsdkcore.auth.credentials import EcsRamRoleCredential + from aliyunsdkcore.profile import region_provider diff --git a/ha-cloud-support-aws.patch b/ha-cloud-support-aws.patch new file mode 100644 index 0000000..39f7353 --- /dev/null +++ b/ha-cloud-support-aws.patch @@ -0,0 +1,10 @@ +--- a/agents/aws/fence_aws.py 2021-02-08 13:31:49.748362643 +0100 ++++ b/agents/aws/fence_aws.py 2021-02-08 13:31:46.836356513 +0100 +@@ -11,6 +11,7 @@ + from requests import HTTPError + + try: ++ sys.path.insert(0, '/usr/lib/fence-agents/support/aws/lib/python#PYTHON3_VERSION#/site-packages') + import boto3 + from botocore.exceptions import ConnectionError, ClientError, EndpointConnectionError, NoRegionError + except ImportError: diff --git a/ha-cloud-support-azure.patch b/ha-cloud-support-azure.patch new file mode 100644 index 0000000..569b543 --- /dev/null +++ b/ha-cloud-support-azure.patch @@ -0,0 +1,12 @@ +--- fence-agents-4.7.1/lib/azure_fence.py.py 2021-02-08 16:52:32.955244393 +0100 ++++ fence-agents-4.7.1/lib/azure_fence.py.py.modif 2021-02-08 16:52:28.150234151 +0100 +@@ -1,6 +1,9 @@ + import logging, re, time + from fencing import fail_usage + ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/support/azure/lib/python#PYTHON3_VERSION#/site-packages') ++ + FENCE_SUBNET_NAME = "fence-subnet" + FENCE_INBOUND_RULE_NAME = "FENCE_DENY_ALL_INBOUND" + FENCE_INBOUND_RULE_DIRECTION = "Inbound" diff --git a/ha-cloud-support-google.patch b/ha-cloud-support-google.patch new file mode 100644 index 0000000..89f84aa --- /dev/null +++ b/ha-cloud-support-google.patch @@ -0,0 +1,10 @@ +--- fence-agents-4.13.1/agents/gce/fence_gce.py 2023-06-13 09:08:11.000000000 +0200 ++++ fence-agents-4.13.1/agents/gce/fence_gce.py.mod 2024-02-22 16:52:49.703854219 +0100 +@@ -31,6 +31,7 @@ + + from fencing import fail_usage, run_delay, all_opt, atexit_handler, check_input, process_input, show_docs, fence_action, run_command + try: ++ sys.path.insert(0, '/usr/lib/fence-agents/support/google/lib/python#PYTHON3_VERSION#/site-packages') + import httplib2 + import googleapiclient.discovery + import socks diff --git a/sources b/sources index 47194b6..76b2370 100644 --- a/sources +++ b/sources @@ -1 +1,47 @@ SHA512 (fence-agents-4.13.1.tar.gz) = ea3d7effea14b19a9a70a954f052469577a7a8f83ab380a23e83e888067f38b04a0b9142216c05c0965a2777e4804b9a2a3d839ae3fc8136f1c3282f325e3b8b +SHA512 (requirements-common.txt) = 27efb8655b5cb949ddbdaa1ef8bb0787349ad3173ae46d47110779a7588f6b03e3a6bd717cc7b9182dda3a0ed474715da9ca378031fed288fb9fb4dcae4b15f1 +SHA512 (requirements-aliyun.txt) = 74ae6b3f7bb0c25b532f606d7dea3cf4e3a0d1c1abdce78d01e2ab8e81c9f346162142679bad884b2fa110d4d6a8c4692b678017eb1fc7d092907c0c063b1c79 +SHA512 (requirements-aws.txt) = ca39604d09f4b05589ddaa437be13b7f5d1868218745df107564d73a6c32efb7e4761436197a69653edc47a78f40dd7d5f0894935ec21b8f23b7c7bc71dfd0d1 +SHA512 (requirements-azure.txt) = 8071c96bb3e2b82852b10fd68b77b69a7fce6153ab315298ceb07456fe66f3aca056d3273f11eb87ff30049759e8b4fddf62e39acb91953d36e933e44dce8c9b +SHA512 (requirements-google.txt) = d916eb72588e55f5243b9e5391ab07d65eaafe583e073ef79d0e865f4c5e911d7b10310f7ccb98b5fdc1383c2214cc0cc082fa3c5fac6aa3d1931e4779149241 +SHA512 (pycurl-7.45.3.tar.gz) = 12a55070602a1fd22b160ad582a4001bdd28531d2b2ccd365ff0136bc13dd23af80b19488bdbbc60a902a3a362b64383b9ae6acce6ed328c74dcffc8a6a3f4ad +SHA512 (suds-community-1.1.2.tar.gz) = 9f26ebbf36fcbd915281f3c3afd4ea776ca409ede4ba9e487b746ef4e527171ee2fdb44075100d52b5bba0658fafec817eea2cbf64b8d2851bdc974aee430d57 +SHA512 (aliyun-python-sdk-ecs-4.24.71.tar.gz) = 53fad1945f920121b6ea61ea522a8774b1ff46bf940892419887b67566a7a94da8c911a1ebb96ebf00e61ac97d09d61ca48f903d353afd5bc97fda1e4a98c2e9 +SHA512 (aliyun-python-sdk-core-2.14.0.tar.gz) = a1c8668980fd5db2401228d7853686fefd2ec6e489f6633bf62650258bfbadc9f693053cb154ebcbfcb1112f2efdda2c40f5ff39413d4ca76fbfead457183aa3 +SHA512 (jmespath-0.10.0.tar.gz) = 9e229b5809d2dd74eb7dbf518953f848175743fb0ee91ffc901777be2f4809cc0c4f4ba40890746533e344f64e900ec189d6a8c847c864fa47fbf67e5106a7bc +SHA512 (aliyun-cli-3.0.198.tar.gz) = d39f36205c1325ab7596da836d59db458beb877f870ddb9e61e85bc6a2be07c1db9042417fc0ef0edd82d307b0f45577ca62f977f37701215f50a806a4dc6473 +SHA512 (aliyun-openapi-meta-5cf98b660.tar.gz) = 0476feef9085f77a60ef80ae06ca703af0be807d3bdf1a9a7dfffb415409c1c45fcd184c86346c22a48b5794f84cebc410eeee2dfbf7dcef91c79c6fea8e15b9 +SHA512 (aliyun-cli-go-vendor.tar.gz) = 0e545d545245051efc10acdb3d0f22d3b81f60c5946f8479e5a0df16a8bcb390763212ca59ff9298633432434ebb221cce9a35e1bf00db9245eba32bfb84eb23 +SHA512 (s3transfer-0.10.0.tar.gz) = 83c5f794770e4f3cfd2e54297a4fe228bed76d321b694380e918f39cbb7ebe5881b29499d7230a2af13e4c1c9bf2d67285116fc16cb9b6fa5f526ff1d25b607c +SHA512 (boto3-1.34.47.tar.gz) = 619c0c9fc6bfdff106348bc4ce980403a6261a51dcfca17650e632f99548eaa4eeeece76b99974cf345eef26e2ba770ff308ed6453e211b46042d09b8d08ab13 +SHA512 (botocore-1.34.47.tar.gz) = c921a01dc9e020d447c6d16c7761ce5e04cec5c1c5792a221c5d5e833f7511a50a6568c20cb3e958553246e041fbab30be5cd835efd9eeb179fe0d29e52de5f8 +SHA512 (azure-mgmt-compute-30.5.0.tar.gz) = cd3c91502f8792d1aede5ecd5fe88cd162a9ae7e0bab5c361395ac213875615100c3f1d3ea9e248e2e7da606cec6db81b465d78f37880493b85755fa384dddd4 +SHA512 (azure-mgmt-network-25.3.0.tar.gz) = 671872b5d7bc4ab7586355c54d4427bb7b38fdc0c4145df1dd2114f195b2ddf0084245465a14d5e8cbe77ffe496279c4531e0590223d5b264b667f411a32e2e3 +SHA512 (azure-identity-1.15.0.tar.gz) = 718c394d287d055cf4642f444152e1736d8000c585be1a1fc8c406b3feeb33e169d230b253a459e1b5efe580aa3f5212c3d79f9770426f66e633f570de47fb92 +SHA512 (msrestazure-0.6.4.tar.gz) = a3a652a47b5a08a72fb07882286ac20a209afcb18be1159e7036dab255ba056ec05c444275c505ee9055f948109b3027bc0ca468abf8b9e41a7edf56c35d2de2 +SHA512 (adal-1.2.7.tar.gz) = b46dd3ebb72123e9c2d2eb75eae17b1175f09908b44430131251b0deb0f96f4f3646aa5c0553894c89e664d448ad90bf7436a0a48e18b6a2eff491dad3d8a8a8 +SHA512 (azure-common-1.1.28.zip) = cfa8d08e11ff7d855342a589f9780ba1b2386fd63cddcbcc04d83be8d4d8e41dceba494b617e27ed4e3da4366b9f1203819ec391ef4466a6700cc2c8b85f0c38 +SHA512 (azure-core-1.30.0.tar.gz) = 99e5cc028ca79eb273134a937058efcaf08bfbf771a8fd1b00791d97c7038ae8c7d937a117b071fd417d9dfd7264644b80f57e736562ff8934d35c1518435865 +SHA512 (azure-mgmt-core-1.4.0.zip) = 8b0c1205a3cc63156987d931aa713aa4861f2b1fc417dd001a7189b14925d5d15c99c30fd418fca127829f2ac88b6e4265376dbb9ce4a6b2b82d05ed76d8b6d2 +SHA512 (isodate-0.6.1.tar.gz) = 437e420ec7ee68dedded825f30d3289eeb0da526208443e5a8e50fe70f12309515e1285b21132d26e6d4c1683f90dfa1d401582042b5e4381fe7ab0e34af26b6 +SHA512 (msal-1.27.0.tar.gz) = 9dbd023b36705129d562768fda71f05149205c837e1b073e2f8d2831c435a85c804ab4dec4b8526ddb141cd09ea9447488c77f5c2918c1103cd67b7c942d96b8 +SHA512 (msal-extensions-1.1.0.tar.gz) = 72066d1fc4ae2083d25e36d5b15d8c277fb1c04d57fe9345852ba391de76a875706b0dc217a2d5fdcbbea282806b8abd31ed002897361d00cd7c5000dac47f67 +SHA512 (msrest-0.7.1.zip) = 430e982adf89c79356e59182587c62ecb935e983f2e339738b54c48d0cd3cfa66ab48aad52d342b3efe5938d5e02693f24d603a4d637e3e5818bac6d03cc19db +SHA512 (certifi-2024.2.2.tar.gz) = 2191710dc2cfdf781df498c3ecd5f38dfc5215e2c2dc402cdcd484376dbd7fe2e442793cc856e93f6033c1fc43cb77c71d2dc785dbfe0d8cd10fd3120ee3c2fd +SHA512 (PyJWT-2.8.0.tar.gz) = 74e74cf8c78494a9e51a2a186347361388031d5c0d0864df2a5d051621d9d31dff617ab1d7ebb4a829cc7d409d196e1bdb3b361ec888b6c14f1abea77544475e +SHA512 (portalocker-2.8.2.tar.gz) = 9ebd6fdbc597615c5f76bf5741556d84bc95c925e931ee708b4fccbf0908e4dc4e758be659928340675675f5ca09764f5d2621fdef9195e21c1359f7764ae1dc +SHA512 (google-api-python-client-1.12.8.tar.gz) = e6aafb165d12c0f38b26326320f6f4dfebd4eef8401cda0a915fbf04bfff91e39cc4572979324808a71b863711b4fab2a9b397da9f933fb12867e8453e17354f +SHA512 (chardet-3.0.4.tar.gz) = 61a03b23447a2bfe52ceed4dd1b9afdb5784da1933a623776883ee9f297e341f633e27f0ce0230bd5fdc5fdb5382105ab42736a74a417ddeb9f83af57455dba5 +SHA512 (google-api-core-1.34.1.tar.gz) = 3714ec8e380003da8cecd5a0de832027b2ca6564bc407cce5b5fc8780fde294141bf6313c7335e54cb8b3ed5af7a53547641c1216529a636104a19fceac668f4 +SHA512 (google-auth-2.28.1.tar.gz) = 013c90dbeb6868406f56de87b72277a7932795ae3b806442bf07e90d34143e9a8035d2481f8c46a707a2bb0ed4285a1cb249613eff0da0b28b1aced783ce6a08 +SHA512 (google-auth-httplib2-0.2.0.tar.gz) = 82ffe87172056cd6d15e3d5f12c155ff9e09fdea9d8e6385fd3ddc2db374df41a74dcfb3aff3df1d046d2b537f0a98ee9b5c7dd7818d2274af9462df48e7bdf8 +SHA512 (httplib2-0.22.0.tar.gz) = 25fabeef422b1f7cdc79960db93a2442d1281c310b19259c00de9010f98f53438d88c5643294f8c992a14e64622c02a3fbf0ed79b2aa78f683ee77fa3a073b89 +SHA512 (uritemplate-3.0.1.tar.gz) = 260da5901d28ca2354d972e00ed468c9bcf2901f948cb7759ff3e9d3a7b67da90ba754e555d6695c5095801b106ffd422459f0860b901a75e01575e159eb8f48 +SHA512 (cachetools-5.3.2.tar.gz) = 1a6e32acefdd6165b3348dc32df300c5d3cd5bcff23c5f8eae5d7b6bc40a9aab7b5d6dee4bf23ebb49dea9a434570e854e24325028680a581f2b359d16e5d836 +SHA512 (googleapis-common-protos-1.62.0.tar.gz) = 13612ed20fdb0f7f1310a8c727d5b833286237f9470fd5b183a0a92463b043a7aa14b4e06188d8bd3e1aa9f1d6e468e96b06a448a8a76f85de3aea7d9bc734f0 +SHA512 (pyasn1_modules-0.3.0.tar.gz) = fedcf95e0452e133fc0735a1be29fb5e7df563243203463c66b85d9af6194a550c78a96fec2d915be1aa6b98428f51b6ed4feb7ed3838c515d044fbafeb2cb46 +SHA512 (rsa-4.9.tar.gz) = 85f359cc448a42f267f425fcf761597eeeab942523de49284b01d6ea2bcca8bddf0fac26926b487ae91c15889a7c4897a33ee00de859f28fe9cca19ef98c3f19 +SHA512 (openshift-0.13.2.tar.gz) = ff1f2a72b154c59a9e93381fbce51029b9c64fa11ad3a9f39281a55167d8e97344425419e3139e7369e31495c17ae69ba2a7cc47b86ad0a81dc21980edeff366 +SHA512 (kubernetes-29.0.0.tar.gz) = dc9ac54b848e9537616aca4b1062eaa01a7e8f94c91937593913f8c17947907b4aeede006dda92a4b6d0afb2b04d8a0139b52b776897834dea5466b39267ba3b +SHA512 (python-string-utils-1.0.0.tar.gz) = 23ee48053848edd74915a985ee9edec48bbba468e228745f7d27b6a855c67f6b7ddf1cf71049458bf0b1c6c4d4f905ebacfac960597cbadbbe2daa1fe9472280 +SHA512 (websocket-client-1.7.0.tar.gz) = 1f6b3253f7febd053e1271bcacd71701ec27d6921ba9791b16a203c8b7240925284e033dba4ad5d4c56a88568dc57ecb760c254964bc3bb4e87df52573239a9a