diff --git a/keystoneclient/client.py b/keystoneclient/client.py index f18db531..762b90be 100644 --- a/keystoneclient/client.py +++ b/keystoneclient/client.py @@ -57,7 +57,7 @@ def Client(version=None, unstable=False, session=None, **kwargs): cannot be found. """ if not session: - session = client_session.Session.construct(kwargs) + session = client_session.Session._construct(kwargs) d = discover.Discover(session=session, **kwargs) return d.create_client(version=version, unstable=unstable) diff --git a/keystoneclient/discover.py b/keystoneclient/discover.py index ff0db6d8..f3f250fc 100644 --- a/keystoneclient/discover.py +++ b/keystoneclient/discover.py @@ -74,7 +74,7 @@ def version_match(required, candidate): def available_versions(url, session=None, **kwargs): """Retrieve raw version data from a url.""" if not session: - session = client_session.Session.construct(kwargs) + session = client_session.Session._construct(kwargs) return _discover.get_version_data(session, url) @@ -143,7 +143,7 @@ class Discover(_discover.Discover): @utils.positional(2) def __init__(self, session=None, authenticated=None, **kwargs): if not session: - session = client_session.Session.construct(kwargs) + session = client_session.Session._construct(kwargs) kwargs['session'] = session url = None diff --git a/keystoneclient/httpclient.py b/keystoneclient/httpclient.py index 046d596e..3fcbca39 100644 --- a/keystoneclient/httpclient.py +++ b/keystoneclient/httpclient.py @@ -346,7 +346,7 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin): if not session: kwargs['session'] = _FakeRequestSession() - session = client_session.Session.construct(kwargs) + session = client_session.Session._construct(kwargs) session.auth = self super(HTTPClient, self).__init__(session=session) diff --git a/keystoneclient/session.py b/keystoneclient/session.py index 88a53f37..5ec8a677 100644 --- a/keystoneclient/session.py +++ b/keystoneclient/session.py @@ -17,6 +17,7 @@ import logging import os import socket import time +import warnings from oslo_config import cfg from oslo_serialization import jsonutils @@ -525,15 +526,27 @@ class Session(object): new request-style arguments. .. warning:: - *DEPRECATED*: This function is purely for bridging the gap between - older client arguments and the session arguments that they relate - to. It is not intended to be used as a generic Session Factory. + + *DEPRECATED as of 1.7.0*: This function is purely for bridging the + gap between older client arguments and the session arguments that + they relate to. It is not intended to be used as a generic Session + Factory. This function may be removed in the 2.0.0 release. This function purposefully modifies the input kwargs dictionary so that the remaining kwargs dict can be reused and passed on to other functions without session arguments. """ + + warnings.warn( + 'Session.construct() is deprecated as of the 1.7.0 release in ' + 'favor of using session constructor and may be removed in the ' + '2.0.0 release.', DeprecationWarning) + + return cls._construct(kwargs) + + @classmethod + def _construct(cls, kwargs): params = {} for attr in ('verify', 'cacert', 'cert', 'key', 'insecure', diff --git a/keystoneclient/tests/unit/test_session.py b/keystoneclient/tests/unit/test_session.py index 44ea9199..ed1c954c 100644 --- a/keystoneclient/tests/unit/test_session.py +++ b/keystoneclient/tests/unit/test_session.py @@ -337,7 +337,8 @@ class ConstructSessionFromArgsTests(utils.TestCase): def _s(self, k=None, **kwargs): k = k or kwargs - return client_session.Session.construct(k) + with self.deprecations.expect_deprecations_here(): + return client_session.Session.construct(k) def test_verify(self): self.assertFalse(self._s(insecure=True).verify)