summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrant Knudson <bknudson@us.ibm.com>2015-07-26 09:06:32 -0500
committerBrant Knudson <bknudson@us.ibm.com>2015-08-13 19:01:42 -0500
commita50f8a1070b108d2281170e4e25eaaaa9775b27c (patch)
tree49583d5ac6c0c4443dbec030589223bc3027e0eb
parent4e4dedec6ea8fd71354772552166255ddf39abed (diff)
downloadpython-keystoneclient-a50f8a1070b108d2281170e4e25eaaaa9775b27c.tar.gz
Proper deprecation for CredentialManager data argument
CredentialManager's data argument 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: Ibdb4bda622119eec963ce5b57673dc01ff279b0e
-rw-r--r--keystoneclient/tests/unit/v3/test_credentials.py1
-rw-r--r--keystoneclient/v3/credentials.py14
2 files changed, 11 insertions, 4 deletions
diff --git a/keystoneclient/tests/unit/v3/test_credentials.py b/keystoneclient/tests/unit/v3/test_credentials.py
index 752f25a..69c6068 100644
--- a/keystoneclient/tests/unit/v3/test_credentials.py
+++ b/keystoneclient/tests/unit/v3/test_credentials.py
@@ -42,6 +42,7 @@ class CredentialTests(utils.TestCase, utils.CrudTests):
def test_create_data_not_blob(self):
# Test create operation with previous, deprecated "data" argument,
# which should be translated into "blob" at the API call level
+ self.deprecations.expect_deprecations()
req_ref = self.new_ref()
api_ref = self._ref_data_not_blob(req_ref)
req_ref.pop('id')
diff --git a/keystoneclient/v3/credentials.py b/keystoneclient/v3/credentials.py
index 8ef7ce4..e3cca14 100644
--- a/keystoneclient/v3/credentials.py
+++ b/keystoneclient/v3/credentials.py
@@ -14,6 +14,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from debtcollector import renames
+
from keystoneclient import base
from keystoneclient.i18n import _
from keystoneclient import utils
@@ -46,13 +48,13 @@ class CredentialManager(base.CrudManager):
if blob is not None:
return blob
elif data is not None:
- # FIXME(shardy): Passing data is deprecated. Provide an
- # appropriate warning.
return data
else:
raise ValueError(
_("Credential requires blob to be specified"))
+ @renames.renamed_kwarg('data', 'blob', version='1.7.0',
+ removal_version='2.0.0')
@utils.positional(1, enforcement=utils.positional.WARN)
def create(self, user, type, blob=None, data=None, project=None, **kwargs):
"""Create a credential
@@ -61,7 +63,8 @@ class CredentialManager(base.CrudManager):
:type user: :class:`keystoneclient.v3.users.User` or str
:param str type: credential type, should be either ``ec2`` or ``cert``
:param JSON blob: Credential data
- :param JSON data: Deprecated, use blob instead.
+ :param JSON data: Deprecated as of the 1.7.0 release in favor of blob
+ and may by removed in the 2.0.0 release.
:param project: Project, optional
:type project: :class:`keystoneclient.v3.projects.Project` or str
:param kwargs: Extra attributes passed to create.
@@ -94,6 +97,8 @@ class CredentialManager(base.CrudManager):
"""
return super(CredentialManager, self).list(**kwargs)
+ @renames.renamed_kwarg('data', 'blob', version='1.7.0',
+ removal_version='2.0.0')
@utils.positional(2, enforcement=utils.positional.WARN)
def update(self, credential, user, type=None, blob=None, data=None,
project=None, **kwargs):
@@ -105,7 +110,8 @@ class CredentialManager(base.CrudManager):
:type user: :class:`keystoneclient.v3.users.User` or str
:param str type: credential type, should be either ``ec2`` or ``cert``
:param JSON blob: Credential data
- :param JSON data: Deprecated, use blob instead.
+ :param JSON data: Deprecated as of the 1.7.0 release in favor of blob
+ and may be removed in the 2.0.0 release.
:param project: Project
:type project: :class:`keystoneclient.v3.projects.Project` or str
:param kwargs: Extra attributes passed to create.