diff --git a/.fence-agents.metadata b/.fence-agents.metadata new file mode 100644 index 0000000..357a9dd --- /dev/null +++ b/.fence-agents.metadata @@ -0,0 +1,94 @@ +e1fb5dc6f95a85e7d1f93c6701b331201e8b5479 SOURCES/PyJWT-2.1.0-py3-none-any.whl +53fc16036940089ceadd4127381e40fd6106a7ed SOURCES/PyYAML-5.1.tar.gz +b53cba68215f389dffaa51ee2afe10c943278646 SOURCES/adal-1.2.7-py2.py3-none-any.whl +bda476965c380701795849179ed91e9d8134ec7c SOURCES/aliyun-python-sdk-core-2.11.5.tar.gz +2a3e6ee5713a3cfb47e63a739cc9a05580d95dd6 SOURCES/aliyun_python_sdk_ecs-4.24.7-py2.py3-none-any.whl +32a9b6bff51343ab89221da66f6f67ba798ddcd6 SOURCES/aliyuncli-2.1.10-py2.py3-none-any.whl +459383a3bcb16956030e302008a0f140a5fec0fb SOURCES/awscli-2.2.15.tar.gz +a08c16f613cb0b9a9f8ce7cae782ea20c40ce2af SOURCES/awscrt-0.11.13-cp39-cp39-manylinux2014_x86_64.whl +70a8e279429feaa0ed39bf2da123e5d53c37b0e6 SOURCES/azure_common-1.1.27-py2.py3-none-any.whl +63fee5e61283d1c972abd3786ed609da6fd7ea5b SOURCES/azure_core-1.15.0-py2.py3-none-any.whl +584ff1897b56673bee12e77aec07e68ebe9f789b SOURCES/azure_mgmt_compute-21.0.0-py2.py3-none-any.whl +e20df6c9635f1db9a3c891b9239b4319d88b1747 SOURCES/azure_mgmt_core-1.2.2-py2.py3-none-any.whl +3bb341e87329c7507863f0ec53f8cb6e16d698d6 SOURCES/azure_mgmt_network-19.0.0-py2.py3-none-any.whl +6591882be0937b2b900eab4ec70feadf34f71738 SOURCES/boto3-1.17.102-py2.py3-none-any.whl +22507f43314ccb2dd203337e87ffafb385ba3627 SOURCES/botocore-1.20.102-py2.py3-none-any.whl +6ef53a76455b377b02b4774c32a04e241cdb24eb SOURCES/botocore-2.0.0dev123.zip +c953dcd6e69587e5b182d77255ed836172fea70a SOURCES/cachetools-4.2.2-py3-none-any.whl +2fcaa39108a9c99700c6f3f4198fcaa47b8ed707 SOURCES/certifi-2021.5.30-py2.py3-none-any.whl +17953cc85717e0f4501dbc7b5fb8e75d67dcdcd3 SOURCES/cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl +96faab7de7e9a71b37f22adb64daf2898e967e3e SOURCES/chardet-3.0.4-py2.py3-none-any.whl +e9eb83c71c09b3c8249bd7d6d2619b65fff03874 SOURCES/chardet-4.0.0-py2.py3-none-any.whl +9fa96037a1a985fe7dda81c0e1e35ae015163d88 SOURCES/charset_normalizer-2.0.4-py3-none-any.whl +a8ee91adf4644bbdccfc73ead88f4cd0df7e3552 SOURCES/colorama-0.3.3.tar.gz +444d5ea320f95cd6205535a1be2805598847191b SOURCES/colorama-0.4.3-py2.py3-none-any.whl +536a57d70d505e4de8595650603d7e2ecc58b34b SOURCES/cryptography-3.3.2-cp36-abi3-manylinux2010_x86_64.whl +dfabded3494bffe6965b1bf3d37383736e642bdb SOURCES/debtcollector-2.2.0-py3-none-any.whl +4b50bebad4c5036c030a78cbb869d039bc91c4ec SOURCES/distro-1.5.0-py2.py3-none-any.whl +aafeddc912b74557754b2aaece3f1364be8e9f6a SOURCES/docutils-0.15.2-py3-none-any.whl +1ec823f807b73a377cdd47d12e2e34f046bfc889 SOURCES/fence-agents-4.10.0.tar.gz +ac160113ba8b78b0688edda9f9a088c0b4b5ded2 SOURCES/google_api_core-1.30.0-py2.py3-none-any.whl +4fd1eb2b927767158e91e369de441fd9221a82d9 SOURCES/google_api_python_client-1.12.8-py2.py3-none-any.whl +4a3a5ddc3d1ded24279b89d4ea0c8796f6c2598a SOURCES/google_auth-1.32.0-py2.py3-none-any.whl +9e513ce4e7b36b8e81c607be440e0d6e6afe9833 SOURCES/google_auth_httplib2-0.1.0-py2.py3-none-any.whl +dc553afa7a3f23b92ee9ecd27d0b15153c0e9f75 SOURCES/googleapis_common_protos-1.53.0-py2.py3-none-any.whl +74ec77d2e2ef6b2ef8503e6e398faa6f3ba298ae SOURCES/httplib2-0.19.1-py3-none-any.whl +999b6718b4d789d8ca0d2ddf7c07826154291825 SOURCES/idna-2.10-py2.py3-none-any.whl +e3a19aca36f6631ba9e33e66b855835776e8e120 SOURCES/idna-3.2-py3-none-any.whl +8672ed298c51abba24fdf5298ddeef7b16027071 SOURCES/iso8601-0.1.16-py2.py3-none-any.whl +240cc4206740fafacb74bbf0d0c4ff70e41c8a85 SOURCES/isodate-0.6.0-py2.py3-none-any.whl +68904717c48e95adb47d815178fff8d80f39b2ab SOURCES/jmespath-0.7.1-py2.py3-none-any.whl +22a38dbc79cc3cbe53c2bf306ad22a472be1a6f4 SOURCES/keystoneauth1-4.3.1-py3-none-any.whl +194b341fe37fe6ce992c637a728484e3cee47394 SOURCES/msgpack-1.0.2.tar.gz +ba59fbd147307e7ef92a1fad259e7dc0b07e79e0 SOURCES/msrest-0.6.21-py2.py3-none-any.whl +3d65a50b68e3aa506b6af42be485ed2710afa9da SOURCES/msrestazure-0.6.4-py2.py3-none-any.whl +ee77c30d5350378e9ca9932b724d1a26c9cc164b SOURCES/netaddr-0.8.0-py2.py3-none-any.whl +c1dd2b481a0101eb518bf47bdf40ea53ab61ca62 SOURCES/netifaces-0.11.0.tar.gz +0b5ba4c47bdd7ff17ca4954349d7213a95d03f25 SOURCES/oauthlib-3.1.1-py2.py3-none-any.whl +2b0aea8c7985b474f0719b916a1b6475caedf42f SOURCES/os_service_types-1.7.0-py2.py3-none-any.whl +e26e191810fd455958aa3fcf7c7447180c14de8d SOURCES/oslo.config-8.7.1-py3-none-any.whl +7375d2b1c5d3b13d5637a00b9514104069bca329 SOURCES/oslo.i18n-5.0.1-py3-none-any.whl +8a4aab8b645772fa6132df1ce23267b2fae356d3 SOURCES/oslo.serialization-4.2.0-py3-none-any.whl +b302350fda92e8b96a402fbb4cdf639f06192b62 SOURCES/oslo.utils-4.10.0-py3-none-any.whl +2b10cb7681bc678ba4ff3be524b28d783e4095ce SOURCES/packaging-20.9-py2.py3-none-any.whl +f712c7731d0d65cfc8fc7c61afeeeeca4b84b549 SOURCES/packaging-21.0-py3-none-any.whl +d3d07b885ca4d10994a30682106e37785e6e780c SOURCES/pbr-5.6.0-py2.py3-none-any.whl +0c3fc83ca045abeec9ce82bb7ee3e77f0390bca4 SOURCES/pexpect-4.8.0-py2.py3-none-any.whl +5ad34ad3dbfaf6d4e72860287043120c641e4524 SOURCES/prettytable-2.2.0-py3-none-any.whl +b09c4655a4c8bd24c54a078e960750ec9e8688d6 SOURCES/prompt_toolkit-2.0.10-py3-none-any.whl +5a90b79a9630873c7f2db79544c46146bb6af5e8 SOURCES/protobuf-3.17.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl +0827aaa6fdc3dc4256e06fa1c3991fb4ed20a693 SOURCES/ptyprocess-0.7.0-py2.py3-none-any.whl +c3c9f195dc89eb6d04828b881314743b548318d0 SOURCES/pyasn1-0.4.8-py2.py3-none-any.whl +d77aa46abbcaccc4054a0777a191e427c785c65a SOURCES/pyasn1_modules-0.2.8-py2.py3-none-any.whl +a0df3ebc552b551f8e99a05cf0a29ce30bef62ee SOURCES/pycparser-2.20-py2.py3-none-any.whl +df33feb2a14904c0461b5dcc3ca31f910206e7bd SOURCES/pycryptodome-3.10.1-cp35-abi3-manylinux2010_x86_64.whl +c8307f47e3b75a2d02af72982a2dfefa3f56e407 SOURCES/pyparsing-2.4.7-py2.py3-none-any.whl +24213006f983ada342ed86ea516028fdbb1ac66f SOURCES/pyroute2-0.6.4.tar.gz +a052fefd7a93e1e4b2ca87c6a6c242ae70f97489 SOURCES/pyroute2.core-0.6.4.tar.gz +e58f6fa56f1baf766ba147dbc9fbfc67fa92e234 SOURCES/pyroute2.ethtool-0.6.4.tar.gz +9de1b2825454872697339a63f4d6d06a5167fb73 SOURCES/pyroute2.ipdb-0.6.4.tar.gz +4ce5ab32674f3d2652e2f102b2502af4d499ba6a SOURCES/pyroute2.ipset-0.6.4.tar.gz +7dc3c981c9c991990647b74e670115395675fe04 SOURCES/pyroute2.ndb-0.6.4.tar.gz +281fe514b28e096f9deb1121ee8340976f47e8c0 SOURCES/pyroute2.nftables-0.6.4.tar.gz +7ecab830b1978fbd07d565872731268169847bc4 SOURCES/pyroute2.nslink-0.6.4.tar.gz +3005ff67df93ee276fb8631e17c677df852254ad SOURCES/python_dateutil-2.8.1-py2.py3-none-any.whl +e10df4212f19d34774bb329e8b497dafa4d099d5 SOURCES/python_keystoneclient-4.2.0-py3-none-any.whl +2c61c4407646813e5e5dd6f09586704efca371f0 SOURCES/python_novaclient-17.5.0-py3-none-any.whl +b97c6966fb8fd273f0bc8533cf0dee4978b9f373 SOURCES/pytz-2021.1-py2.py3-none-any.whl +b1009d9fd6acadc64e1a3cecb6f0083fe047e753 SOURCES/requests-2.25.1-py2.py3-none-any.whl +d20e2df000dd43249c3a9eed041f08a812a93423 SOURCES/requests-2.26.0-py2.py3-none-any.whl +25d5667d7a61586f5ddaac7e08cc3053db3d8661 SOURCES/requests_oauthlib-1.3.0-py2.py3-none-any.whl +b8e2041ff9ad37dba2f78e4b59b57cbed5f1b8ff SOURCES/rfc3986-1.5.0-py2.py3-none-any.whl +c0d5be2edf538122d35fe06c29d2d7a5f22f3117 SOURCES/rsa-4.7.2-py3-none-any.whl +abf532a0cc31ea224e3895f60025e7466b16d7ae SOURCES/ruamel.yaml-0.15.100.tar.gz +d7eb0ced8b9f12005ad6f13035689d5611f8a81a SOURCES/s3transfer-0.4.2-py2.py3-none-any.whl +0b0fcb339be89ae1b6360dbfb2be2075ae9f84c9 SOURCES/setuptools-57.0.0-py3-none-any.whl +79e6f2e4f9e24898f1896df379871b9c9922f147 SOURCES/six-1.16.0-py2.py3-none-any.whl +c612ea4b006feec1444ac61c233632f7e4852380 SOURCES/stevedore-3.4.0-py3-none-any.whl +47a980b20875d1a1714e921552b5bb0eda190f37 SOURCES/suds_community-0.8.5-py3-none-any.whl +83be56610e5f824bb05ff7a5618d6d4df9b6cc08 SOURCES/uritemplate-3.0.1-py2.py3-none-any.whl +206b17697417cbf5fc55f1e39c7ceb2197fe3e63 SOURCES/urllib3-1.26.6-py2.py3-none-any.whl +7126323614cada181bc8b06436e80ef372ff8656 SOURCES/wcwidth-0.1.9-py2.py3-none-any.whl +6cbb5d6384f6d2c8667fb3c5710ecf90dbf9e7fc SOURCES/wcwidth-0.2.5-py2.py3-none-any.whl +b6c48d8714e043524be7a869d1db0adcd8441cd4 SOURCES/wheel-0.37.0-py2.py3-none-any.whl +6c18d34144c6faba208509b8091d35acc9842081 SOURCES/wrapt-1.12.1.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..05aa68e --- /dev/null +++ b/.gitignore @@ -0,0 +1,94 @@ +SOURCES/PyJWT-2.1.0-py3-none-any.whl +SOURCES/PyYAML-5.1.tar.gz +SOURCES/adal-1.2.7-py2.py3-none-any.whl +SOURCES/aliyun-python-sdk-core-2.11.5.tar.gz +SOURCES/aliyun_python_sdk_ecs-4.24.7-py2.py3-none-any.whl +SOURCES/aliyuncli-2.1.10-py2.py3-none-any.whl +SOURCES/awscli-2.2.15.tar.gz +SOURCES/awscrt-0.11.13-cp39-cp39-manylinux2014_x86_64.whl +SOURCES/azure_common-1.1.27-py2.py3-none-any.whl +SOURCES/azure_core-1.15.0-py2.py3-none-any.whl +SOURCES/azure_mgmt_compute-21.0.0-py2.py3-none-any.whl +SOURCES/azure_mgmt_core-1.2.2-py2.py3-none-any.whl +SOURCES/azure_mgmt_network-19.0.0-py2.py3-none-any.whl +SOURCES/boto3-1.17.102-py2.py3-none-any.whl +SOURCES/botocore-1.20.102-py2.py3-none-any.whl +SOURCES/botocore-2.0.0dev123.zip +SOURCES/cachetools-4.2.2-py3-none-any.whl +SOURCES/certifi-2021.5.30-py2.py3-none-any.whl +SOURCES/cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl +SOURCES/chardet-3.0.4-py2.py3-none-any.whl +SOURCES/chardet-4.0.0-py2.py3-none-any.whl +SOURCES/charset_normalizer-2.0.4-py3-none-any.whl +SOURCES/colorama-0.3.3.tar.gz +SOURCES/colorama-0.4.3-py2.py3-none-any.whl +SOURCES/cryptography-3.3.2-cp36-abi3-manylinux2010_x86_64.whl +SOURCES/debtcollector-2.2.0-py3-none-any.whl +SOURCES/distro-1.5.0-py2.py3-none-any.whl +SOURCES/docutils-0.15.2-py3-none-any.whl +SOURCES/fence-agents-4.10.0.tar.gz +SOURCES/google_api_core-1.30.0-py2.py3-none-any.whl +SOURCES/google_api_python_client-1.12.8-py2.py3-none-any.whl +SOURCES/google_auth-1.32.0-py2.py3-none-any.whl +SOURCES/google_auth_httplib2-0.1.0-py2.py3-none-any.whl +SOURCES/googleapis_common_protos-1.53.0-py2.py3-none-any.whl +SOURCES/httplib2-0.19.1-py3-none-any.whl +SOURCES/idna-2.10-py2.py3-none-any.whl +SOURCES/idna-3.2-py3-none-any.whl +SOURCES/iso8601-0.1.16-py2.py3-none-any.whl +SOURCES/isodate-0.6.0-py2.py3-none-any.whl +SOURCES/jmespath-0.7.1-py2.py3-none-any.whl +SOURCES/keystoneauth1-4.3.1-py3-none-any.whl +SOURCES/msgpack-1.0.2.tar.gz +SOURCES/msrest-0.6.21-py2.py3-none-any.whl +SOURCES/msrestazure-0.6.4-py2.py3-none-any.whl +SOURCES/netaddr-0.8.0-py2.py3-none-any.whl +SOURCES/netifaces-0.11.0.tar.gz +SOURCES/oauthlib-3.1.1-py2.py3-none-any.whl +SOURCES/os_service_types-1.7.0-py2.py3-none-any.whl +SOURCES/oslo.config-8.7.1-py3-none-any.whl +SOURCES/oslo.i18n-5.0.1-py3-none-any.whl +SOURCES/oslo.serialization-4.2.0-py3-none-any.whl +SOURCES/oslo.utils-4.10.0-py3-none-any.whl +SOURCES/packaging-20.9-py2.py3-none-any.whl +SOURCES/packaging-21.0-py3-none-any.whl +SOURCES/pbr-5.6.0-py2.py3-none-any.whl +SOURCES/pexpect-4.8.0-py2.py3-none-any.whl +SOURCES/prettytable-2.2.0-py3-none-any.whl +SOURCES/prompt_toolkit-2.0.10-py3-none-any.whl +SOURCES/protobuf-3.17.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl +SOURCES/ptyprocess-0.7.0-py2.py3-none-any.whl +SOURCES/pyasn1-0.4.8-py2.py3-none-any.whl +SOURCES/pyasn1_modules-0.2.8-py2.py3-none-any.whl +SOURCES/pycparser-2.20-py2.py3-none-any.whl +SOURCES/pycryptodome-3.10.1-cp35-abi3-manylinux2010_x86_64.whl +SOURCES/pyparsing-2.4.7-py2.py3-none-any.whl +SOURCES/pyroute2-0.6.4.tar.gz +SOURCES/pyroute2.core-0.6.4.tar.gz +SOURCES/pyroute2.ethtool-0.6.4.tar.gz +SOURCES/pyroute2.ipdb-0.6.4.tar.gz +SOURCES/pyroute2.ipset-0.6.4.tar.gz +SOURCES/pyroute2.ndb-0.6.4.tar.gz +SOURCES/pyroute2.nftables-0.6.4.tar.gz +SOURCES/pyroute2.nslink-0.6.4.tar.gz +SOURCES/python_dateutil-2.8.1-py2.py3-none-any.whl +SOURCES/python_keystoneclient-4.2.0-py3-none-any.whl +SOURCES/python_novaclient-17.5.0-py3-none-any.whl +SOURCES/pytz-2021.1-py2.py3-none-any.whl +SOURCES/requests-2.25.1-py2.py3-none-any.whl +SOURCES/requests-2.26.0-py2.py3-none-any.whl +SOURCES/requests_oauthlib-1.3.0-py2.py3-none-any.whl +SOURCES/rfc3986-1.5.0-py2.py3-none-any.whl +SOURCES/rsa-4.7.2-py3-none-any.whl +SOURCES/ruamel.yaml-0.15.100.tar.gz +SOURCES/s3transfer-0.4.2-py2.py3-none-any.whl +SOURCES/setuptools-57.0.0-py3-none-any.whl +SOURCES/six-1.16.0-py2.py3-none-any.whl +SOURCES/stevedore-3.4.0-py3-none-any.whl +SOURCES/suds_community-0.8.5-py3-none-any.whl +SOURCES/uritemplate-3.0.1-py2.py3-none-any.whl +SOURCES/urllib3-1.26.6-py2.py3-none-any.whl +SOURCES/wcwidth-0.1.9-py2.py3-none-any.whl +SOURCES/wcwidth-0.2.5-py2.py3-none-any.whl +SOURCES/wheel-0.37.0-py2.py3-none-any.whl +SOURCES/wrapt-1.12.1.tar.gz diff --git a/SOURCES/bundled-pexpect.patch b/SOURCES/bundled-pexpect.patch new file mode 100644 index 0000000..41f355d --- /dev/null +++ b/SOURCES/bundled-pexpect.patch @@ -0,0 +1,358 @@ +diff --color -uNr a/agents/azure_arm/fence_azure_arm.py b/agents/azure_arm/fence_azure_arm.py +--- a/agents/azure_arm/fence_azure_arm.py 2020-06-30 11:26:43.000000000 +0200 ++++ b/agents/azure_arm/fence_azure_arm.py 2021-06-03 13:16:16.547120822 +0200 +@@ -1,6 +1,11 @@ + #!@PYTHON@ -tt + +-import sys, re, pexpect ++import sys, re ++sys.path.insert(0, '/usr/lib/fence-agents/support/common') ++try: ++ import pexpect ++except: ++ pass + import logging + import atexit + import xml.etree.ElementTree as ET +diff --color -uNr a/agents/hpblade/fence_hpblade.py b/agents/hpblade/fence_hpblade.py +--- a/agents/hpblade/fence_hpblade.py 2019-08-16 10:55:11.000000000 +0200 ++++ b/agents/hpblade/fence_hpblade.py 2021-06-03 13:16:16.547120822 +0200 +@@ -8,7 +8,11 @@ + ##### + + import sys, re +-import pexpect ++sys.path.insert(0, '/usr/lib/fence-agents/support/common') ++try: ++ import pexpect ++except: ++ pass + import atexit + sys.path.append("@FENCEAGENTSLIBDIR@") + from fencing import * +diff --color -uNr a/agents/ilo/fence_ilo.py b/agents/ilo/fence_ilo.py +--- a/agents/ilo/fence_ilo.py 2019-02-04 09:45:05.000000000 +0100 ++++ b/agents/ilo/fence_ilo.py 2021-06-03 13:16:16.547120822 +0200 +@@ -11,7 +11,12 @@ + ## iLO2 / firmware 1.50 / RIBCL 2.22 + ##### + +-import sys, re, pexpect ++import sys, re ++sys.path.insert(0, '/usr/lib/fence-agents/support/common') ++try: ++ import pexpect ++except: ++ pass + import atexit + from xml.sax.saxutils import quoteattr + sys.path.append("@FENCEAGENTSLIBDIR@") +diff --color -uNr a/agents/ldom/fence_ldom.py b/agents/ldom/fence_ldom.py +--- a/agents/ldom/fence_ldom.py 2019-02-04 09:45:05.000000000 +0100 ++++ b/agents/ldom/fence_ldom.py 2021-06-03 13:16:16.547120822 +0200 +@@ -7,7 +7,12 @@ + ## + ##### + +-import sys, re, pexpect ++import sys, re ++sys.path.insert(0, '/usr/lib/fence-agents/support/common') ++try: ++ import pexpect ++except: ++ pass + import atexit + sys.path.append("@FENCEAGENTSLIBDIR@") + from fencing import * +diff --color -uNr a/agents/Makefile.am b/agents/Makefile.am +--- a/agents/Makefile.am 2021-03-16 12:26:37.000000000 +0100 ++++ b/agents/Makefile.am 2021-06-03 13:16:16.547120822 +0200 +@@ -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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common /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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common /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/agents/netio/fence_netio.py b/agents/netio/fence_netio.py +--- a/agents/netio/fence_netio.py 2019-02-04 09:45:05.000000000 +0100 ++++ b/agents/netio/fence_netio.py 2021-06-03 13:16:16.547120822 +0200 +@@ -1,6 +1,11 @@ + #!@PYTHON@ -tt + +-import sys, re, pexpect ++import sys, re ++sys.path.insert(0, '/usr/lib/fence-agents/support/common') ++try: ++ import pexpect ++except: ++ pass + import atexit + sys.path.append("@FENCEAGENTSLIBDIR@") + from fencing import * +diff --color -uNr a/agents/raritan/fence_raritan.py b/agents/raritan/fence_raritan.py +--- a/agents/raritan/fence_raritan.py 2019-08-16 10:55:11.000000000 +0200 ++++ b/agents/raritan/fence_raritan.py 2021-06-03 13:16:16.547120822 +0200 +@@ -1,6 +1,11 @@ + #!@PYTHON@ -tt + +-import sys, re, pexpect ++import sys, re ++sys.path.insert(0, '/usr/lib/fence-agents/support/common') ++try: ++ import pexpect ++except: ++ pass + import atexit + sys.path.append("@FENCEAGENTSLIBDIR@") + from fencing import * +diff --color -uNr a/agents/sanbox2/fence_sanbox2.py b/agents/sanbox2/fence_sanbox2.py +--- a/agents/sanbox2/fence_sanbox2.py 2019-02-11 13:05:48.000000000 +0100 ++++ b/agents/sanbox2/fence_sanbox2.py 2021-06-03 13:16:16.547120822 +0200 +@@ -8,7 +8,12 @@ + ## +-----------------+---------------------------+ + ##### + +-import sys, re, pexpect ++import sys, re ++sys.path.insert(0, '/usr/lib/fence-agents/support/common') ++try: ++ import pexpect ++except: ++ pass + import logging + import atexit + sys.path.append("@FENCEAGENTSLIBDIR@") +diff --color -uNr a/agents/vmware/fence_vmware.py b/agents/vmware/fence_vmware.py +--- a/agents/vmware/fence_vmware.py 2019-02-04 09:45:05.000000000 +0100 ++++ b/agents/vmware/fence_vmware.py 2021-06-03 13:16:16.547120822 +0200 +@@ -22,7 +22,12 @@ + # VMware vCenter 4.0.0 + # + +-import sys, re, pexpect ++import sys, re ++sys.path.insert(0, '/usr/lib/fence-agents/support/common') ++try: ++ import pexpect ++except: ++ pass + import logging + import atexit + sys.path.append("@FENCEAGENTSLIBDIR@") +diff --color -uNr a/agents/wti/fence_wti.py b/agents/wti/fence_wti.py +--- a/agents/wti/fence_wti.py 2019-02-04 09:45:05.000000000 +0100 ++++ b/agents/wti/fence_wti.py 2021-06-03 13:17:33.435380703 +0200 +@@ -11,12 +11,21 @@ + ## WTI IPS-800-CE v1.40h (no username) ('list' tested) + ##### + +-import sys, re, pexpect ++import sys, re ++sys.path.insert(0, '/usr/lib/fence-agents/support/common') ++try: ++ import pexpect ++except: ++ pass + import atexit + import time + sys.path.append("@FENCEAGENTSLIBDIR@") + from fencing import * +-from fencing import fspawn, fail, fail_usage, EC_LOGIN_DENIED ++from fencing import fail, fail_usage, EC_LOGIN_DENIED ++try: ++ from fencing import fspawn ++except ImportError: ++ pass + + def get_listing(conn, options, listing_command): + listing = "" +diff --color -uNr a/lib/fencing.py.py b/lib/fencing.py.py +--- a/lib/fencing.py.py 2021-06-03 10:34:00.000000000 +0200 ++++ b/lib/fencing.py.py 2021-06-03 13:16:16.548120826 +0200 +@@ -1,7 +1,12 @@ + #!@PYTHON@ -tt + + import sys, getopt, time, os, uuid, pycurl, stat +-import pexpect, re, syslog ++sys.path.insert(0, '/usr/lib/fence-agents/support/common') ++try: ++ import pexpect ++except: ++ pass ++import re, syslog + import logging + import subprocess + import threading +@@ -491,29 +496,32 @@ + "snmpset_path", "snmpget_path", "snmpwalk_path"] + } + +-class fspawn(pexpect.spawn): +- def __init__(self, options, command, **kwargs): +- if sys.version_info[0] > 2: +- kwargs.setdefault('encoding', 'utf-8') +- logging.info("Running command: %s", command) +- pexpect.spawn.__init__(self, command, **kwargs) +- self.opt = options +- +- def log_expect(self, pattern, timeout): +- result = self.expect(pattern, timeout if timeout != 0 else None) +- logging.debug("Received: %s", self.before + self.after) +- return result +- +- def read_nonblocking(self, size, timeout): +- return pexpect.spawn.read_nonblocking(self, size=100, timeout=timeout if timeout != 0 else None) +- +- def send(self, message): +- logging.debug("Sent: %s", message) +- return pexpect.spawn.send(self, message) +- +- # send EOL according to what was detected in login process (telnet) +- def send_eol(self, message): +- return self.send(message + self.opt["eol"]) ++try: ++ class fspawn(pexpect.spawn): ++ def __init__(self, options, command, **kwargs): ++ if sys.version_info[0] > 2: ++ kwargs.setdefault('encoding', 'utf-8') ++ logging.info("Running command: %s", command) ++ pexpect.spawn.__init__(self, command, **kwargs) ++ self.opt = options ++ ++ def log_expect(self, pattern, timeout): ++ result = self.expect(pattern, timeout if timeout != 0 else None) ++ logging.debug("Received: %s", self.before + self.after) ++ return result ++ ++ def read_nonblocking(self, size, timeout): ++ return pexpect.spawn.read_nonblocking(self, size=100, timeout=timeout if timeout != 0 else None) ++ ++ def send(self, message): ++ logging.debug("Sent: %s", message) ++ return pexpect.spawn.send(self, message) ++ ++ # send EOL according to what was detected in login process (telnet) ++ def send_eol(self, message): ++ return self.send(message + self.opt["eol"]) ++except: ++ pass + + def frun(command, timeout=30, withexitstatus=False, events=None, + extra_args=None, logfile=None, cwd=None, env=None, **kwargs): +diff --color -uNr a/lib/fencing_snmp.py.py b/lib/fencing_snmp.py.py +--- a/lib/fencing_snmp.py.py 2019-02-04 09:45:05.000000000 +0100 ++++ b/lib/fencing_snmp.py.py 2021-06-03 13:16:16.548120826 +0200 +@@ -2,7 +2,13 @@ + + # For example of use please see fence_cisco_mds + +-import re, pexpect ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/support/common') ++try: ++ import pexpect ++except: ++ pass ++import re + import logging + from fencing import * + from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay, frun +diff --color -uNr a/make/agentpycheck.mk b/make/agentpycheck.mk +--- a/make/agentpycheck.mk 2020-06-30 11:26:43.000000000 +0200 ++++ b/make/agentpycheck.mk 2021-06-03 13:16:16.548120826 +0200 +@@ -9,34 +9,34 @@ + + %.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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common $(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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common $(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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ ++ PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common $(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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ ++ test `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common /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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common /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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ ++ PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common $(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 -; \ +diff --color -uNr a/make/fencebuild.mk b/make/fencebuild.mk +--- a/make/fencebuild.mk 2021-03-16 09:32:22.000000000 +0100 ++++ b/make/fencebuild.mk 2021-06-03 13:16:16.548120826 +0200 +@@ -34,10 +34,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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common $(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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ + cp -f $(@) $(@D)/$$x; \ + $(MAKE) $(@D)/$$x.8; \ + done +@@ -64,7 +64,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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common $(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)'"; \ +@@ -74,7 +74,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=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/common $(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-03-11 16:10:15.000000000 +0100 ++++ b/make/fenceman.mk 2021-06-03 13:16:16.548120826 +0200 +@@ -1,6 +1,6 @@ + %.8: % $(top_srcdir)/lib/fence2man.xsl + set -e && \ +- PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/../lib:$(abs_builddir)/lib \ ++ PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/../lib:$(abs_builddir)/lib:$(abs_top_builddir)/support/common \ + $(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/SOURCES/bundled-suds.patch b/SOURCES/bundled-suds.patch new file mode 100644 index 0000000..b8a6ba1 --- /dev/null +++ b/SOURCES/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') + import shutil, tempfile, suds + import logging, requests + import atexit, signal diff --git a/SOURCES/ha-cloud-support-aliyun.patch b/SOURCES/ha-cloud-support-aliyun.patch new file mode 100644 index 0000000..5f310f1 --- /dev/null +++ b/SOURCES/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 @@ + from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay + + try: ++ sys.path.insert(0, '/usr/lib/fence-agents/support/aliyun') + from aliyunsdkcore import client + from aliyunsdkcore.auth.credentials import EcsRamRoleCredential + from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest diff --git a/SOURCES/ha-cloud-support-aws.patch b/SOURCES/ha-cloud-support-aws.patch new file mode 100644 index 0000000..f4939dd --- /dev/null +++ b/SOURCES/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') + import boto3 + from botocore.exceptions import ConnectionError, ClientError, EndpointConnectionError, NoRegionError + except ImportError: diff --git a/SOURCES/ha-cloud-support-azure.patch b/SOURCES/ha-cloud-support-azure.patch new file mode 100644 index 0000000..f8290f5 --- /dev/null +++ b/SOURCES/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') ++ + FENCE_SUBNET_NAME = "fence-subnet" + FENCE_INBOUND_RULE_NAME = "FENCE_DENY_ALL_INBOUND" + FENCE_INBOUND_RULE_DIRECTION = "Inbound" diff --git a/SOURCES/ha-cloud-support-google.patch b/SOURCES/ha-cloud-support-google.patch new file mode 100644 index 0000000..5335073 --- /dev/null +++ b/SOURCES/ha-cloud-support-google.patch @@ -0,0 +1,21 @@ +diff --color -uNr a/agents/gce/fence_gce.py b/agents/gce/fence_gce.py +--- a/agents/gce/fence_gce.py 2021-06-03 13:10:44.752999470 +0200 ++++ b/agents/gce/fence_gce.py 2021-06-03 13:10:36.512971619 +0200 +@@ -9,7 +9,6 @@ + # + + import atexit +-import httplib2 + import logging + import json + import re +@@ -30,6 +29,8 @@ + + from fencing import fail_usage, run_delay, all_opt, atexit_handler, check_input, process_input, show_docs, fence_action + try: ++ sys.path.insert(0, '/usr/lib/fence-agents/support/google') ++ import httplib2 + import googleapiclient.discovery + import socks + try: +Binary files a/agents/gce/.fence_gce.py.swp and b/agents/gce/.fence_gce.py.swp differ diff --git a/SOURCES/ha-openstack-support.patch b/SOURCES/ha-openstack-support.patch new file mode 100644 index 0000000..741d90a --- /dev/null +++ b/SOURCES/ha-openstack-support.patch @@ -0,0 +1,30 @@ +--- a/agents/compute/fence_compute.py 2021-03-04 15:11:13.867362945 +0100 ++++ b/agents/compute/fence_compute.py 2021-03-04 15:11:11.480357409 +0100 +@@ -253,6 +253,7 @@ + nova = None + + try: ++ sys.path.insert(0, '/usr/lib/fence-agents/support/openstack') + from novaclient import client + from novaclient.exceptions import NotAcceptable + except ImportError: +--- a/agents/evacuate/fence_evacuate.py 2021-03-04 15:11:48.267442726 +0100 ++++ b/agents/evacuate/fence_evacuate.py 2021-03-04 15:11:45.397436069 +0100 +@@ -189,6 +189,7 @@ + nova = None + + try: ++ sys.path.insert(0, '/usr/lib/fence-agents/support/openstack') + from novaclient import client + from novaclient.exceptions import NotAcceptable + except ImportError: +--- a/agents/openstack/fence_openstack.py 2021-06-03 11:48:01.000000000 +0200 ++++ b/agents/openstack/fence_openstack.py 2021-06-30 09:13:16.598937530 +0200 +@@ -11,6 +11,7 @@ + from fencing import fail_usage, run_delay + + try: ++ sys.path.insert(0, '/usr/lib/fence-agents/support/openstack') + from novaclient import client + from novaclient.exceptions import Conflict, NotFound + except ImportError: diff --git a/SOURCES/requirements-aliyun.txt b/SOURCES/requirements-aliyun.txt new file mode 100644 index 0000000..3cf97ac --- /dev/null +++ b/SOURCES/requirements-aliyun.txt @@ -0,0 +1,3 @@ +aliyun-python-sdk-ecs +# for resource-agents-cloud +aliyuncli>=2.1.5 diff --git a/SOURCES/requirements-aws.txt b/SOURCES/requirements-aws.txt new file mode 100644 index 0000000..f702bb0 --- /dev/null +++ b/SOURCES/requirements-aws.txt @@ -0,0 +1,2 @@ +boto3 +jmespath<1.0.0 diff --git a/SOURCES/requirements-azure.txt b/SOURCES/requirements-azure.txt new file mode 100644 index 0000000..3aa79bc --- /dev/null +++ b/SOURCES/requirements-azure.txt @@ -0,0 +1,3 @@ +azure-mgmt-compute +azure-mgmt-network +msrestazure diff --git a/SOURCES/requirements-common.txt b/SOURCES/requirements-common.txt new file mode 100644 index 0000000..15ed87c --- /dev/null +++ b/SOURCES/requirements-common.txt @@ -0,0 +1,2 @@ +pexpect +suds-community diff --git a/SOURCES/requirements-google.txt b/SOURCES/requirements-google.txt new file mode 100644 index 0000000..4ef59ba --- /dev/null +++ b/SOURCES/requirements-google.txt @@ -0,0 +1,4 @@ +google-api-python-client==1.12.8 +chardet<4.0 +# for gcp-vpc-move-route +pyroute2 diff --git a/SOURCES/requirements-openstack.txt b/SOURCES/requirements-openstack.txt new file mode 100644 index 0000000..97da9af --- /dev/null +++ b/SOURCES/requirements-openstack.txt @@ -0,0 +1,3 @@ +python-novaclient +python-keystoneclient +PyYAML==5.1 diff --git a/SPECS/fence-agents.spec b/SPECS/fence-agents.spec new file mode 100644 index 0000000..747b2ec --- /dev/null +++ b/SPECS/fence-agents.spec @@ -0,0 +1,1547 @@ +# Copyright 2004-2011 Red Hat, Inc. +# This copyrighted material is made available to anyone wishing to use, +# modify, copy, or redistribute it subject to the terms and conditions +# of the GNU General Public License v.2. + +# keep around ready for later user +## global alphatag git0a6184070 + +Name: fence-agents +Summary: Set of unified programs capable of host isolation ("fencing") +Version: 4.10.0 +Release: 9%{?alphatag:.%{alphatag}}%{?dist} +License: GPLv2+ and LGPLv2+ +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-aliyun.txt +Source101: requirements-aws.txt +Source102: requirements-azure.txt +Source103: requirements-google.txt +Source104: requirements-openstack.txt +Source105: requirements-common.txt +### HA support libs/utils ### +# awscli 2+ is only available from github (and needs to be renamed from aws-cli... to awscli) +Source900: awscli-2.2.15.tar.gz +# From awscli's requirements.txt: https://github.com/boto/botocore/zipball/v2#egg=botocore +Source901: botocore-2.0.0dev123.zip +# update with ./update-ha-support.sh and replace lines below with output +### BEGIN ### +# aliyun +Source1000: aliyun-python-sdk-core-2.11.5.tar.gz +Source1001: aliyun_python_sdk_ecs-4.24.7-py2.py3-none-any.whl +Source1002: aliyuncli-2.1.10-py2.py3-none-any.whl +Source1003: cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl +Source1004: colorama-0.3.3.tar.gz +Source1005: jmespath-0.7.1-py2.py3-none-any.whl +Source1006: pycryptodome-3.10.1-cp35-abi3-manylinux2010_x86_64.whl +Source1007: pycparser-2.20-py2.py3-none-any.whl +# awscli +Source1008: awscrt-0.11.13-cp39-cp39-manylinux2014_x86_64.whl +Source1009: colorama-0.4.3-py2.py3-none-any.whl +Source1010: cryptography-3.3.2-cp36-abi3-manylinux2010_x86_64.whl +Source1011: distro-1.5.0-py2.py3-none-any.whl +Source1012: docutils-0.15.2-py3-none-any.whl +Source1013: prompt_toolkit-2.0.10-py3-none-any.whl +Source1014: ruamel.yaml-0.15.100.tar.gz +Source1015: six-1.16.0-py2.py3-none-any.whl +Source1016: wcwidth-0.1.9-py2.py3-none-any.whl +# aws +Source1017: boto3-1.17.102-py2.py3-none-any.whl +Source1018: botocore-1.20.102-py2.py3-none-any.whl +Source1019: python_dateutil-2.8.1-py2.py3-none-any.whl +Source1020: s3transfer-0.4.2-py2.py3-none-any.whl +Source1021: urllib3-1.26.6-py2.py3-none-any.whl +# azure +Source1022: adal-1.2.7-py2.py3-none-any.whl +Source1023: azure_common-1.1.27-py2.py3-none-any.whl +Source1024: azure_core-1.15.0-py2.py3-none-any.whl +Source1025: azure_mgmt_compute-21.0.0-py2.py3-none-any.whl +Source1026: azure_mgmt_core-1.2.2-py2.py3-none-any.whl +Source1027: azure_mgmt_network-19.0.0-py2.py3-none-any.whl +Source1028: certifi-2021.5.30-py2.py3-none-any.whl +Source1029: chardet-4.0.0-py2.py3-none-any.whl +Source1030: idna-2.10-py2.py3-none-any.whl +Source1031: isodate-0.6.0-py2.py3-none-any.whl +Source1032: msrest-0.6.21-py2.py3-none-any.whl +Source1033: msrestazure-0.6.4-py2.py3-none-any.whl +Source1034: oauthlib-3.1.1-py2.py3-none-any.whl +Source1035: PyJWT-2.1.0-py3-none-any.whl +Source1036: requests-2.25.1-py2.py3-none-any.whl +Source1037: requests_oauthlib-1.3.0-py2.py3-none-any.whl +# google +Source1038: cachetools-4.2.2-py3-none-any.whl +Source1039: chardet-3.0.4-py2.py3-none-any.whl +Source1040: google_api_core-1.30.0-py2.py3-none-any.whl +Source1041: google_api_python_client-1.12.8-py2.py3-none-any.whl +Source1042: googleapis_common_protos-1.53.0-py2.py3-none-any.whl +Source1043: google_auth-1.32.0-py2.py3-none-any.whl +Source1044: google_auth_httplib2-0.1.0-py2.py3-none-any.whl +Source1045: httplib2-0.19.1-py3-none-any.whl +Source1046: packaging-20.9-py2.py3-none-any.whl +Source1047: protobuf-3.17.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl +Source1048: pyasn1-0.4.8-py2.py3-none-any.whl +Source1049: pyasn1_modules-0.2.8-py2.py3-none-any.whl +Source1050: pyparsing-2.4.7-py2.py3-none-any.whl +Source1051: pyroute2-0.6.4.tar.gz +Source1052: pyroute2.core-0.6.4.tar.gz +Source1053: pyroute2.ethtool-0.6.4.tar.gz +Source1054: pyroute2.ipdb-0.6.4.tar.gz +Source1055: pyroute2.ipset-0.6.4.tar.gz +Source1056: pyroute2.ndb-0.6.4.tar.gz +Source1057: pyroute2.nftables-0.6.4.tar.gz +Source1058: pyroute2.nslink-0.6.4.tar.gz +Source1059: pytz-2021.1-py2.py3-none-any.whl +Source1060: rsa-4.7.2-py3-none-any.whl +Source1061: setuptools-57.0.0-py3-none-any.whl +Source1062: uritemplate-3.0.1-py2.py3-none-any.whl +# openstack +Source1063: PyYAML-5.1.tar.gz +Source1064: charset_normalizer-2.0.4-py3-none-any.whl +Source1065: debtcollector-2.2.0-py3-none-any.whl +Source1066: idna-3.2-py3-none-any.whl +Source1067: iso8601-0.1.16-py2.py3-none-any.whl +Source1068: keystoneauth1-4.3.1-py3-none-any.whl +Source1069: msgpack-1.0.2.tar.gz +Source1070: netaddr-0.8.0-py2.py3-none-any.whl +Source1071: netifaces-0.11.0.tar.gz +Source1072: oslo.config-8.7.1-py3-none-any.whl +Source1073: oslo.i18n-5.0.1-py3-none-any.whl +Source1074: oslo.serialization-4.2.0-py3-none-any.whl +Source1075: oslo.utils-4.10.0-py3-none-any.whl +Source1076: os_service_types-1.7.0-py2.py3-none-any.whl +Source1077: pbr-5.6.0-py2.py3-none-any.whl +Source1078: packaging-21.0-py3-none-any.whl +Source1079: prettytable-2.2.0-py3-none-any.whl +Source1080: python_keystoneclient-4.2.0-py3-none-any.whl +Source1081: python_novaclient-17.5.0-py3-none-any.whl +Source1082: requests-2.26.0-py2.py3-none-any.whl +Source1083: rfc3986-1.5.0-py2.py3-none-any.whl +Source1084: stevedore-3.4.0-py3-none-any.whl +Source1085: wcwidth-0.2.5-py2.py3-none-any.whl +Source1086: wheel-0.37.0-py2.py3-none-any.whl +Source1087: wrapt-1.12.1.tar.gz +# common (pexpect / suds) +Source1088: pexpect-4.8.0-py2.py3-none-any.whl +Source1089: ptyprocess-0.7.0-py2.py3-none-any.whl +Source1090: suds_community-0.8.5-py3-none-any.whl +### END ### + +Patch0: ha-cloud-support-aliyun.patch +Patch1: ha-cloud-support-aws.patch +Patch2: ha-cloud-support-azure.patch +Patch3: ha-cloud-support-google.patch +Patch4: ha-openstack-support.patch +Patch5: bundled-pexpect.patch +Patch6: 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 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 +%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 < 7 || 0%{?rhel} > 7 || 0%{?suse_version} +BuildRequires: python3-devel python3-pip +# wheel for HA support subpackages +BuildRequires: python3-wheel +BuildRequires: python3-pycurl python3-requests +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 +BuildRequires: openwsman-python3 +%endif +%if 0%{?suse_version} +BuildRequires: python3-openwsman +%endif +%else +BuildRequires: python-devel +BuildRequires: python-pycurl python-requests +BuildRequires: openwsman-python +%endif + +# fence-virt +%if 0%{?suse_version} +%define nss_devel mozilla-nss-devel +%define nspr_devel mozilla-nspr-devel +%define systemd_units systemd +%else +%define nss_devel nss-devel +%define nspr_devel nspr-devel +%define systemd_units systemd-units +%endif + +BuildRequires: corosynclib-devel libvirt-devel +BuildRequires: libxml2-devel %{nss_devel} %{nspr_devel} +BuildRequires: flex bison libuuid-devel +BuildRequires: %{systemd_units} + + +# turn off the brp-python-bytecompile script +# (for F28+ or equivalent, the latter is the preferred form) +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompilespace:.*$!!g') +#undefine __brp_python_bytecompile + +%prep +%setup -q -n %{name}-%{version}%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}} +%autopatch -p1 +# prevent compilation of something that won't get used anyway +sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac + +%build +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} + export PYTHON="%{__python3}" +%endif + +# support libs +%ifarch x86_64 +LIBS="%{_sourcedir}/requirements-*.txt" +echo "awscli" >> %{_sourcedir}/requirements-awscli.txt +%endif +%ifarch ppc64le +LIBS="%{_sourcedir}/requirements-openstack.txt %{_sourcedir}/requirements-common.txt" +%endif +%ifnarch x86_64 ppc64le +LIBS="%{_sourcedir}/requirements-common.txt" +%endif +for x in $LIBS; do + %{__python3} -m pip install --target support/$(echo $x | sed -E "s/.*requirements-(.*).txt/\1/") --no-index --find-links %{_sourcedir} -r $x +done + +# fix incorrect #! detected by CI +%ifarch x86_64 +sed -i -e "/^#\!\/Users/c#\!%{__python3}" support/aws/bin/jp support/aliyun/bin/jp support/awscli/bin/jp +%endif + +%ifarch x86_64 +sed -i -e "/^import awscli.clidriver/isys.path.insert(0, '/usr/lib/%{name}/support/awscli')" support/awscli/bin/aws +%endif + +./autogen.sh +%{configure} --disable-libvirt-qmf-plugin PYTHONPATH="support/aliyun:support/aws:support/azure:support/google:support/openstack:support/common" --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 +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} > 7 || 0%{?rhel} > 7 +%py_byte_compile %{__python3} %{buildroot}%{_datadir}/fence +%endif +# XXX unsure if /usr/sbin/fence_* should be compiled as well + +## tree fix up +# fix libfence permissions +chmod 0755 %{buildroot}%{_datadir}/fence/*.py +# remove docs +rm -rf %{buildroot}/usr/share/doc/fence-agents +# remove .a files +rm -f %{buildroot}/%{_libdir}/%{name}/*.*a +rm -f %{buildroot}/%{_libdir}/fence-virt/*.*a + +%post +ccs_update_schema > /dev/null 2>&1 ||: +# https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd +if [ $1 -eq 1 ] ; then + # Initial installation + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%preun +# https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd +if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable fence_virtd.service &> /dev/null || : + /bin/systemctl stop fence_virtd.service &> /dev/null || : +fi + +%postun +# https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd +/bin/systemctl daemon-reload &> /dev/null || : +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart fence_virtd.service &> /dev/null || : +fi + +%triggerun -- fence_virtd < 0.3.0-1 +# https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Packages_migrating_to_a_systemd_unit_file_from_a_SysV_initscript +/usr/bin/systemd-sysv-convert --save fence_virtd &> /dev/null || : +/sbin/chkconfig --del fence_virtd &> /dev/null || : +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +/bin/systemctl try-restart fence_virtd.service &> /dev/null || : + +%description +A collection of executables to handle isolation ("fencing") of possibly +misbehaving hosts by the means of remote power management, blocking +network, storage, or similar. They operate through a unified interface +(calling conventions) devised for the original Red Hat clustering solution. + +%package common +License: GPLv2+ and LGPLv2+ +Summary: Common base for Fence Agents +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} +Requires: python3-pycurl +%else +Requires: python-pycurl +%endif +# pexpect / suds +Provides: bundled(python-pexpect) = 4.8.0 +Provides: bundled(python-ptyprocess) = 0.7.0 +Provides: bundled(python-suds) = 0.8.5 +BuildArch: noarch +%description common +A collection of executables to handle isolation ("fencing") of possibly +misbehaving hosts by the means of remote power management, blocking +network, storage, or similar. + +This package contains support files including the Python fencing library. +%files common +%doc doc/COPYING.* doc/COPYRIGHT doc/README.licence +%{_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* +%{_datadir}/pkgconfig/%{name}.pc +%exclude %{_sbindir}/* +%exclude %{_mandir}/man8/* +%dir %{_usr}/lib/%{name} +%{_usr}/lib/%{name}/support/common + +%ifarch x86_64 +%package -n ha-cloud-support +License: GPLv2+ and LGPLv2+ +Summary: Support libraries for HA Cloud agents +# aliyun +Provides: bundled(python-aliyun-python-sdk-core) = 2.11.5 +Provides: bundled(python-aliyun-python-sdk-ecs) = 4.24.7 +Provides: bundled(aliyuncli) = 2.1.10 +Provides: bundled(python-cffi) = 1.14.5 +Provides: bundled(python-colorama) = 0.3.3 +Provides: bundled(python-jmespath) = 0.7.1 +Provides: bundled(python-pycryptodome) = 3.10.1 +Provides: bundled(python-pycparser) = 2.20 +# awscli +Provides: bundled(awscli) = 2.2.15 +Provides: bundled(python-awscrt) = 0.11.13 +Provides: bundled(python-colorama) = 0.4.3 +Provides: bundled(python-cryptography) = 3.3.2 +Provides: bundled(python-distro) = 1.5.0 +Provides: bundled(python-docutils) = 0.15.2 +Provides: bundled(python-prompt-toolkit) = 2.0.10 +Provides: bundled(python-ruamel-yaml) = 0.15.100 +Provides: bundled(python-six) = 1.16.0 +Provides: bundled(python-wcwidth) = 0.1.9 +# aws +Provides: bundled(python-boto3) = 1.17.102 +Provides: bundled(python-botocore) = 1.20.102 +Provides: bundled(python-dateutil) = 2.8.1 +Provides: bundled(python-s3transfer) = 0.4.2 +Provides: bundled(python-urllib3) = 1.26.6 +# azure +Provides: bundled(python-adal) = 1.2.7 +Provides: bundled(python-azure-common) = 1.1.27 +Provides: bundled(python-azure-core) = 1.15.0 +Provides: bundled(python-azure-mgmt-compute) = 21.0.0 +Provides: bundled(python-azure-mgmt-core) = 1.2.2 +Provides: bundled(python-azure-mgmt-network) = 19.0.0 +Provides: bundled(python-certifi) = 2021.5.30 +Provides: bundled(python-chardet) = 4.0.0 +Provides: bundled(python-idna) = 2.10 +Provides: bundled(python-isodate) = 0.6.0 +Provides: bundled(python-msrest) = 0.6.21 +Provides: bundled(python-msrestazure) = 0.6.4 +Provides: bundled(python-oauthlib) = 3.1.1 +Provides: bundled(python-PyJWT) = 2.1.0 +Provides: bundled(python-requests) = 2.25.1 +Provides: bundled(python-requests-oauthlib) = 1.3.0 +# google +Provides: bundled(python-cachetools) = 4.2.2 +Provides: bundled(python-chardet) = 3.0.4 +Provides: bundled(python-google-api-core) = 1.30.0 +Provides: bundled(python-google-api-client) = 1.12.8 +Provides: bundled(python-googleapis-common-protos) = 1.53.0 +Provides: bundled(python-google-auth) = 1.32.0 +Provides: bundled(python-google-auth-httplib2) = 0.1.0 +Provides: bundled(python-httplib2) = 0.19.1 +Provides: bundled(python-packaging) = 20.9 +Provides: bundled(python-protobuf) = 3.17.3 +Provides: bundled(python-pyasn1) = 0.4.8 +Provides: bundled(python-pyasn1-modules) = 0.2.8 +Provides: bundled(python-pyparsing) = 2.4.7 +Provides: bundled(python-pyroute2) = 0.6.4 +Provides: bundled(python-pyroute2-core) = 0.6.4 +Provides: bundled(python-pyroute2-ethtool) = 0.6.4 +Provides: bundled(python-pyroute2-ipdb) = 0.6.4 +Provides: bundled(python-pyroute2-ipset) = 0.6.4 +Provides: bundled(python-pyroute2-ndb) = 0.6.4 +Provides: bundled(python-pyroute2-nftables) = 0.6.4 +Provides: bundled(python-pyroute2-nslink) = 0.6.4 +Provides: bundled(python-pytz) = 2021.1 +Provides: bundled(python-rsa) = 4.7.2 +Provides: bundled(python-setuptools) = 57.0.0 +Provides: bundled(python-uritemplate) = 3.0.1 +%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/openstack +%exclude %{_usr}/lib/%{name}/support/common +%endif + +%ifarch x86_64 ppc64le +%package -n ha-openstack-support +License: GPLv2+ and LGPLv2+ +Summary: Support libraries for OpenStack agents +Provides: bundled(python-PyYAML) = 5.1 +Provides: bundled(python-charset-normalizer) = 2.0.4 +Provides: bundled(python-debtcollector) = 2.2.0 +Provides: bundled(python-idna) = 3.2 +Provides: bundled(python-iso8601) = 0.1.16 +Provides: bundled(python-keystoneauth1) = 4.3.1 +Provides: bundled(python-msgpack) = 1.0.2 +Provides: bundled(python-netaddr) = 0.8.0 +Provides: bundled(python-netifaces) = 0.11.0 +Provides: bundled(python-oslo-config) = 8.7.1 +Provides: bundled(python-oslo-i18n) = 5.0.1 +Provides: bundled(python-oslo-serialization) = 4.2.0 +Provides: bundled(python-oslo-utils) = 4.10.0 +Provides: bundled(python-os-service-types) = 1.7.0 +Provides: bundled(python-packaging) = 21.0 +Provides: bundled(python-pbr) = 5.6.0 +Provides: bundled(python-prettytable) = 2.2.0 +Provides: bundled(python-keystoneclient) = 4.2.0 +Provides: bundled(python-novaclient) = 17.5.0 +Provides: bundled(python-requests) = 2.26.0 +Provides: bundled(python-rfc3986) = 1.5.0 +Provides: bundled(python-stevedore) = 3.4.0 +Provides: bundled(python-wcwidth) = 0.2.5 +Provides: bundled(python-wrapt) = 1.12.1 +%description -n ha-openstack-support +Support libraries for Fence Agents. +%files -n ha-openstack-support +%dir %{_usr}/lib/%{name} +%{_usr}/lib/%{name}/support/openstack +%endif + +%package all +License: GPLv2+, LGPLv2+ and ASL 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 +A collection of executables to handle isolation ("fencing") of possibly +misbehaving hosts by the means of remote power management, blocking +network, storage, or similar. + +This package serves as a catch-all for all supported fence agents. +%files all + +%ifarch x86_64 +%package aliyun +License: GPLv2+ and LGPLv2+ +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 +The fence-agents-aliyun package contains a fence agent for Alibaba Cloud (Aliyun) instances. +%files aliyun +%defattr(-,root,root,-) +%{_sbindir}/fence_aliyun +%{_mandir}/man8/fence_aliyun.8* +%endif + +%package amt-ws +License: ASL 2.0 +Summary: Fence agent for Intel AMT (WS-Man) devices +Requires: fence-agents-common = %{version}-%{release} +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 +Requires: openwsman-python3 +%endif +%if 0%{?suse_version} +Requires: python3-openwsman +%endif +%else +Requires: openwsman-python +%endif +BuildArch: noarch +%description amt-ws +Fence agent for AMT (WS-Man) devices. +%files amt-ws +%{_sbindir}/fence_amt_ws +%{_mandir}/man8/fence_amt_ws.8* + +%package apc +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for APC devices +Requires: openssh-clients +%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} +%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) +Requires: telnet +%else +Recommends: telnet +%endif +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description apc +Fence agent for APC devices that are accessed via telnet or SSH. +%files apc +%{_sbindir}/fence_apc +%{_mandir}/man8/fence_apc.8* + +%package apc-snmp +License: GPLv2+ and LGPLv2+ +Summary: Fence agents for APC devices (SNMP) +Requires: net-snmp-utils +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description apc-snmp +Fence agents for APC devices that are accessed via the SNMP protocol. +%files apc-snmp +%{_sbindir}/fence_apc_snmp +%{_mandir}/man8/fence_apc_snmp.8* +%{_sbindir}/fence_tripplite_snmp +%{_mandir}/man8/fence_tripplite_snmp.8* + +%ifarch x86_64 +%package aws +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for Amazon AWS +Requires: fence-agents-common = %{version}-%{release} +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: GPLv2+ and LGPLv2+ +Summary: Fence agent for Azure Resource Manager +Requires: fence-agents-common = %{version}-%{release} +Requires: ha-cloud-support = %{version}-%{release} +Obsoletes: fence-agents < 3.1.13 +%description azure-arm +Fence agent for Azure Resource Manager instances. +%files azure-arm +%{_sbindir}/fence_azure_arm +%{_datadir}/fence/azure_fence.py* +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 +%{_datadir}/fence/__pycache__/azure_fence.* +%endif +%{_mandir}/man8/fence_azure_arm.8* +%endif + +%package bladecenter +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for IBM BladeCenter +Requires: openssh-clients +%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} +%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) +Requires: telnet +%else +Recommends: telnet +%endif +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description bladecenter +Fence agent for IBM BladeCenter devices that are accessed +via telnet or SSH. +%files bladecenter +%{_sbindir}/fence_bladecenter +%{_mandir}/man8/fence_bladecenter.8* + +%package brocade +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for Brocade switches +Requires: openssh-clients +%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} +%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) +Requires: telnet +%else +Recommends: telnet +%endif +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description brocade +Fence agent for Brocade devices that are accessed via telnet or SSH. +%files brocade +%{_sbindir}/fence_brocade +%{_mandir}/man8/fence_brocade.8* + +%package cisco-mds +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for Cisco MDS 9000 series +Requires: net-snmp-utils +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description cisco-mds +Fence agent for Cisco MDS 9000 series devices that are accessed +via the SNMP protocol. +%files cisco-mds +%{_sbindir}/fence_cisco_mds +%{_mandir}/man8/fence_cisco_mds.8* + +%package cisco-ucs +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for Cisco UCS series +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} +Requires: python3-pycurl +%else +Requires: python-pycurl +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description cisco-ucs +Fence agent for Cisco UCS series devices that are accessed +via the SNMP protocol. +%files cisco-ucs +%{_sbindir}/fence_cisco_ucs +%{_mandir}/man8/fence_cisco_ucs.8* + +%ifarch x86_64 ppc64le +%package compute +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for Nova compute nodes +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} +Requires: python3-requests +%else +Requires: python-requests +%endif +Requires: fence-agents-common = %{version}-%{release} +Requires: ha-openstack-support = %{version}-%{release} +%description compute +Fence agent for Nova compute nodes. +%files compute +%{_sbindir}/fence_compute +%{_sbindir}/fence_evacuate +%{_mandir}/man8/fence_compute.8* +%{_mandir}/man8/fence_evacuate.8* +%endif + +%package drac5 +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for Dell DRAC 5 +Requires: openssh-clients +%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} +%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) +Requires: telnet +%else +Recommends: telnet +%endif +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description drac5 +Fence agent for Dell DRAC 5 series devices that are accessed +via telnet or SSH. +%files drac5 +%{_sbindir}/fence_drac5 +%{_mandir}/man8/fence_drac5.8* + +%package eaton-snmp +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for Eaton network power switches +Requires: net-snmp-utils +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description eaton-snmp +Fence agent for Eaton network power switches that are accessed +via the SNMP protocol. +%files eaton-snmp +%{_sbindir}/fence_eaton_snmp +%{_mandir}/man8/fence_eaton_snmp.8* + +%package emerson +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for Emerson devices (SNMP) +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description emerson +Fence agent for Emerson devices that are accessed via +the SNMP protocol. +%files emerson +%{_sbindir}/fence_emerson +%{_mandir}/man8/fence_emerson.8* + +%package eps +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for ePowerSwitch 8M+ power switches +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description eps +Fence agent for ePowerSwitch 8M+ power switches that are accessed +via the HTTP(s) protocol. +%files eps +%{_sbindir}/fence_eps +%{_mandir}/man8/fence_eps.8* + +%ifarch x86_64 +%package gce +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for GCE (Google Cloud Engine) +Requires: fence-agents-common = %{version}-%{release} +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* +%endif + +%package heuristics-ping +License: GPLv2+ and LGPLv2+ +Summary: Pseudo fence agent to affect other agents based on ping-heuristics +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +Obsoletes: fence-agents < 3.1.13 +%description heuristics-ping +Fence pseudo agent used to affect other agents based on +ping-heuristics. +%files heuristics-ping +%{_sbindir}/fence_heuristics_ping +%{_mandir}/man8/fence_heuristics_ping.8* + +%package hpblade +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for HP BladeSystem devices +Requires: openssh-clients +%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} +%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) +Requires: telnet +%else +Recommends: telnet +%endif +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description hpblade +Fence agent for HP BladeSystem devices that are accessed via telnet +or SSH. +%files hpblade +%{_sbindir}/fence_hpblade +%{_mandir}/man8/fence_hpblade.8* + +%package ibmblade +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for IBM BladeCenter +Requires: net-snmp-utils +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description ibmblade +Fence agent for IBM BladeCenter devices that are accessed +via the SNMP protocol. +%files ibmblade +%{_sbindir}/fence_ibmblade +%{_mandir}/man8/fence_ibmblade.8* + +%package ifmib +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for devices with IF-MIB interfaces +Requires: net-snmp-utils +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description ifmib +Fence agent for IF-MIB interfaces that are accessed via +the SNMP protocol. +%files ifmib +%{_sbindir}/fence_ifmib +%{_mandir}/man8/fence_ifmib.8* + +%package ilo2 +License: GPLv2+ and LGPLv2+ +Summary: Fence agents for HP iLO2 devices +Requires: gnutls-utils +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description ilo2 +Fence agents for HP iLO2 devices that are accessed via +the HTTP(s) protocol. +%files ilo2 +%{_sbindir}/fence_ilo +%{_sbindir}/fence_ilo2 +%{_mandir}/man8/fence_ilo.8* +%{_mandir}/man8/fence_ilo2.8* + +%package ilo-moonshot +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for HP iLO Moonshot devices +Requires: openssh-clients +%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} +%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) +Requires: telnet +%else +Recommends: telnet +%endif +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description ilo-moonshot +Fence agent for HP iLO Moonshot devices that are accessed +via telnet or SSH. +%files ilo-moonshot +%{_sbindir}/fence_ilo_moonshot +%{_mandir}/man8/fence_ilo_moonshot.8* + +%package ilo-mp +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for HP iLO MP devices +Requires: openssh-clients +%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} +%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) +Requires: telnet +%else +Recommends: telnet +%endif +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description ilo-mp +Fence agent for HP iLO MP devices that are accessed via telnet or SSH. +%files ilo-mp +%{_sbindir}/fence_ilo_mp +%{_mandir}/man8/fence_ilo_mp.8* + +%package ilo-ssh +License: GPLv2+ and LGPLv2+ +Summary: Fence agents for HP iLO devices over SSH +Requires: openssh-clients +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description ilo-ssh +Fence agents for HP iLO devices that are accessed via telnet or SSH. +%files ilo-ssh +%{_sbindir}/fence_ilo_ssh +%{_mandir}/man8/fence_ilo_ssh.8* +%{_sbindir}/fence_ilo3_ssh +%{_mandir}/man8/fence_ilo3_ssh.8* +%{_sbindir}/fence_ilo4_ssh +%{_mandir}/man8/fence_ilo4_ssh.8* +%{_sbindir}/fence_ilo5_ssh +%{_mandir}/man8/fence_ilo5_ssh.8* + +%package intelmodular +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for devices with Intel Modular interfaces +Requires: net-snmp-utils +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description intelmodular +Fence agent for Intel Modular interfaces that are accessed +via the SNMP protocol. +%files intelmodular +%{_sbindir}/fence_intelmodular +%{_mandir}/man8/fence_intelmodular.8* + +%package ipdu +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for IBM iPDU network power switches +Requires: net-snmp-utils +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description ipdu +Fence agent for IBM iPDU network power switches that are accessed +via the SNMP protocol. +%files ipdu +%{_sbindir}/fence_ipdu +%{_mandir}/man8/fence_ipdu.8* + +%package ipmilan +License: GPLv2+ and LGPLv2+ +Summary: Fence agents for devices with IPMI interface +Requires: /usr/bin/ipmitool +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description ipmilan +Fence agents for devices with IPMI interface. +%files ipmilan +%{_sbindir}/fence_ipmilan +%{_mandir}/man8/fence_ipmilan.8* +%{_sbindir}/fence_idrac +%{_mandir}/man8/fence_idrac.8* +%{_sbindir}/fence_ilo3 +%{_mandir}/man8/fence_ilo3.8* +%{_sbindir}/fence_ilo4 +%{_mandir}/man8/fence_ilo4.8* +%{_sbindir}/fence_ilo5 +%{_mandir}/man8/fence_ilo5.8* +%{_sbindir}/fence_ipmilanplus +%{_mandir}/man8/fence_ipmilanplus.8* +%{_sbindir}/fence_imm +%{_mandir}/man8/fence_imm.8* + +%package kdump +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for use with kdump crash recovery service +Requires: fence-agents-common = %{version}-%{release} +# this cannot be noarch since it's compiled +%description kdump +Fence agent for use with kdump crash recovery service. +%files kdump +%{_sbindir}/fence_kdump +%{_libexecdir}/fence_kdump_send +%{_mandir}/man8/fence_kdump.8* +%{_mandir}/man8/fence_kdump_send.8* + +%package lpar +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for IBM LPAR +Requires: openssh-clients +%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} +%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) +Requires: telnet +%else +Recommends: telnet +%endif +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description lpar +Fence agent for IBM LPAR devices that are accessed via telnet or SSH. +%files lpar +%{_sbindir}/fence_lpar +%{_mandir}/man8/fence_lpar.8* + +%package mpath +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for reservations over Device Mapper Multipath +Requires: device-mapper-multipath +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description mpath +Fence agent for SCSI persistent reservation over +Device Mapper Multipath. +%files mpath +%{_sbindir}/fence_mpath +%{_datadir}/cluster/fence_mpath_check* +%{_mandir}/man8/fence_mpath.8* + +%ifarch x86_64 ppc64le +%package openstack +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for OpenStack's Nova service +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} +Requires: python3-requests +%else +Requires: python-requests +%endif +Requires: fence-agents-common = %{version}-%{release} +Requires: ha-openstack-support = %{version}-%{release} +%description openstack +Fence agent for OpenStack's Nova service. +%files openstack +%{_sbindir}/fence_openstack +%{_mandir}/man8/fence_openstack.8* +%endif + +%package redfish +License: GPLv2+ and LGPLv2+ +Group: System Environment/Base +Summary: Fence agent for Redfish +Requires: fence-agents-common >= %{version}-%{release} +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} +Requires: python3-requests +%else +Requires: python-requests +%endif +Obsoletes: fence-agents < 3.1.13 +%description redfish +The fence-agents-redfish package contains a fence agent for Redfish +%files redfish +%defattr(-,root,root,-) +%{_sbindir}/fence_redfish +%{_mandir}/man8/fence_redfish.8* + +%package rhevm +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for RHEV-M +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description rhevm +Fence agent for RHEV-M via REST API. +%files rhevm +%{_sbindir}/fence_rhevm +%{_mandir}/man8/fence_rhevm.8* + +%package rsa +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for IBM RSA II +Requires: openssh-clients +%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} +%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) +Requires: telnet +%else +Recommends: telnet +%endif +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description rsa +Fence agent for IBM RSA II devices that are accessed +via telnet or SSH. +%files rsa +%{_sbindir}/fence_rsa +%{_mandir}/man8/fence_rsa.8* + +%package rsb +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for Fujitsu RSB +Requires: openssh-clients +%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} +%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) +Requires: telnet +%else +Recommends: telnet +%endif +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description rsb +Fence agent for Fujitsu RSB devices that are accessed +via telnet or SSH. +%files rsb +%{_sbindir}/fence_rsb +%{_mandir}/man8/fence_rsb.8* + +%package sbd +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for SBD (storage-based death) +Requires: sbd +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description sbd +Fence agent for SBD (storage-based death). +%files sbd +%{_sbindir}/fence_sbd +%{_mandir}/man8/fence_sbd.8* + +%package scsi +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for SCSI persistent reservations +Requires: sg3_utils +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description scsi +Fence agent for SCSI persistent reservations. +%files scsi +%{_sbindir}/fence_scsi +%{_datadir}/cluster/fence_scsi_check +%{_datadir}/cluster/fence_scsi_check_hardreboot +%{_mandir}/man8/fence_scsi.8* + +# skipped from allfenceagents +%package virsh +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for virtual machines based on libvirt +Requires: openssh-clients /usr/bin/virsh +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description virsh +Fence agent for virtual machines that are accessed via SSH. +%files virsh +%{_sbindir}/fence_virsh +%{_mandir}/man8/fence_virsh.8* + +%package vmware-rest +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for VMWare with REST API +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +Obsoletes: fence-agents < 3.1.13 +%description vmware-rest +Fence agent for VMWare with REST API. +%files vmware-rest +%{_sbindir}/fence_vmware_rest +%{_mandir}/man8/fence_vmware_rest.8* + +%package vmware-soap +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for VMWare with SOAP API v4.1+ +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description vmware-soap +Fence agent for VMWare with SOAP API v4.1+. +%files vmware-soap +%{_sbindir}/fence_vmware_soap +%{_mandir}/man8/fence_vmware_soap.8* + +%package wti +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for WTI Network power switches +Requires: openssh-clients +%if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} +%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) +Requires: telnet +%else +Recommends: telnet +%endif +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description wti +Fence agent for WTI network power switches that are accessed +via telnet or SSH. +%files wti +%{_sbindir}/fence_wti +%{_mandir}/man8/fence_wti.8* + +%ifarch s390x +%package zvm +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for IBM z/VM over IP +Requires: fence-agents-common = %{version}-%{release} +%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} +Requires(preun): %{systemd_units} +Requires(postun): %{systemd_units} +%description -n fence-virt +Fencing agent for virtual machines. +%files -n fence-virt +%doc agents/virt/docs/* +%{_sbindir}/fence_virt +%{_sbindir}/fence_xvm +%{_mandir}/man8/fence_virt.* +%{_mandir}/man8/fence_xvm.* + +%package -n fence-virtd +Summary: Daemon which handles requests from fence-virt +%description -n fence-virtd +This package provides the host server framework, fence_virtd, +for fence_virt. The fence_virtd host daemon is resposible for +processing fencing requests from virtual machines and routing +the requests to the appropriate physical machine for action. +%files -n fence-virtd +%{_sbindir}/fence_virtd +%{_unitdir}/fence_virtd.service +%config(noreplace) %{_sysconfdir}/fence_virt.conf +%dir %{_libdir}/fence-virt +%{_libdir}/fence-virt/vsock.so +%{_mandir}/man5/fence_virt.conf.* +%{_mandir}/man8/fence_virtd.* + +%package -n fence-virtd-multicast +Summary: Multicast listener for fence-virtd +Requires: fence-virtd +%description -n fence-virtd-multicast +Provides multicast listener capability for fence-virtd. +%files -n fence-virtd-multicast +%{_libdir}/fence-virt/multicast.so + +%package -n fence-virtd-serial +Summary: Serial VMChannel listener for fence-virtd +Requires: libvirt >= 0.6.2 +Requires: fence-virtd +%description -n fence-virtd-serial +Provides serial VMChannel listener capability for fence-virtd. +%files -n fence-virtd-serial +%{_libdir}/fence-virt/serial.so + +%package -n fence-virtd-tcp +Summary: TCP listener for fence-virtd +Requires: fence-virtd +%description -n fence-virtd-tcp +Provides TCP listener capability for fence-virtd. +%files -n fence-virtd-tcp +%{_libdir}/fence-virt/tcp.so + +%package -n fence-virtd-libvirt +Summary: Libvirt backend for fence-virtd +Requires: libvirt >= 0.6.0 +Requires: fence-virtd +%description -n fence-virtd-libvirt +Provides fence_virtd with a connection to libvirt to fence +virtual machines. Useful for running a cluster of virtual +machines on a desktop. +%files -n fence-virtd-libvirt +%{_libdir}/fence-virt/virt.so + +%package -n fence-virtd-cpg +Summary: CPG/libvirt backend for fence-virtd +Requires: corosynclib +Requires: fence-virtd +%description -n fence-virtd-cpg +Provides fence_virtd with a connection to libvirt to fence +virtual machines. Uses corosync CPG to keep track of VM +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 +* Tue Aug 31 2021 Oyvind Albrigtsen - 4.10.0-9 +- Only build fence-virt subpackages for x86_64 arch + Resolves: rhbz#1965988 + +* Tue Aug 31 2021 Oyvind Albrigtsen - 4.10.0-8 +- OpenStack agents: add dependency + Resolves: rhbz#1857247 + +* Wed Aug 25 2021 Oyvind Albrigtsen - 4.10.0-7 +- remove suds dependency + Resolves: rhbz#1989149 + +* Mon Aug 09 2021 Mohan Boddu - 4.10.0-4 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Mon Jul 26 2021 Oyvind Albrigtsen - 4.10.0-2 +- new upstream release + Resolves: rhbz#1984803 + +* Wed Jul 7 2021 Oyvind Albrigtsen - 4.9.0-5 +- Remove "BuildArch: noarch" for arch-specific subpackages + Resolves: rhbz#1979827 + +* Fri Jun 4 2021 Oyvind Albrigtsen - 4.9.0-1 +- Rebase and add fence-virt subpackages + Resolves: rhbz#1965988 + +* Tue May 18 2021 Oyvind Albrigtsen - 4.7.1-10 +- remove pexpect dependency + Resolves: rhbz#1961551 + +* Thu Apr 15 2021 Mohan Boddu - 4.7.1-9 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Mar 23 2021 Oyvind Albrigtsen - 4.7.1-8 +- cloud agents: only build for x86_64 + +* Thu Mar 4 2021 Oyvind Albrigtsen - 4.7.1-5 +- update HA cloud support package + +* Mon Feb 15 2021 Oyvind Albrigtsen - 4.7.1-4 +- create HA cloud support package + +* 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 + +* 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 + +