import fence-agents-4.10.0-12.el9
This commit is contained in:
parent
486485e98b
commit
d10cafccec
|
@ -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
|
e1fb5dc6f95a85e7d1f93c6701b331201e8b5479 SOURCES/PyJWT-2.1.0-py3-none-any.whl
|
||||||
53fc16036940089ceadd4127381e40fd6106a7ed SOURCES/PyYAML-5.1.tar.gz
|
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
|
b53cba68215f389dffaa51ee2afe10c943278646 SOURCES/adal-1.2.7-py2.py3-none-any.whl
|
||||||
bda476965c380701795849179ed91e9d8134ec7c SOURCES/aliyun-python-sdk-core-2.11.5.tar.gz
|
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
|
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
|
22507f43314ccb2dd203337e87ffafb385ba3627 SOURCES/botocore-1.20.102-py2.py3-none-any.whl
|
||||||
6ef53a76455b377b02b4774c32a04e241cdb24eb SOURCES/botocore-2.0.0dev123.zip
|
6ef53a76455b377b02b4774c32a04e241cdb24eb SOURCES/botocore-2.0.0dev123.zip
|
||||||
c953dcd6e69587e5b182d77255ed836172fea70a SOURCES/cachetools-4.2.2-py3-none-any.whl
|
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
|
2fcaa39108a9c99700c6f3f4198fcaa47b8ed707 SOURCES/certifi-2021.5.30-py2.py3-none-any.whl
|
||||||
17953cc85717e0f4501dbc7b5fb8e75d67dcdcd3 SOURCES/cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl
|
17953cc85717e0f4501dbc7b5fb8e75d67dcdcd3 SOURCES/cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl
|
||||||
96faab7de7e9a71b37f22adb64daf2898e967e3e SOURCES/chardet-3.0.4-py2.py3-none-any.whl
|
96faab7de7e9a71b37f22adb64daf2898e967e3e SOURCES/chardet-3.0.4-py2.py3-none-any.whl
|
||||||
e9eb83c71c09b3c8249bd7d6d2619b65fff03874 SOURCES/chardet-4.0.0-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
|
9fa96037a1a985fe7dda81c0e1e35ae015163d88 SOURCES/charset_normalizer-2.0.4-py3-none-any.whl
|
||||||
a8ee91adf4644bbdccfc73ead88f4cd0df7e3552 SOURCES/colorama-0.3.3.tar.gz
|
a8ee91adf4644bbdccfc73ead88f4cd0df7e3552 SOURCES/colorama-0.3.3.tar.gz
|
||||||
444d5ea320f95cd6205535a1be2805598847191b SOURCES/colorama-0.4.3-py2.py3-none-any.whl
|
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
|
4b50bebad4c5036c030a78cbb869d039bc91c4ec SOURCES/distro-1.5.0-py2.py3-none-any.whl
|
||||||
aafeddc912b74557754b2aaece3f1364be8e9f6a SOURCES/docutils-0.15.2-py3-none-any.whl
|
aafeddc912b74557754b2aaece3f1364be8e9f6a SOURCES/docutils-0.15.2-py3-none-any.whl
|
||||||
1ec823f807b73a377cdd47d12e2e34f046bfc889 SOURCES/fence-agents-4.10.0.tar.gz
|
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
|
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
|
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
|
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
|
74ec77d2e2ef6b2ef8503e6e398faa6f3ba298ae SOURCES/httplib2-0.19.1-py3-none-any.whl
|
||||||
999b6718b4d789d8ca0d2ddf7c07826154291825 SOURCES/idna-2.10-py2.py3-none-any.whl
|
999b6718b4d789d8ca0d2ddf7c07826154291825 SOURCES/idna-2.10-py2.py3-none-any.whl
|
||||||
e3a19aca36f6631ba9e33e66b855835776e8e120 SOURCES/idna-3.2-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
|
8672ed298c51abba24fdf5298ddeef7b16027071 SOURCES/iso8601-0.1.16-py2.py3-none-any.whl
|
||||||
240cc4206740fafacb74bbf0d0c4ff70e41c8a85 SOURCES/isodate-0.6.0-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
|
68904717c48e95adb47d815178fff8d80f39b2ab SOURCES/jmespath-0.7.1-py2.py3-none-any.whl
|
||||||
22a38dbc79cc3cbe53c2bf306ad22a472be1a6f4 SOURCES/keystoneauth1-4.3.1-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
|
194b341fe37fe6ce992c637a728484e3cee47394 SOURCES/msgpack-1.0.2.tar.gz
|
||||||
ba59fbd147307e7ef92a1fad259e7dc0b07e79e0 SOURCES/msrest-0.6.21-py2.py3-none-any.whl
|
ba59fbd147307e7ef92a1fad259e7dc0b07e79e0 SOURCES/msrest-0.6.21-py2.py3-none-any.whl
|
||||||
3d65a50b68e3aa506b6af42be485ed2710afa9da SOURCES/msrestazure-0.6.4-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
|
ee77c30d5350378e9ca9932b724d1a26c9cc164b SOURCES/netaddr-0.8.0-py2.py3-none-any.whl
|
||||||
c1dd2b481a0101eb518bf47bdf40ea53ab61ca62 SOURCES/netifaces-0.11.0.tar.gz
|
c1dd2b481a0101eb518bf47bdf40ea53ab61ca62 SOURCES/netifaces-0.11.0.tar.gz
|
||||||
0b5ba4c47bdd7ff17ca4954349d7213a95d03f25 SOURCES/oauthlib-3.1.1-py2.py3-none-any.whl
|
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
|
2b0aea8c7985b474f0719b916a1b6475caedf42f SOURCES/os_service_types-1.7.0-py2.py3-none-any.whl
|
||||||
e26e191810fd455958aa3fcf7c7447180c14de8d SOURCES/oslo.config-8.7.1-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
|
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
|
b302350fda92e8b96a402fbb4cdf639f06192b62 SOURCES/oslo.utils-4.10.0-py3-none-any.whl
|
||||||
2b10cb7681bc678ba4ff3be524b28d783e4095ce SOURCES/packaging-20.9-py2.py3-none-any.whl
|
2b10cb7681bc678ba4ff3be524b28d783e4095ce SOURCES/packaging-20.9-py2.py3-none-any.whl
|
||||||
f712c7731d0d65cfc8fc7c61afeeeeca4b84b549 SOURCES/packaging-21.0-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
|
d3d07b885ca4d10994a30682106e37785e6e780c SOURCES/pbr-5.6.0-py2.py3-none-any.whl
|
||||||
0c3fc83ca045abeec9ce82bb7ee3e77f0390bca4 SOURCES/pexpect-4.8.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
|
5ad34ad3dbfaf6d4e72860287043120c641e4524 SOURCES/prettytable-2.2.0-py3-none-any.whl
|
||||||
b09c4655a4c8bd24c54a078e960750ec9e8688d6 SOURCES/prompt_toolkit-2.0.10-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
|
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
|
0827aaa6fdc3dc4256e06fa1c3991fb4ed20a693 SOURCES/ptyprocess-0.7.0-py2.py3-none-any.whl
|
||||||
c3c9f195dc89eb6d04828b881314743b548318d0 SOURCES/pyasn1-0.4.8-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
|
d77aa46abbcaccc4054a0777a191e427c785c65a SOURCES/pyasn1_modules-0.2.8-py2.py3-none-any.whl
|
||||||
a0df3ebc552b551f8e99a05cf0a29ce30bef62ee SOURCES/pycparser-2.20-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
|
df33feb2a14904c0461b5dcc3ca31f910206e7bd SOURCES/pycryptodome-3.10.1-cp35-abi3-manylinux2010_x86_64.whl
|
||||||
c8307f47e3b75a2d02af72982a2dfefa3f56e407 SOURCES/pyparsing-2.4.7-py2.py3-none-any.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
|
24213006f983ada342ed86ea516028fdbb1ac66f SOURCES/pyroute2-0.6.4.tar.gz
|
||||||
a052fefd7a93e1e4b2ca87c6a6c242ae70f97489 SOURCES/pyroute2.core-0.6.4.tar.gz
|
a052fefd7a93e1e4b2ca87c6a6c242ae70f97489 SOURCES/pyroute2.core-0.6.4.tar.gz
|
||||||
e58f6fa56f1baf766ba147dbc9fbfc67fa92e234 SOURCES/pyroute2.ethtool-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
|
7dc3c981c9c991990647b74e670115395675fe04 SOURCES/pyroute2.ndb-0.6.4.tar.gz
|
||||||
281fe514b28e096f9deb1121ee8340976f47e8c0 SOURCES/pyroute2.nftables-0.6.4.tar.gz
|
281fe514b28e096f9deb1121ee8340976f47e8c0 SOURCES/pyroute2.nftables-0.6.4.tar.gz
|
||||||
7ecab830b1978fbd07d565872731268169847bc4 SOURCES/pyroute2.nslink-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
|
3005ff67df93ee276fb8631e17c677df852254ad SOURCES/python_dateutil-2.8.1-py2.py3-none-any.whl
|
||||||
e10df4212f19d34774bb329e8b497dafa4d099d5 SOURCES/python_keystoneclient-4.2.0-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
|
2c61c4407646813e5e5dd6f09586704efca371f0 SOURCES/python_novaclient-17.5.0-py3-none-any.whl
|
||||||
b97c6966fb8fd273f0bc8533cf0dee4978b9f373 SOURCES/pytz-2021.1-py2.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
|
b1009d9fd6acadc64e1a3cecb6f0083fe047e753 SOURCES/requests-2.25.1-py2.py3-none-any.whl
|
||||||
d20e2df000dd43249c3a9eed041f08a812a93423 SOURCES/requests-2.26.0-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
|
25d5667d7a61586f5ddaac7e08cc3053db3d8661 SOURCES/requests_oauthlib-1.3.0-py2.py3-none-any.whl
|
||||||
b8e2041ff9ad37dba2f78e4b59b57cbed5f1b8ff SOURCES/rfc3986-1.5.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
|
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
|
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
|
d7eb0ced8b9f12005ad6f13035689d5611f8a81a SOURCES/s3transfer-0.4.2-py2.py3-none-any.whl
|
||||||
0b0fcb339be89ae1b6360dbfb2be2075ae9f84c9 SOURCES/setuptools-57.0.0-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
|
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
|
c612ea4b006feec1444ac61c233632f7e4852380 SOURCES/stevedore-3.4.0-py3-none-any.whl
|
||||||
47a980b20875d1a1714e921552b5bb0eda190f37 SOURCES/suds_community-0.8.5-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
|
83be56610e5f824bb05ff7a5618d6d4df9b6cc08 SOURCES/uritemplate-3.0.1-py2.py3-none-any.whl
|
||||||
206b17697417cbf5fc55f1e39c7ceb2197fe3e63 SOURCES/urllib3-1.26.6-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
|
7126323614cada181bc8b06436e80ef372ff8656 SOURCES/wcwidth-0.1.9-py2.py3-none-any.whl
|
||||||
6cbb5d6384f6d2c8667fb3c5710ecf90dbf9e7fc SOURCES/wcwidth-0.2.5-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
|
b6c48d8714e043524be7a869d1db0adcd8441cd4 SOURCES/wheel-0.37.0-py2.py3-none-any.whl
|
||||||
6c18d34144c6faba208509b8091d35acc9842081 SOURCES/wrapt-1.12.1.tar.gz
|
6c18d34144c6faba208509b8091d35acc9842081 SOURCES/wrapt-1.12.1.tar.gz
|
||||||
|
|
|
@ -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/PyJWT-2.1.0-py3-none-any.whl
|
||||||
SOURCES/PyYAML-5.1.tar.gz
|
SOURCES/PyYAML-5.1.tar.gz
|
||||||
|
SOURCES/PyYAML-6.0.tar.gz
|
||||||
SOURCES/adal-1.2.7-py2.py3-none-any.whl
|
SOURCES/adal-1.2.7-py2.py3-none-any.whl
|
||||||
SOURCES/aliyun-python-sdk-core-2.11.5.tar.gz
|
SOURCES/aliyun-python-sdk-core-2.11.5.tar.gz
|
||||||
SOURCES/aliyun_python_sdk_ecs-4.24.7-py2.py3-none-any.whl
|
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-1.20.102-py2.py3-none-any.whl
|
||||||
SOURCES/botocore-2.0.0dev123.zip
|
SOURCES/botocore-2.0.0dev123.zip
|
||||||
SOURCES/cachetools-4.2.2-py3-none-any.whl
|
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/certifi-2021.5.30-py2.py3-none-any.whl
|
||||||
SOURCES/cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl
|
SOURCES/cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl
|
||||||
SOURCES/chardet-3.0.4-py2.py3-none-any.whl
|
SOURCES/chardet-3.0.4-py2.py3-none-any.whl
|
||||||
SOURCES/chardet-4.0.0-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/charset_normalizer-2.0.4-py3-none-any.whl
|
||||||
SOURCES/colorama-0.3.3.tar.gz
|
SOURCES/colorama-0.3.3.tar.gz
|
||||||
SOURCES/colorama-0.4.3-py2.py3-none-any.whl
|
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/distro-1.5.0-py2.py3-none-any.whl
|
||||||
SOURCES/docutils-0.15.2-py3-none-any.whl
|
SOURCES/docutils-0.15.2-py3-none-any.whl
|
||||||
SOURCES/fence-agents-4.10.0.tar.gz
|
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_core-1.30.0-py2.py3-none-any.whl
|
||||||
SOURCES/google_api_python_client-1.12.8-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-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/httplib2-0.19.1-py3-none-any.whl
|
||||||
SOURCES/idna-2.10-py2.py3-none-any.whl
|
SOURCES/idna-2.10-py2.py3-none-any.whl
|
||||||
SOURCES/idna-3.2-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/iso8601-0.1.16-py2.py3-none-any.whl
|
||||||
SOURCES/isodate-0.6.0-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/jmespath-0.7.1-py2.py3-none-any.whl
|
||||||
SOURCES/keystoneauth1-4.3.1-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/msgpack-1.0.2.tar.gz
|
||||||
SOURCES/msrest-0.6.21-py2.py3-none-any.whl
|
SOURCES/msrest-0.6.21-py2.py3-none-any.whl
|
||||||
SOURCES/msrestazure-0.6.4-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/netaddr-0.8.0-py2.py3-none-any.whl
|
||||||
SOURCES/netifaces-0.11.0.tar.gz
|
SOURCES/netifaces-0.11.0.tar.gz
|
||||||
SOURCES/oauthlib-3.1.1-py2.py3-none-any.whl
|
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/os_service_types-1.7.0-py2.py3-none-any.whl
|
||||||
SOURCES/oslo.config-8.7.1-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.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/oslo.utils-4.10.0-py3-none-any.whl
|
||||||
SOURCES/packaging-20.9-py2.py3-none-any.whl
|
SOURCES/packaging-20.9-py2.py3-none-any.whl
|
||||||
SOURCES/packaging-21.0-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/pbr-5.6.0-py2.py3-none-any.whl
|
||||||
SOURCES/pexpect-4.8.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/prettytable-2.2.0-py3-none-any.whl
|
||||||
SOURCES/prompt_toolkit-2.0.10-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/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/ptyprocess-0.7.0-py2.py3-none-any.whl
|
||||||
SOURCES/pyasn1-0.4.8-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/pyasn1_modules-0.2.8-py2.py3-none-any.whl
|
||||||
SOURCES/pycparser-2.20-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/pycryptodome-3.10.1-cp35-abi3-manylinux2010_x86_64.whl
|
||||||
SOURCES/pyparsing-2.4.7-py2.py3-none-any.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-0.6.4.tar.gz
|
||||||
SOURCES/pyroute2.core-0.6.4.tar.gz
|
SOURCES/pyroute2.core-0.6.4.tar.gz
|
||||||
SOURCES/pyroute2.ethtool-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.ndb-0.6.4.tar.gz
|
||||||
SOURCES/pyroute2.nftables-0.6.4.tar.gz
|
SOURCES/pyroute2.nftables-0.6.4.tar.gz
|
||||||
SOURCES/pyroute2.nslink-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_dateutil-2.8.1-py2.py3-none-any.whl
|
||||||
SOURCES/python_keystoneclient-4.2.0-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/python_novaclient-17.5.0-py3-none-any.whl
|
||||||
SOURCES/pytz-2021.1-py2.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.25.1-py2.py3-none-any.whl
|
||||||
SOURCES/requests-2.26.0-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/requests_oauthlib-1.3.0-py2.py3-none-any.whl
|
||||||
SOURCES/rfc3986-1.5.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-py3-none-any.whl
|
||||||
|
SOURCES/rsa-4.7.2.tar.gz
|
||||||
SOURCES/ruamel.yaml-0.15.100.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/s3transfer-0.4.2-py2.py3-none-any.whl
|
||||||
SOURCES/setuptools-57.0.0-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-py2.py3-none-any.whl
|
||||||
|
SOURCES/six-1.16.0.tar.gz
|
||||||
SOURCES/stevedore-3.4.0-py3-none-any.whl
|
SOURCES/stevedore-3.4.0-py3-none-any.whl
|
||||||
SOURCES/suds_community-0.8.5-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/uritemplate-3.0.1-py2.py3-none-any.whl
|
||||||
SOURCES/urllib3-1.26.6-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.1.9-py2.py3-none-any.whl
|
||||||
SOURCES/wcwidth-0.2.5-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/wheel-0.37.0-py2.py3-none-any.whl
|
||||||
SOURCES/wrapt-1.12.1.tar.gz
|
SOURCES/wrapt-1.12.1.tar.gz
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
From 52de83b30a8eea638b01f649f4884f50417121c0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
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*)
|
||||||
|
;;
|
|
@ -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
|
|
@ -0,0 +1,139 @@
|
||||||
|
From e339f304d4423a0e661d915f72ba88553b21d74a Mon Sep 17 00:00:00 2001
|
||||||
|
From: MSSedusch <sedusch@microsoft.com>
|
||||||
|
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 <sedusch@microsoft.com>
|
||||||
|
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,
|
|
@ -0,0 +1,22 @@
|
||||||
|
From 06855a8227fa91f6216119daa3d32d5858c62837 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
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"
|
|
@ -0,0 +1,136 @@
|
||||||
|
From 81be3c529ec1165f3135b4f14fbec2a19403cfbe Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
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.
|
||||||
|
<content type="string" />
|
||||||
|
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
|
||||||
|
</parameter>
|
||||||
|
+ <parameter name="ssl" unique="0" required="0">
|
||||||
|
+ <getopt mixed="-z, --ssl" />
|
||||||
|
+ <content type="boolean" />
|
||||||
|
+ <shortdesc lang="en">Use SSL connection with verifying certificate</shortdesc>
|
||||||
|
+ </parameter>
|
||||||
|
+ <parameter name="ssl_insecure" unique="0" required="0">
|
||||||
|
+ <getopt mixed="--ssl-insecure" />
|
||||||
|
+ <content type="boolean" />
|
||||||
|
+ <shortdesc lang="en">Use SSL connection without verifying certificate</shortdesc>
|
||||||
|
+ </parameter>
|
||||||
|
+ <parameter name="ssl_secure" unique="0" required="0">
|
||||||
|
+ <getopt mixed="--ssl-secure" />
|
||||||
|
+ <content type="boolean" />
|
||||||
|
+ <shortdesc lang="en">Use SSL connection with verifying certificate</shortdesc>
|
||||||
|
+ </parameter>
|
||||||
|
<parameter name="username" unique="0" required="1" obsoletes="login">
|
||||||
|
<getopt mixed="-l, --username=[name]" />
|
||||||
|
<content type="string" />
|
||||||
|
@@ -181,6 +196,10 @@ to access the system's directory manager.
|
||||||
|
<content type="integer" default="1" />
|
||||||
|
<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
|
||||||
|
</parameter>
|
||||||
|
+ <parameter name="gnutlscli_path" unique="0" required="0">
|
||||||
|
+ <getopt mixed="--gnutlscli-path=[path]" />
|
||||||
|
+ <shortdesc lang="en">Path to gnutls-cli binary</shortdesc>
|
||||||
|
+ </parameter>
|
||||||
|
</parameters>
|
||||||
|
<actions>
|
||||||
|
<action name="on" automatic="0"/>
|
||||||
|
|
||||||
|
From 8021e698095c5bd0ef33ee5f56fc448e946cb92c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
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.
|
||||||
|
</parameter>
|
||||||
|
<parameter name="ssl" unique="0" required="0">
|
||||||
|
<getopt mixed="-z, --ssl" />
|
||||||
|
- <content type="boolean" />
|
||||||
|
+ <content type="boolean" default="1" />
|
||||||
|
<shortdesc lang="en">Use SSL connection with verifying certificate</shortdesc>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="ssl_insecure" unique="0" required="0">
|
|
@ -6,10 +6,60 @@
|
||||||
# keep around ready for later user
|
# keep around ready for later user
|
||||||
## global alphatag git0a6184070
|
## 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
|
Name: fence-agents
|
||||||
Summary: Set of unified programs capable of host isolation ("fencing")
|
Summary: Set of unified programs capable of host isolation ("fencing")
|
||||||
Version: 4.10.0
|
Version: 4.10.0
|
||||||
Release: 9%{?alphatag:.%{alphatag}}%{?dist}
|
Release: 12%{?alphatag:.%{alphatag}}%{?dist}
|
||||||
License: GPLv2+ and LGPLv2+
|
License: GPLv2+ and LGPLv2+
|
||||||
URL: https://github.com/ClusterLabs/fence-agents
|
URL: https://github.com/ClusterLabs/fence-agents
|
||||||
Source0: https://fedorahosted.org/releases/f/e/fence-agents/%{name}-%{version}.tar.gz
|
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
|
Source1089: ptyprocess-0.7.0-py2.py3-none-any.whl
|
||||||
Source1090: suds_community-0.8.5-py3-none-any.whl
|
Source1090: suds_community-0.8.5-py3-none-any.whl
|
||||||
### END ###
|
### 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
|
Patch0: ha-cloud-support-aliyun.patch
|
||||||
Patch1: ha-cloud-support-aws.patch
|
Patch1: ha-cloud-support-aws.patch
|
||||||
|
@ -134,8 +220,13 @@ Patch3: ha-cloud-support-google.patch
|
||||||
Patch4: ha-openstack-support.patch
|
Patch4: ha-openstack-support.patch
|
||||||
Patch5: bundled-pexpect.patch
|
Patch5: bundled-pexpect.patch
|
||||||
Patch6: bundled-suds.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
|
%ifarch x86_64
|
||||||
%global testagents virsh heuristics_ping aliyun aws azure_arm gce openstack virt
|
%global testagents virsh heuristics_ping aliyun aws azure_arm gce openstack virt
|
||||||
%endif
|
%endif
|
||||||
|
@ -300,6 +391,11 @@ install -m 0644 agents/virt/fence_virtd.service %{buildroot}/%{_unitdir}/
|
||||||
%endif
|
%endif
|
||||||
# XXX unsure if /usr/sbin/fence_* should be compiled as well
|
# 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
|
## tree fix up
|
||||||
# fix libfence permissions
|
# fix libfence permissions
|
||||||
chmod 0755 %{buildroot}%{_datadir}/fence/*.py
|
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.8*
|
||||||
%{_mandir}/man8/fence_kdump_send.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
|
%package lpar
|
||||||
License: GPLv2+ and LGPLv2+
|
License: GPLv2+ and LGPLv2+
|
||||||
Summary: Fence agent for IBM LPAR
|
Summary: Fence agent for IBM LPAR
|
||||||
|
@ -1272,6 +1403,20 @@ are located on corosync cluster nodes.
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Nov 11 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-12
|
||||||
|
- fence_zvmip: add SSL/TLS support
|
||||||
|
Resolves: rhbz#2022334
|
||||||
|
|
||||||
|
* Mon Nov 8 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-11
|
||||||
|
- fence_kubevirt: new fence agent
|
||||||
|
Resolves: rhbz#2000954
|
||||||
|
|
||||||
|
* Tue Oct 5 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 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 <oalbrigt@redhat.com> - 4.10.0-9
|
* Tue Aug 31 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-9
|
||||||
- Only build fence-virt subpackages for x86_64 arch
|
- Only build fence-virt subpackages for x86_64 arch
|
||||||
Resolves: rhbz#1965988
|
Resolves: rhbz#1965988
|
||||||
|
@ -1418,7 +1563,6 @@ are located on corosync cluster nodes.
|
||||||
|
|
||||||
* Thu Aug 3 2017 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.0.24-9
|
* Thu Aug 3 2017 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.0.24-9
|
||||||
- Fix encoding for pexpect with Python 3.6
|
- Fix encoding for pexpect with Python 3.6
|
||||||
|
|
||||||
Resolves: rhbz#1473908
|
Resolves: rhbz#1473908
|
||||||
|
|
||||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.24-8
|
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.24-8
|
||||||
|
|
Loading…
Reference in New Issue