summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrant Knudson <bknudson@us.ibm.com>2015-07-26 06:53:58 -0500
committerBrant Knudson <bknudson@us.ibm.com>2015-08-04 09:56:44 -0500
commiteaa7ddd7443ca166f6646e808dcad959811d158b (patch)
treeaffc727316685ad9b21ac773812f5f5ae58742a6
parent0c2fef51d2b90df088d30e9b6c5079caae7c6578 (diff)
downloadpython-keystoneclient-eaa7ddd7443ca166f6646e808dcad959811d158b.tar.gz
Proper deprecation for HTTPClient session and adapter properties
HTTPClient's forwarded session and adapter properties weren't properly deprecated since the deprecations was only mentioned in the docstring. Proper deprecation requires use of warnings/ debtcollector and documentation. bp deprecations Change-Id: Iea76d7bbc3bdeb13f7fdb097f13e007b4dd85c8d
-rw-r--r--keystoneclient/httpclient.py21
-rw-r--r--keystoneclient/tests/unit/test_discovery.py3
2 files changed, 18 insertions, 6 deletions
diff --git a/keystoneclient/httpclient.py b/keystoneclient/httpclient.py
index 9148f80..c663535 100644
--- a/keystoneclient/httpclient.py
+++ b/keystoneclient/httpclient.py
@@ -830,9 +830,6 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin):
"""
return self._cs_request(url, 'DELETE', **kwargs)
- # DEPRECATIONS: The following methods are no longer directly supported
- # but maintained for compatibility purposes.
-
deprecated_session_variables = {'original_ip': None,
'cert': None,
'timeout': None,
@@ -841,12 +838,15 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin):
deprecated_adapter_variables = {'region_name': None}
def __getattr__(self, name):
- # FIXME(jamielennox): provide a proper deprecated warning
try:
var_name = self.deprecated_session_variables[name]
except KeyError:
pass
else:
+ warnings.warn(
+ 'The %s session variable is deprecated as of the 1.7.0 '
+ 'release and may be removed in the 2.0.0 release' % name,
+ DeprecationWarning)
return getattr(self.session, var_name or name)
try:
@@ -854,17 +854,24 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin):
except KeyError:
pass
else:
+ warnings.warn(
+ 'The %s adapter variable is deprecated as of the 1.7.0 '
+ 'release and may be removed in the 2.0.0 release' % name,
+ DeprecationWarning)
return getattr(self._adapter, var_name or name)
raise AttributeError(_("Unknown Attribute: %s") % name)
def __setattr__(self, name, val):
- # FIXME(jamielennox): provide a proper deprecated warning
try:
var_name = self.deprecated_session_variables[name]
except KeyError:
pass
else:
+ warnings.warn(
+ 'The %s session variable is deprecated as of the 1.7.0 '
+ 'release and may be removed in the 2.0.0 release' % name,
+ DeprecationWarning)
return setattr(self.session, var_name or name)
try:
@@ -872,6 +879,10 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin):
except KeyError:
pass
else:
+ warnings.warn(
+ 'The %s adapter variable is deprecated as of the 1.7.0 '
+ 'release and may be removed in the 2.0.0 release' % name,
+ DeprecationWarning)
return setattr(self._adapter, var_name or name)
super(HTTPClient, self).__setattr__(name, val)
diff --git a/keystoneclient/tests/unit/test_discovery.py b/keystoneclient/tests/unit/test_discovery.py
index 6a76d8f..34901ba 100644
--- a/keystoneclient/tests/unit/test_discovery.py
+++ b/keystoneclient/tests/unit/test_discovery.py
@@ -472,7 +472,8 @@ class ClientDiscoveryTests(utils.TestCase):
cl = self.assertCreatesV2(auth_url=BASE_URL, **kwargs)
- self.assertEqual(cl.original_ip, '100')
+ with self.deprecations.expect_deprecations_here():
+ self.assertEqual(cl.original_ip, '100')
self.assertEqual(cl.stale_duration, 15)
self.assertFalse(cl.use_keyring)