The get_server_version() [https://opendev.org/openstack/python-cinderclient/src/branch/master/cinderclient/client.py#L74] method fails to support passing client certificates.
When the server enforces strict mTLS, this request will fail with the below ssl error
OpenSSL.SSL.Error: [('SSL routines', 'ssl3_read_bytes', 'sslv3 alert handshake failure')]
>> from cinderclient import client as cinder_client
>> min_ver, max_ver = cinder_client.get_server_version(cin_url)
Traceback (most recent call last):
File "~/python3.8/site-packages/urllib3/contrib/pyopenssl.py", line 485, in wrap_socket
cnx.do_handshake()
File "~/python3.8/site-packages/OpenSSL/SSL.py", line 1934, in do_handshake
self._raise_ssl_error(self._ssl, result)
File "~/python3.8/site-packages/OpenSSL/SSL.py", line 1671, in _raise_ssl_error
_raise_current_error()
File "~/python3.8/site-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', 'ssl3_read_bytes', 'sslv3 alert handshake failure')]
Also currently the cinderclient doesn't support passing client certificate, key while initiating via httpclient method.
Proposed change (until the launchpad/ review. opendev. org integration is restored): https:/ /review. opendev. org/c/openstack /python- cinderclient/ +/776311/