From d10cafccec809efbdad5f955332a3b6f3b0d5ebd Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 7 Dec 2021 11:49:45 -0500 Subject: [PATCH] import fence-agents-4.10.0-12.el9 --- .fence-agents.metadata | 29 ++++ .gitignore | 29 ++++ SOURCES/bz2000954-1-configure-fix-virt.patch | 24 +++ SOURCES/bz2000954-2-fence_kubevirt.patch | 160 ++++++++++++++++++ ..._arm-fix-sovereign-cloud-msi-support.patch | 139 +++++++++++++++ ...ence_amt_ws-fix-or-causing-dead-code.patch | 22 +++ ...2334-fence_zvmip-add-ssl-tls-support.patch | 136 +++++++++++++++ SPECS/fence-agents.spec | 150 +++++++++++++++- 8 files changed, 686 insertions(+), 3 deletions(-) create mode 100644 SOURCES/bz2000954-1-configure-fix-virt.patch create mode 100644 SOURCES/bz2000954-2-fence_kubevirt.patch create mode 100644 SOURCES/bz2010652-fence_azure_arm-fix-sovereign-cloud-msi-support.patch create mode 100644 SOURCES/bz2010709-fence_amt_ws-fix-or-causing-dead-code.patch create mode 100644 SOURCES/bz2022334-fence_zvmip-add-ssl-tls-support.patch diff --git a/.fence-agents.metadata b/.fence-agents.metadata index 357a9dd..dbe08d2 100644 --- a/.fence-agents.metadata +++ b/.fence-agents.metadata @@ -1,5 +1,8 @@ +3297473a9d57e93ff378eab173990c1b64673c01 SOURCES/Jinja2-3.0.2.tar.gz +e1b766b2b1601fde67b3b19ed2f13b9746bb1cca SOURCES/MarkupSafe-2.0.1.tar.gz e1fb5dc6f95a85e7d1f93c6701b331201e8b5479 SOURCES/PyJWT-2.1.0-py3-none-any.whl 53fc16036940089ceadd4127381e40fd6106a7ed SOURCES/PyYAML-5.1.tar.gz +a8c40a3ae9d4c159382a58db3153d83e5521c51e SOURCES/PyYAML-6.0.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 @@ -15,10 +18,13 @@ e20df6c9635f1db9a3c891b9239b4319d88b1747 SOURCES/azure_mgmt_core-1.2.2-py2.py3-n 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 +0d12f48faa727f0979e9ad5c4c80dfa32b73caff SOURCES/cachetools-4.2.4.tar.gz +b13e22d55867e2ca5f92e5289cfdc21ba6e343aa SOURCES/certifi-2021.10.8.tar.gz 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 +865df92e66e5dc7b940144cbad8115c07dc8784f SOURCES/charset-normalizer-2.0.7.tar.gz 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 @@ -27,6 +33,7 @@ dfabded3494bffe6965b1bf3d37383736e642bdb SOURCES/debtcollector-2.2.0-py3-none-an 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 +f4e578dc0ed68d6667d7b36cdfc2647d55e9858f SOURCES/google-auth-2.3.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 @@ -35,16 +42,20 @@ dc553afa7a3f23b92ee9ecd27d0b15153c0e9f75 SOURCES/googleapis_common_protos-1.53.0 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 +08c0449533fc94462f78652dea209099754d9ee4 SOURCES/idna-3.3.tar.gz 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 +d06a9547b1a87e9c51b0a7c708189d993f2e3d89 SOURCES/kubernetes-12.0.1.tar.gz 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 +f6efa66f6106b069b5c0e0cf8cc677e4e96c91ca SOURCES/oauthlib-3.1.1.tar.gz +570d69d8c108ebb8aee562389d13b07dfb61ce25 SOURCES/openshift-0.12.1.tar.gz 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 @@ -52,17 +63,22 @@ e26e191810fd455958aa3fcf7c7447180c14de8d SOURCES/oslo.config-8.7.1-py3-none-any. 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 +bccbc1bf76a9db46998eb8e1ffa2f2a2baf9237a SOURCES/packaging-21.2-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 +18659a0dea5600df33eab90dec1b597e2437aebd SOURCES/poetry-core-1.0.7.tar.gz 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 +e0fa19f8fda46a1fa2253477499b116b33f67175 SOURCES/pyasn1-0.4.8.tar.gz +43b89feb6864fe359aae89120627165219de313b SOURCES/pyasn1-modules-0.2.8.tar.gz 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 +6082312a090f5be5e796e0854294da0738ec0379 SOURCES/pyparsing-3.0.1.tar.gz 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 @@ -71,24 +87,37 @@ e58f6fa56f1baf766ba147dbc9fbfc67fa92e234 SOURCES/pyroute2.ethtool-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 +c2ba10c775b7a52a4b57cac4d4110a0c0f812a82 SOURCES/python-dateutil-2.8.2.tar.gz +1dc2fa004aa6517f1620e55d8a7b8e68a9cf2a47 SOURCES/python-string-utils-1.0.0.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 +8c7a89d183d3e9b70bf91ba5b75eccf7111b9d8d SOURCES/requests-2.26.0.tar.gz +f139aed770519b6a095b8fdc888d03955cbe9d8e SOURCES/requests-oauthlib-1.3.0.tar.gz 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 +e8a53067e03fe1b6682fd99a40a7359396a06daa SOURCES/rsa-4.7.2.tar.gz abf532a0cc31ea224e3895f60025e7466b16d7ae SOURCES/ruamel.yaml-0.15.100.tar.gz +d1011ff44cd5a045de0460c1b79ec65592e86860 SOURCES/ruamel.yaml-0.17.16.tar.gz +27de97227bbbde5a9f571f9fad223578d7bdf7cc SOURCES/ruamel.yaml.clib-0.2.6.tar.gz d7eb0ced8b9f12005ad6f13035689d5611f8a81a SOURCES/s3transfer-0.4.2-py2.py3-none-any.whl 0b0fcb339be89ae1b6360dbfb2be2075ae9f84c9 SOURCES/setuptools-57.0.0-py3-none-any.whl +d5354718cb8c9330d3abc27445467ce8a5ed9d70 SOURCES/setuptools-58.3.0.tar.gz +a4f02fddae697614e356cadfddb6241cc7737f38 SOURCES/setuptools_scm-6.3.2.tar.gz 79e6f2e4f9e24898f1896df379871b9c9922f147 SOURCES/six-1.16.0-py2.py3-none-any.whl +06fa0bb50f2a4e2917fd14c21e9d2d5508ce0163 SOURCES/six-1.16.0.tar.gz c612ea4b006feec1444ac61c233632f7e4852380 SOURCES/stevedore-3.4.0-py3-none-any.whl 47a980b20875d1a1714e921552b5bb0eda190f37 SOURCES/suds_community-0.8.5-py3-none-any.whl +b42b7960047441db7dc021cc20e14279bd836f8d SOURCES/tomli-1.0.1.tar.gz 83be56610e5f824bb05ff7a5618d6d4df9b6cc08 SOURCES/uritemplate-3.0.1-py2.py3-none-any.whl 206b17697417cbf5fc55f1e39c7ceb2197fe3e63 SOURCES/urllib3-1.26.6-py2.py3-none-any.whl +eb35c3fd8b0867ae988a15917d6b80e8bdf60222 SOURCES/urllib3-1.26.7.tar.gz 7126323614cada181bc8b06436e80ef372ff8656 SOURCES/wcwidth-0.1.9-py2.py3-none-any.whl 6cbb5d6384f6d2c8667fb3c5710ecf90dbf9e7fc SOURCES/wcwidth-0.2.5-py2.py3-none-any.whl +540f083782c584989c1a0f69ffd69ba7aae07db6 SOURCES/websocket-client-1.2.1.tar.gz 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 index 05aa68e..7a5fd7b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ +SOURCES/Jinja2-3.0.2.tar.gz +SOURCES/MarkupSafe-2.0.1.tar.gz SOURCES/PyJWT-2.1.0-py3-none-any.whl SOURCES/PyYAML-5.1.tar.gz +SOURCES/PyYAML-6.0.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 @@ -15,10 +18,13 @@ 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/cachetools-4.2.4.tar.gz +SOURCES/certifi-2021.10.8.tar.gz 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.7.tar.gz 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 @@ -27,6 +33,7 @@ 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-auth-2.3.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 @@ -35,16 +42,20 @@ 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/idna-3.3.tar.gz 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/kubernetes-12.0.1.tar.gz 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/oauthlib-3.1.1.tar.gz +SOURCES/openshift-0.12.1.tar.gz 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 @@ -52,17 +63,22 @@ 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/packaging-21.2-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/poetry-core-1.0.7.tar.gz 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-0.4.8.tar.gz +SOURCES/pyasn1-modules-0.2.8.tar.gz 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/pyparsing-3.0.1.tar.gz SOURCES/pyroute2-0.6.4.tar.gz SOURCES/pyroute2.core-0.6.4.tar.gz SOURCES/pyroute2.ethtool-0.6.4.tar.gz @@ -71,24 +87,37 @@ 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.2.tar.gz +SOURCES/python-string-utils-1.0.0.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-2.26.0.tar.gz +SOURCES/requests-oauthlib-1.3.0.tar.gz 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/rsa-4.7.2.tar.gz SOURCES/ruamel.yaml-0.15.100.tar.gz +SOURCES/ruamel.yaml-0.17.16.tar.gz +SOURCES/ruamel.yaml.clib-0.2.6.tar.gz SOURCES/s3transfer-0.4.2-py2.py3-none-any.whl SOURCES/setuptools-57.0.0-py3-none-any.whl +SOURCES/setuptools-58.3.0.tar.gz +SOURCES/setuptools_scm-6.3.2.tar.gz SOURCES/six-1.16.0-py2.py3-none-any.whl +SOURCES/six-1.16.0.tar.gz SOURCES/stevedore-3.4.0-py3-none-any.whl SOURCES/suds_community-0.8.5-py3-none-any.whl +SOURCES/tomli-1.0.1.tar.gz SOURCES/uritemplate-3.0.1-py2.py3-none-any.whl SOURCES/urllib3-1.26.6-py2.py3-none-any.whl +SOURCES/urllib3-1.26.7.tar.gz SOURCES/wcwidth-0.1.9-py2.py3-none-any.whl SOURCES/wcwidth-0.2.5-py2.py3-none-any.whl +SOURCES/websocket-client-1.2.1.tar.gz SOURCES/wheel-0.37.0-py2.py3-none-any.whl SOURCES/wrapt-1.12.1.tar.gz diff --git a/SOURCES/bz2000954-1-configure-fix-virt.patch b/SOURCES/bz2000954-1-configure-fix-virt.patch new file mode 100644 index 0000000..de556a4 --- /dev/null +++ b/SOURCES/bz2000954-1-configure-fix-virt.patch @@ -0,0 +1,24 @@ +From 52de83b30a8eea638b01f649f4884f50417121c0 Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Mon, 8 Nov 2021 09:55:11 +0100 +Subject: [PATCH] configure: fix --with-agents to not match *virt in regex + +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 7aa51e75d..76aec7186 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -173,8 +173,8 @@ if echo "$AGENTS_LIST" | grep -q -E "all|zvm( |$)"; then + fi + + FENCE_VIRT=0 +-if echo "$AGENTS_LIST" | grep -q -E "all|virt( |$)"; then +- AGENTS_LIST=$(echo "$AGENTS_LIST" | sed -E "s/virt( |$)//") ++if echo "$AGENTS_LIST" | grep -q -E "all|(^| )virt( |$)"; then ++ AGENTS_LIST=$(echo "$AGENTS_LIST" | sed -E "s/(^| )virt( |$)//") + case "$host_os" in + *bsd*) + ;; diff --git a/SOURCES/bz2000954-2-fence_kubevirt.patch b/SOURCES/bz2000954-2-fence_kubevirt.patch new file mode 100644 index 0000000..f7de84a --- /dev/null +++ b/SOURCES/bz2000954-2-fence_kubevirt.patch @@ -0,0 +1,160 @@ +--- fence-agents-4.10.0/agents/kubevirt/fence_kubevirt.py 2021-07-08 13:09:05.000000000 +0200 ++++ /home/oalbrigt/rhpkg/fence-agents-8.6/fence-agents-4.2.1/agents/kubevirt/fence_kubevirt.py 2021-11-02 15:35:46.217440426 +0100 +@@ -2,24 +2,25 @@ + + import sys + import logging ++import atexit + sys.path.append("@FENCEAGENTSLIBDIR@") + from fencing import * +-from fencing import fail, fail_usage, run_delay, EC_STATUS ++from fencing import fail, fail_usage, run_delay, EC_STATUS, EC_FETCH_VM_UUID + + try: ++ sys.path.insert(0, '/usr/lib/fence-agents/bundled/kubevirt') + from kubernetes.client.exceptions import ApiException + except ImportError: + logging.error("Couldn\'t import kubernetes.client.exceptions.ApiException - not found or not accessible") + +-API_VERSION='kubevirt.io/v1' +- + def get_nodes_list(conn, options): + logging.debug("Starting list/monitor operation") + result = {} + try: ++ apiversion = options.get("--apiversion") + namespace = options.get("--namespace") + include_uninitialized = True +- vm_api = conn.resources.get(api_version=API_VERSION, kind='VirtualMachine') ++ vm_api = conn.resources.get(api_version=apiversion, kind='VirtualMachine') + vm_list = vm_api.get(namespace=namespace) + for vm in vm_list.items: + result[vm.metadata.name] = ("", None) +@@ -30,18 +31,21 @@ + def get_power_status(conn, options): + logging.debug("Starting get status operation") + try: ++ apiversion = options.get("--apiversion") + namespace = options.get("--namespace") + name = options.get("--plug") +- vmi_api = conn.resources.get(api_version=API_VERSION, ++ vmi_api = conn.resources.get(api_version=apiversion, + kind='VirtualMachineInstance') + vmi = vmi_api.get(name=name, namespace=namespace) +- if vmi is not None: +- phase = vmi.status.phase +- if phase == "Running": +- return "on" +- return "off" ++ return translate_status(vmi.status.phase) + except ApiException as e: + if e.status == 404: ++ try: ++ vm_api = conn.resources.get(api_version=apiversion, kind='VirtualMachine') ++ vm = vm_api.get(name=name, namespace=namespace) ++ except ApiException as e: ++ logging.error("VM %s doesn't exist", name) ++ fail(EC_FETCH_VM_UUID) + return "off" + logging.error("Failed to get power status, with API Exception: %s", e) + fail(EC_STATUS) +@@ -49,38 +53,53 @@ + logging.error("Failed to get power status, with Exception: %s", e) + fail(EC_STATUS) + ++def translate_status(instance_status): ++ if instance_status == "Running": ++ return "on" ++ return "unknown" ++ + def set_power_status(conn, options): + logging.debug("Starting set status operation") + try: ++ apiversion= options.get("--apiversion") + namespace = options.get("--namespace") + name = options.get("--plug") + action = 'start' if options["--action"] == "on" else 'stop' +- virtctl_vm_action(conn, action, namespace, name) ++ virtctl_vm_action(conn, action, namespace, name, apiversion) + except Exception as e: + logging.error("Failed to set power status, with Exception: %s", e) + fail(EC_STATUS) + + def define_new_opts(): +- all_opt["namespace"] = { +- "getopt" : ":", +- "longopt" : "namespace", +- "help" : "--namespace=[namespace] Namespace of the KubeVirt machine", +- "shortdesc" : "Namespace of the KubeVirt machine.", +- "required" : "1", +- "order" : 2 +- } +- all_opt["kubeconfig"] = { +- "getopt" : ":", +- "longopt" : "kubeconfig", +- "help" : "--kubeconfig=[kubeconfig] Kubeconfig file path", +- "shortdesc": "Kubeconfig file path", +- "required": "0", +- "order": 4 +- } ++ all_opt["namespace"] = { ++ "getopt" : ":", ++ "longopt" : "namespace", ++ "help" : "--namespace=[namespace] Namespace of the KubeVirt machine", ++ "shortdesc" : "Namespace of the KubeVirt machine.", ++ "required" : "1", ++ "order" : 2 ++ } ++ all_opt["kubeconfig"] = { ++ "getopt" : ":", ++ "longopt" : "kubeconfig", ++ "help" : "--kubeconfig=[kubeconfig] Kubeconfig file path", ++ "shortdesc": "Kubeconfig file path", ++ "required": "0", ++ "order": 4 ++ } ++ all_opt["apiversion"] = { ++ "getopt" : ":", ++ "longopt" : "apiversion", ++ "help" : "--apiversion=[apiversion] Version of the KubeVirt API", ++ "shortdesc" : "Version of the KubeVirt API.", ++ "required" : "0", ++ "default" : "kubevirt.io/v1", ++ "order" : 5 ++ } + +-def virtctl_vm_action(conn, action, namespace, name): ++def virtctl_vm_action(conn, action, namespace, name, apiversion): + path = '/apis/subresources.{api_version}/namespaces/{namespace}/virtualmachines/{name}/{action}' +- path = path.format(api_version=API_VERSION, namespace=namespace, name=name, action=action) ++ path = path.format(api_version=apiversion, namespace=namespace, name=name, action=action) + return conn.request('put', path, header_params={'accept': '*/*'}) + + def validate_options(required_options_list, options): +@@ -92,8 +111,13 @@ + def main(): + conn = None + +- device_opt = ["port", "namespace", "kubeconfig", "separator", "no_password"] ++ device_opt = ["port", "namespace", "kubeconfig", "ssl_insecure", "no_password", "apiversion"] ++ ++ atexit.register(atexit_handler) + define_new_opts() ++ ++ all_opt["power_timeout"]["default"] = "40" ++ + options = check_input(device_opt, process_input(device_opt)) + + docs = {} +@@ -106,6 +130,11 @@ + + validate_options(['--namespace'], options) + ++ # Disable insecure-certificate-warning message ++ if "--ssl-insecure" in options: ++ import urllib3 ++ urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) ++ + try: + from kubernetes import config + from openshift.dynamic import DynamicClient diff --git a/SOURCES/bz2010652-fence_azure_arm-fix-sovereign-cloud-msi-support.patch b/SOURCES/bz2010652-fence_azure_arm-fix-sovereign-cloud-msi-support.patch new file mode 100644 index 0000000..4077484 --- /dev/null +++ b/SOURCES/bz2010652-fence_azure_arm-fix-sovereign-cloud-msi-support.patch @@ -0,0 +1,139 @@ +From e339f304d4423a0e661d915f72ba88553b21d74a Mon Sep 17 00:00:00 2001 +From: MSSedusch +Date: Tue, 28 Sep 2021 12:23:37 +0000 +Subject: [PATCH 1/2] add support for sovereign clouds and MSI + +--- + lib/azure_fence.py.py | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/lib/azure_fence.py.py b/lib/azure_fence.py.py +index 1f38bd4ea..75b63fdad 100644 +--- a/lib/azure_fence.py.py ++++ b/lib/azure_fence.py.py +@@ -286,11 +286,11 @@ def get_azure_credentials(config): + credentials = None + cloud_environment = get_azure_cloud_environment(config) + if config.UseMSI and cloud_environment: +- from msrestazure.azure_active_directory import MSIAuthentication +- credentials = MSIAuthentication(cloud_environment=cloud_environment) ++ from azure.identity import ManagedIdentityCredential ++ credentials = ManagedIdentityCredential(cloud_environment=cloud_environment) + elif config.UseMSI: +- from msrestazure.azure_active_directory import MSIAuthentication +- credentials = MSIAuthentication() ++ from azure.identity import ManagedIdentityCredential ++ credentials = ManagedIdentityCredential() + elif cloud_environment: + try: + # try to use new libraries ClientSecretCredential (azure.identity, based on azure.core) +@@ -340,7 +340,8 @@ def get_azure_compute_client(config): + compute_client = ComputeManagementClient( + credentials, + config.SubscriptionId, +- base_url=cloud_environment.endpoints.resource_manager ++ base_url=cloud_environment.endpoints.resource_manager, ++ credential_scopes=[cloud_environment.endpoints.resource_manager + "/.default"] + ) + else: + compute_client = ComputeManagementClient( +@@ -359,7 +360,8 @@ def get_azure_network_client(config): + network_client = NetworkManagementClient( + credentials, + config.SubscriptionId, +- base_url=cloud_environment.endpoints.resource_manager ++ base_url=cloud_environment.endpoints.resource_manager, ++ credential_scopes=[cloud_environment.endpoints.resource_manager + "/.default"] + ) + else: + network_client = NetworkManagementClient( + +From f08f02a7561e78dd9c95c66ccdcf6246c5ee7d6a Mon Sep 17 00:00:00 2001 +From: MSSedusch +Date: Fri, 1 Oct 2021 15:28:39 +0000 +Subject: [PATCH 2/2] compatiblity fix + +--- + lib/azure_fence.py.py | 54 ++++++++++++++++++++++++++++++------------- + 1 file changed, 38 insertions(+), 16 deletions(-) + +diff --git a/lib/azure_fence.py.py b/lib/azure_fence.py.py +index 75b63fdad..5ca71eb42 100644 +--- a/lib/azure_fence.py.py ++++ b/lib/azure_fence.py.py +@@ -286,11 +286,19 @@ def get_azure_credentials(config): + credentials = None + cloud_environment = get_azure_cloud_environment(config) + if config.UseMSI and cloud_environment: +- from azure.identity import ManagedIdentityCredential +- credentials = ManagedIdentityCredential(cloud_environment=cloud_environment) ++ try: ++ from azure.identity import ManagedIdentityCredential ++ credentials = ManagedIdentityCredential(cloud_environment=cloud_environment) ++ except ImportError: ++ from msrestazure.azure_active_directory import MSIAuthentication ++ credentials = MSIAuthentication(cloud_environment=cloud_environment) + elif config.UseMSI: +- from azure.identity import ManagedIdentityCredential +- credentials = ManagedIdentityCredential() ++ try: ++ from azure.identity import ManagedIdentityCredential ++ credentials = ManagedIdentityCredential() ++ except ImportError: ++ from msrestazure.azure_active_directory import MSIAuthentication ++ credentials = MSIAuthentication() + elif cloud_environment: + try: + # try to use new libraries ClientSecretCredential (azure.identity, based on azure.core) +@@ -337,12 +345,19 @@ def get_azure_compute_client(config): + credentials = get_azure_credentials(config) + + if cloud_environment: +- compute_client = ComputeManagementClient( +- credentials, +- config.SubscriptionId, +- base_url=cloud_environment.endpoints.resource_manager, +- credential_scopes=[cloud_environment.endpoints.resource_manager + "/.default"] +- ) ++ try: ++ compute_client = ComputeManagementClient( ++ credentials, ++ config.SubscriptionId, ++ base_url=cloud_environment.endpoints.resource_manager, ++ credential_scopes=[cloud_environment.endpoints.resource_manager + "/.default"] ++ ) ++ except TypeError: ++ compute_client = ComputeManagementClient( ++ credentials, ++ config.SubscriptionId, ++ base_url=cloud_environment.endpoints.resource_manager ++ ) + else: + compute_client = ComputeManagementClient( + credentials, +@@ -357,12 +372,19 @@ def get_azure_network_client(config): + credentials = get_azure_credentials(config) + + if cloud_environment: +- network_client = NetworkManagementClient( +- credentials, +- config.SubscriptionId, +- base_url=cloud_environment.endpoints.resource_manager, +- credential_scopes=[cloud_environment.endpoints.resource_manager + "/.default"] +- ) ++ try: ++ network_client = NetworkManagementClient( ++ credentials, ++ config.SubscriptionId, ++ base_url=cloud_environment.endpoints.resource_manager, ++ credential_scopes=[cloud_environment.endpoints.resource_manager + "/.default"] ++ ) ++ except TypeError: ++ network_client = NetworkManagementClient( ++ credentials, ++ config.SubscriptionId, ++ base_url=cloud_environment.endpoints.resource_manager ++ ) + else: + network_client = NetworkManagementClient( + credentials, diff --git a/SOURCES/bz2010709-fence_amt_ws-fix-or-causing-dead-code.patch b/SOURCES/bz2010709-fence_amt_ws-fix-or-causing-dead-code.patch new file mode 100644 index 0000000..bdbeab0 --- /dev/null +++ b/SOURCES/bz2010709-fence_amt_ws-fix-or-causing-dead-code.patch @@ -0,0 +1,22 @@ +From 06855a8227fa91f6216119daa3d32d5858c62837 Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Mon, 27 Sep 2021 12:05:41 +0200 +Subject: [PATCH] fence_amt_ws: fix "or" causing dead code + +--- + agents/amt_ws/fence_amt_ws.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/agents/amt_ws/fence_amt_ws.py b/agents/amt_ws/fence_amt_ws.py +index 23c8a61a4..122cec309 100755 +--- a/agents/amt_ws/fence_amt_ws.py ++++ b/agents/amt_ws/fence_amt_ws.py +@@ -148,7 +148,7 @@ def set_boot_order(_, client, options): + + if options["--boot-option"] == "pxe": + device = "Intel(r) AMT: Force PXE Boot" +- elif options["--boot-option"] == "hd" or "hdsafe": ++ elif options["--boot-option"] in ["hd", "hdsafe"]: + device = "Intel(r) AMT: Force Hard-drive Boot" + elif options["--boot-option"] == "cd": + device = "Intel(r) AMT: Force CD/DVD Boot" diff --git a/SOURCES/bz2022334-fence_zvmip-add-ssl-tls-support.patch b/SOURCES/bz2022334-fence_zvmip-add-ssl-tls-support.patch new file mode 100644 index 0000000..71607bc --- /dev/null +++ b/SOURCES/bz2022334-fence_zvmip-add-ssl-tls-support.patch @@ -0,0 +1,136 @@ +From 81be3c529ec1165f3135b4f14fbec2a19403cfbe Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Fri, 27 Aug 2021 08:53:36 +0200 +Subject: [PATCH 1/2] fence_zvmip: add ssl/tls support + +--- + agents/zvm/fence_zvmip.py | 20 ++++++++++++++++---- + tests/data/metadata/fence_zvmip.xml | 19 +++++++++++++++++++ + 2 files changed, 35 insertions(+), 4 deletions(-) + +diff --git a/agents/zvm/fence_zvmip.py b/agents/zvm/fence_zvmip.py +index 001106a44..874eb699f 100644 +--- a/agents/zvm/fence_zvmip.py ++++ b/agents/zvm/fence_zvmip.py +@@ -26,12 +26,22 @@ def open_socket(options): + except socket.gaierror: + fail(EC_LOGIN_DENIED) + +- conn = socket.socket() ++ if "--ssl" in options: ++ import ssl ++ sock = socket.socket() ++ sslcx = ssl.create_default_context() ++ if "--ssl-insecure" in options: ++ sslcx.check_hostname = False ++ sslcx.verify_mode = ssl.CERT_NONE ++ conn = sslcx.wrap_socket(sock, server_hostname=options["--ip"]) ++ else: ++ conn = socket.socket() + conn.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + conn.settimeout(float(options["--shell-timeout"]) or None) + try: + conn.connect(addr) +- except socket.error: ++ except socket.error as e: ++ logging.debug(e) + fail(EC_LOGIN_DENIED) + + return conn +@@ -122,11 +132,12 @@ def get_list_of_images(options, command, data_as_plug): + images = set() + + if output_len > 3*INT4: ++ recvflag = socket.MSG_WAITALL if "--ssl" not in options else 0 + array_len = struct.unpack("!i", conn.recv(INT4))[0] + data = "" + + while True: +- read_data = conn.recv(1024, socket.MSG_WAITALL).decode("UTF-8") ++ read_data = conn.recv(1024, recvflag).decode("UTF-8") + data += read_data + if array_len == len(data): + break +@@ -146,7 +157,8 @@ def get_list_of_images(options, command, data_as_plug): + return (return_code, reason_code, images) + + def main(): +- device_opt = ["ipaddr", "login", "passwd", "port", "method", "missing_as_off", "inet4_only", "inet6_only"] ++ device_opt = ["ipaddr", "login", "passwd", "port", "method", "missing_as_off", ++ "inet4_only", "inet6_only", "ssl"] + + atexit.register(atexit_handler) + +diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_zvmip.xml +index f84115c08..d91192946 100644 +--- a/tests/data/metadata/fence_zvmip.xml ++++ b/tests/data/metadata/fence_zvmip.xml +@@ -91,6 +91,21 @@ to access the system's directory manager. + + Physical plug number on device, UUID or identification of machine + ++ ++ ++ ++ Use SSL connection with verifying certificate ++ ++ ++ ++ ++ Use SSL connection without verifying certificate ++ ++ ++ ++ ++ Use SSL connection with verifying certificate ++ + + + +@@ -181,6 +196,10 @@ to access the system's directory manager. + + Count of attempts to retry power on + ++ ++ ++ Path to gnutls-cli binary ++ + + + + +From 8021e698095c5bd0ef33ee5f56fc448e946cb92c Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Wed, 10 Nov 2021 16:31:24 +0100 +Subject: [PATCH 2/2] fence_zvmip: use ssl by default + +--- + agents/zvm/fence_zvmip.py | 1 + + tests/data/metadata/fence_zvmip.xml | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/agents/zvm/fence_zvmip.py b/agents/zvm/fence_zvmip.py +index 874eb699f..96021b13e 100644 +--- a/agents/zvm/fence_zvmip.py ++++ b/agents/zvm/fence_zvmip.py +@@ -165,6 +165,7 @@ def main(): + all_opt["ipport"]["default"] = "44444" + all_opt["shell_timeout"]["default"] = "5" + all_opt["missing_as_off"]["default"] = "1" ++ all_opt["ssl"]["default"] = "1" + options = check_input(device_opt, process_input(device_opt), other_conditions=True) + + if len(options.get("--plug", "")) > 8: +diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_zvmip.xml +index d91192946..f32fc159d 100644 +--- a/tests/data/metadata/fence_zvmip.xml ++++ b/tests/data/metadata/fence_zvmip.xml +@@ -93,7 +93,7 @@ to access the system's directory manager. + + + +- ++ + Use SSL connection with verifying certificate + + diff --git a/SPECS/fence-agents.spec b/SPECS/fence-agents.spec index 747b2ec..b721013 100644 --- a/SPECS/fence-agents.spec +++ b/SPECS/fence-agents.spec @@ -6,10 +6,60 @@ # keep around ready for later user ## global alphatag git0a6184070 +# bundles +%global bundled_lib_dir bundled +# kubevirt +%global openshift openshift +%global openshift_version 0.12.1 +%global ruamelyamlclib ruamel.yaml.clib +%global ruamelyamlclib_version 0.2.6 +%global kubernetes kubernetes +%global kubernetes_version 12.0.1 +%global certifi certifi +%global certifi_version 2021.10.8 +%global googleauth google-auth +%global googleauth_version 2.3.0 +%global cachetools cachetools +%global cachetools_version 4.2.4 +%global pyasn1modules pyasn1-modules +%global pyasn1modules_version 0.2.8 +%global pyasn1 pyasn1 +%global pyasn1_version 0.4.8 +%global dateutil dateutil +%global dateutil_version 2.8.2 +%global pyyaml PyYAML +%global pyyaml_version 6.0 +%global six six +%global six_version 1.16.0 +%global urllib3 urllib3 +%global urllib3_version 1.26.7 +%global websocketclient websocket-client +%global websocketclient_version 1.2.1 +%global jinja2 Jinja2 +%global jinja2_version 3.0.2 +%global markupsafe MarkupSafe +%global markupsafe_version 2.0.1 +%global stringutils string-utils +%global stringutils_version 1.0.0 +%global requests requests +%global requests_version 2.26.0 +%global chrstnormalizer charset-normalizer +%global chrstnormalizer_version 2.0.7 +%global idna idna +%global idna_version 3.3 +%global reqstsoauthlib requests-oauthlib +%global reqstsoauthlib_version 1.3.0 +%global oauthlib oauthlib +%global oauthlib_version 3.1.1 +%global ruamelyaml ruamel.yaml +%global ruamelyaml_version 0.17.16 +%global setuptools setuptools +%global setuptools_version 58.3.0 + Name: fence-agents Summary: Set of unified programs capable of host isolation ("fencing") Version: 4.10.0 -Release: 9%{?alphatag:.%{alphatag}}%{?dist} +Release: 12%{?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 @@ -126,6 +176,42 @@ 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 ### +# kubevirt +## pip download --no-binary :all: openshift "ruamel.yaml.clib>=0.1.2" +### BEGIN +Source1091: %{openshift}-%{openshift_version}.tar.gz +Source1092: %{ruamelyamlclib}-%{ruamelyamlclib_version}.tar.gz +Source1093: %{kubernetes}-%{kubernetes_version}.tar.gz +Source1094: %{certifi}-%{certifi_version}.tar.gz +Source1095: %{googleauth}-%{googleauth_version}.tar.gz +Source1096: %{cachetools}-%{cachetools_version}.tar.gz +Source1097: %{pyasn1modules}-%{pyasn1modules_version}.tar.gz +Source1098: %{pyasn1}-%{pyasn1_version}.tar.gz +Source1099: python-%{dateutil}-%{dateutil_version}.tar.gz +Source1100: %{pyyaml}-%{pyyaml_version}.tar.gz +## rsa is dependency for "pip install", +## but gets removed to use cryptography lib instead +Source1101: rsa-4.7.2.tar.gz +Source1102: %{six}-%{six_version}.tar.gz +Source1103: %{urllib3}-%{urllib3_version}.tar.gz +Source1104: %{websocketclient}-%{websocketclient_version}.tar.gz +Source1105: %{jinja2}-%{jinja2_version}.tar.gz +Source1106: %{markupsafe}-%{markupsafe_version}.tar.gz +Source1107: python-%{stringutils}-%{stringutils_version}.tar.gz +Source1108: %{requests}-%{requests_version}.tar.gz +Source1109: %{chrstnormalizer}-%{chrstnormalizer_version}.tar.gz +Source1110: %{idna}-%{idna_version}.tar.gz +Source1111: %{reqstsoauthlib}-%{reqstsoauthlib_version}.tar.gz +Source1112: %{oauthlib}-%{oauthlib_version}.tar.gz +Source1113: %{ruamelyaml}-%{ruamelyaml_version}.tar.gz +Source1114: %{setuptools}-%{setuptools_version}.tar.gz +## required for installation +Source1115: setuptools_scm-6.3.2.tar.gz +Source1116: packaging-21.2-py3-none-any.whl +Source1117: poetry-core-1.0.7.tar.gz +Source1118: pyparsing-3.0.1.tar.gz +Source1119: tomli-1.0.1.tar.gz +### END Patch0: ha-cloud-support-aliyun.patch Patch1: ha-cloud-support-aws.patch @@ -134,8 +220,13 @@ Patch3: ha-cloud-support-google.patch Patch4: ha-openstack-support.patch Patch5: bundled-pexpect.patch Patch6: bundled-suds.patch +Patch7: bz2010652-fence_azure_arm-fix-sovereign-cloud-msi-support.patch +Patch8: bz2010709-fence_amt_ws-fix-or-causing-dead-code.patch +Patch9: bz2000954-1-configure-fix-virt.patch +Patch10: bz2000954-2-fence_kubevirt.patch +Patch11: bz2022334-fence_zvmip-add-ssl-tls-support.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 +%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 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 @@ -300,6 +391,11 @@ install -m 0644 agents/virt/fence_virtd.service %{buildroot}/%{_unitdir}/ %endif # XXX unsure if /usr/sbin/fence_* should be compiled as well +# kubevirt +%{__python3} -m pip install --user --no-index --find-links %{_sourcedir} setuptools-scm +%{__python3} -m pip install --target %{buildroot}/usr/lib/fence-agents/%{bundled_lib_dir}/kubevirt --no-index --find-links %{_sourcedir} openshift +rm -rf %{buildroot}/usr/lib/fence-agents/%{bundled_lib_dir}/kubevirt/rsa* + ## tree fix up # fix libfence permissions chmod 0755 %{buildroot}%{_datadir}/fence/*.py @@ -975,6 +1071,41 @@ Fence agent for use with kdump crash recovery service. %{_mandir}/man8/fence_kdump.8* %{_mandir}/man8/fence_kdump_send.8* +%package kubevirt +License: GPLv2+ and LGPLv2+ and ASL 2.0 and BSD and BSD-2-Clause and BSD-3-Clause and ISC and MIT and MPL-2.0 +Summary: Fence agent for KubeVirt platform +Requires: fence-agents-common = %{version}-%{release} +Provides: bundled(python3-%{openshift}) = %{openshift_version} +Provides: bundled(python3-%{ruamelyamlclib}) = %{ruamelyamlclib_version} +Provides: bundled(python3-%{kubernetes}) = %{kubernetes_version} +Provides: bundled(python3-%{certifi}) = %{certifi_version} +Provides: bundled(python3-%{googleauth}) = %{googleauth_version} +Provides: bundled(python3-%{cachetools}) = %{cachetools_version} +Provides: bundled(python3-%{pyasn1modules}) = %{pyasn1modules_version} +Provides: bundled(python3-%{pyasn1}) = %{pyasn1_version} +Provides: bundled(python3-%{dateutil}) = %{dateutil_version} +Provides: bundled(python3-%{pyyaml}) = %{pyyaml_version} +Provides: bundled(python3-%{six}) = %{six_version} +Provides: bundled(python3-%{urllib3}) = %{urllib3_version} +Provides: bundled(python3-%{websocketclient}) = %{websocketclient_version} +Provides: bundled(python3-%{jinja2}) = %{jinja2_version} +Provides: bundled(python3-%{markupsafe}) = %{markupsafe_version} +Provides: bundled(python3-%{stringutils}) = %{stringutils_version} +Provides: bundled(python3-%{requests}) = %{requests_version} +Provides: bundled(python3-%{chrstnormalizer}) = %{chrstnormalizer_version} +Provides: bundled(python3-%{idna}) = %{idna_version} +Provides: bundled(python3-%{reqstsoauthlib}) = %{reqstsoauthlib_version} +Provides: bundled(python3-%{oauthlib}) = %{oauthlib_version} +Provides: bundled(python3-%{ruamelyaml}) = %{ruamelyaml_version} +Provides: bundled(python3-%{setuptools}) = %{setuptools_version} +%description kubevirt +Fence agent for KubeVirt platform. +%files kubevirt +%{_sbindir}/fence_kubevirt +%{_mandir}/man8/fence_kubevirt.8* +# bundled libraries +/usr/lib/fence-agents/%{bundled_lib_dir}/kubevirt + %package lpar License: GPLv2+ and LGPLv2+ Summary: Fence agent for IBM LPAR @@ -1272,6 +1403,20 @@ are located on corosync cluster nodes. %endif %changelog +* Thu Nov 11 2021 Oyvind Albrigtsen - 4.10.0-12 +- fence_zvmip: add SSL/TLS support + Resolves: rhbz#2022334 + +* Mon Nov 8 2021 Oyvind Albrigtsen - 4.10.0-11 +- fence_kubevirt: new fence agent + Resolves: rhbz#2000954 + +* Tue Oct 5 2021 Oyvind Albrigtsen - 4.10.0-10 +- fence_azure_arm: fix sovereign cloud and MSI support + Resolves: rhbz#2010652 +- fence_amt_ws: fix "or" causing dead code + Resolves: rhbz#2010709 + * Tue Aug 31 2021 Oyvind Albrigtsen - 4.10.0-9 - Only build fence-virt subpackages for x86_64 arch Resolves: rhbz#1965988 @@ -1418,7 +1563,6 @@ are located on corosync cluster nodes. * 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