summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrant Knudson <bknudson@us.ibm.com>2015-07-26 07:42:10 -0500
committerBrant Knudson <bknudson@us.ibm.com>2015-08-13 18:59:31 -0500
commit58cc453b2030ba904be48feb0c95e0df4a4fc9ac (patch)
tree6974f8e1f45d116c55dc97f4280550f54d97dea1
parent0d293eaf4413f82f55e3b13062b2bc710a6f3935 (diff)
downloadpython-keystoneclient-58cc453b2030ba904be48feb0c95e0df4a4fc9ac.tar.gz
Proper deprecation for Session.construct()
Session.construct() wasn't properly deprecated since the deprecation was only mentioned in the docstring. Proper deprecation requires use of warnings/debtcollector and documentation. bp deprecations Change-Id: Ieff238aff9d39cfbbb80381b2392c33d0359acb3
-rw-r--r--keystoneclient/client.py2
-rw-r--r--keystoneclient/discover.py4
-rw-r--r--keystoneclient/httpclient.py2
-rw-r--r--keystoneclient/session.py19
-rw-r--r--keystoneclient/tests/unit/test_session.py3
5 files changed, 22 insertions, 8 deletions
diff --git a/keystoneclient/client.py b/keystoneclient/client.py
index f18db53..762b90b 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 ff0db6d..f3f250f 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 046d596..3fcbca3 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 88a53f3..5ec8a67 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 44ea919..ed1c954 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)