openstack-python-keystonecl.../keystoneclient/client.py
Aarni Koskela b7e61602f6 Remove debtcollector dependency
Instead of depending on a library, raise warnings directly.
Most of these are in code that should have been removed multiple
versions ago, in any case.

Change-Id: I9761dbc2483df5b4ceced3de0e6a77ead5fdaa20
Signed-off-by: Aarni Koskela <akx@iki.fi>
2025-11-05 17:50:31 +02:00

70 lines
3 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import warnings
from keystoneclient import discover
from keystoneclient import httpclient
from keystoneclient import session as client_session
class HTTPClient(httpclient.HTTPClient):
"""Deprecated alias for httpclient.HTTPClient.
This class is deprecated as of the 1.7.0 release in favor of
:class:`keystoneclient.httpclient.HTTPClient` and may be removed in the
2.0.0 release.
"""
def __init__(self, *args, **kwargs):
warnings.warn(
'Use keystoneclient.httpclient.HTTPClient instead. '
'Deprecated in 1.7.0, to be removed in 2.0.0.',
DeprecationWarning,
stacklevel=2,
)
super(HTTPClient, self).__init__(*args, **kwargs)
def Client(version=None, unstable=False, session=None, **kwargs):
"""Factory function to create a new identity service client.
The returned client will be either a V3 or V2 client. Check the version
using the :py:attr:`~keystoneclient.v3.client.Client.version` property or
the instance's class (with instanceof).
:param tuple version: The required version of the identity API. If
specified the client will be selected such that the
major version is equivalent and an endpoint provides
at least the specified minor version. For example to
specify the 3.1 API use ``(3, 1)``. (optional)
:param bool unstable: Accept endpoints not marked as 'stable'. (optional)
:param session: A session object to be used for communication. If one is
not provided it will be constructed from the provided
kwargs. (optional)
:type session: keystoneclient.session.Session
:param kwargs: Additional arguments are passed through to the client
that is being created.
:returns: New keystone client object.
:rtype: :py:class:`keystoneclient.v3.client.Client` or
:py:class:`keystoneclient.v2_0.client.Client`
:raises keystoneclient.exceptions.DiscoveryFailure: if the server's
response is invalid.
:raises keystoneclient.exceptions.VersionNotAvailable: if a suitable client
cannot be found.
"""
if not session:
session = client_session.Session._construct(kwargs)
d = discover.Discover(session=session, **kwargs)
return d.create_client(version=version, unstable=unstable)