diff --git a/keystoneclient/tests/unit/v3/test_credentials.py b/keystoneclient/tests/unit/v3/test_credentials.py index 75435417e..0efc3dfbf 100644 --- a/keystoneclient/tests/unit/v3/test_credentials.py +++ b/keystoneclient/tests/unit/v3/test_credentials.py @@ -31,25 +31,3 @@ class CredentialTests(utils.ClientTestCase, utils.CrudTests): kwargs.setdefault('type', uuid.uuid4().hex) kwargs.setdefault('user_id', uuid.uuid4().hex) return kwargs - - @staticmethod - def _ref_data_not_blob(ref): - ret_ref = ref.copy() - ret_ref['data'] = ref['blob'] - del ret_ref['blob'] - return ret_ref - - 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') - self.test_create(api_ref, req_ref) - - def test_update_data_not_blob(self): - # Likewise test update operation with data instead of blob argument - req_ref = self.new_ref() - api_ref = self._ref_data_not_blob(req_ref) - self.test_update(api_ref, req_ref) diff --git a/keystoneclient/v3/credentials.py b/keystoneclient/v3/credentials.py index a651a0890..80eb38b39 100644 --- a/keystoneclient/v3/credentials.py +++ b/keystoneclient/v3/credentials.py @@ -14,11 +14,9 @@ # License for the specific language governing permissions and limitations # under the License. -from debtcollector import renames from positional import positional from keystoneclient import base -from keystoneclient.i18n import _ class Credential(base.Resource): @@ -43,22 +41,8 @@ class CredentialManager(base.CrudManager): collection_key = 'credentials' key = 'credential' - def _get_data_blob(self, blob, data): - # Ref bug #1259461, the <= 0.4.1 keystoneclient calling convention was - # to pass "data", but the underlying API expects "blob", so - # support both in the python API for backwards compatibility - if blob is not None: - return blob - elif data is not None: - 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') @positional(1, enforcement=positional.WARN) - def create(self, user, type, blob=None, data=None, project=None, **kwargs): + def create(self, user, type, blob, project=None, **kwargs): """Create a credential. :param user: the user to which the credential belongs @@ -67,8 +51,6 @@ class CredentialManager(base.CrudManager): ``ec2``, ``cert`` or ``totp`` :param str blob: the arbitrary blob of the credential data, to be parsed according to the type - :param JSON data: Deprecated as of the 1.7.0 release in favor of blob - and may be removed in the future release. :param project: the project which limits the scope of the credential, this attribbute is mandatory if the credential type is ec2 @@ -78,13 +60,12 @@ class CredentialManager(base.CrudManager): :returns: the created credential :rtype: :class:`keystoneclient.v3.credentials.Credential` - :raises ValueError: if one of ``blob`` or ``data`` is not specified """ return super(CredentialManager, self).create( user_id=base.getid(user), type=type, - blob=self._get_data_blob(blob, data), + blob=blob, project_id=base.getid(project), **kwargs) @@ -114,11 +95,9 @@ class CredentialManager(base.CrudManager): """ return super(CredentialManager, self).list(**kwargs) - @renames.renamed_kwarg('data', 'blob', version='1.7.0', - removal_version='2.0.0') @positional(2, enforcement=positional.WARN) - def update(self, credential, user, type=None, blob=None, data=None, - project=None, **kwargs): + def update(self, credential, user, type=None, blob=None, project=None, + **kwargs): """Update a credential. :param credential: the credential to be updated on the server @@ -129,7 +108,6 @@ class CredentialManager(base.CrudManager): :param str type: the new type of the credential, valid values are: ``ec2``, ``cert`` or ``totp`` :param str blob: the new blob of the credential data - :param JSON data: Deprecated as of the 1.7.0 release in favor of blob and may be removed in the future release. :param project: the new project which limits the scope of the credential, this attribute is mandatory if the @@ -146,7 +124,7 @@ class CredentialManager(base.CrudManager): credential_id=base.getid(credential), user_id=base.getid(user), type=type, - blob=self._get_data_blob(blob, data), + blob=blob, project_id=base.getid(project), **kwargs) diff --git a/releasenotes/notes/remove-credentials-data-46ab3c3c248047cf.yaml b/releasenotes/notes/remove-credentials-data-46ab3c3c248047cf.yaml new file mode 100644 index 000000000..01ebe3e10 --- /dev/null +++ b/releasenotes/notes/remove-credentials-data-46ab3c3c248047cf.yaml @@ -0,0 +1,8 @@ +--- +prelude: > + The ``data`` argument for creating and updating credentials has + been removed. +other: + - The ``data`` argument for creating and updating credentials was + deprecated in the 1.7.0 release. It has been replaced by the + ``blob`` argument.