Merge "Remove deprecated 'data' credential argument"
This commit is contained in:
@@ -31,25 +31,3 @@ class CredentialTests(utils.ClientTestCase, utils.CrudTests):
|
|||||||
kwargs.setdefault('type', uuid.uuid4().hex)
|
kwargs.setdefault('type', uuid.uuid4().hex)
|
||||||
kwargs.setdefault('user_id', uuid.uuid4().hex)
|
kwargs.setdefault('user_id', uuid.uuid4().hex)
|
||||||
return kwargs
|
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)
|
|
||||||
|
@@ -14,11 +14,9 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from debtcollector import renames
|
|
||||||
from positional import positional
|
from positional import positional
|
||||||
|
|
||||||
from keystoneclient import base
|
from keystoneclient import base
|
||||||
from keystoneclient.i18n import _
|
|
||||||
|
|
||||||
|
|
||||||
class Credential(base.Resource):
|
class Credential(base.Resource):
|
||||||
@@ -43,22 +41,8 @@ class CredentialManager(base.CrudManager):
|
|||||||
collection_key = 'credentials'
|
collection_key = 'credentials'
|
||||||
key = 'credential'
|
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)
|
@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.
|
"""Create a credential.
|
||||||
|
|
||||||
:param user: the user to which the credential belongs
|
:param user: the user to which the credential belongs
|
||||||
@@ -67,8 +51,6 @@ class CredentialManager(base.CrudManager):
|
|||||||
``ec2``, ``cert`` or ``totp``
|
``ec2``, ``cert`` or ``totp``
|
||||||
:param str blob: the arbitrary blob of the credential data, to be
|
:param str blob: the arbitrary blob of the credential data, to be
|
||||||
parsed according to the type
|
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,
|
:param project: the project which limits the scope of the credential,
|
||||||
this attribbute is mandatory if the credential type is
|
this attribbute is mandatory if the credential type is
|
||||||
ec2
|
ec2
|
||||||
@@ -78,13 +60,12 @@ class CredentialManager(base.CrudManager):
|
|||||||
|
|
||||||
:returns: the created credential
|
:returns: the created credential
|
||||||
:rtype: :class:`keystoneclient.v3.credentials.Credential`
|
:rtype: :class:`keystoneclient.v3.credentials.Credential`
|
||||||
:raises ValueError: if one of ``blob`` or ``data`` is not specified
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
return super(CredentialManager, self).create(
|
return super(CredentialManager, self).create(
|
||||||
user_id=base.getid(user),
|
user_id=base.getid(user),
|
||||||
type=type,
|
type=type,
|
||||||
blob=self._get_data_blob(blob, data),
|
blob=blob,
|
||||||
project_id=base.getid(project),
|
project_id=base.getid(project),
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
@@ -114,11 +95,9 @@ class CredentialManager(base.CrudManager):
|
|||||||
"""
|
"""
|
||||||
return super(CredentialManager, self).list(**kwargs)
|
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)
|
@positional(2, enforcement=positional.WARN)
|
||||||
def update(self, credential, user, type=None, blob=None, data=None,
|
def update(self, credential, user, type=None, blob=None, project=None,
|
||||||
project=None, **kwargs):
|
**kwargs):
|
||||||
"""Update a credential.
|
"""Update a credential.
|
||||||
|
|
||||||
:param credential: the credential to be updated on the server
|
: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:
|
:param str type: the new type of the credential, valid values are:
|
||||||
``ec2``, ``cert`` or ``totp``
|
``ec2``, ``cert`` or ``totp``
|
||||||
:param str blob: the new blob of the credential data
|
: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.
|
and may be removed in the future release.
|
||||||
:param project: the new project which limits the scope of the
|
:param project: the new project which limits the scope of the
|
||||||
credential, this attribute is mandatory if the
|
credential, this attribute is mandatory if the
|
||||||
@@ -146,7 +124,7 @@ class CredentialManager(base.CrudManager):
|
|||||||
credential_id=base.getid(credential),
|
credential_id=base.getid(credential),
|
||||||
user_id=base.getid(user),
|
user_id=base.getid(user),
|
||||||
type=type,
|
type=type,
|
||||||
blob=self._get_data_blob(blob, data),
|
blob=blob,
|
||||||
project_id=base.getid(project),
|
project_id=base.getid(project),
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
|
@@ -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.
|
Reference in New Issue
Block a user