Proper deprecation for UserManager project argument
UserManager's project argument wasn't properly deprecated since the deprecation was logged. Proper deprecation requires use of warnings/debtcollector and documentation. bp deprecations Change-Id: Idebce2e9781f6f92be402e9441f2116b63b4f832
This commit is contained in:
@@ -111,6 +111,7 @@ class UserTests(utils.TestCase, utils.CrudTests):
|
||||
def test_create_with_project(self):
|
||||
# Can create a user with the deprecated project option rather than
|
||||
# default_project_id.
|
||||
self.deprecations.expect_deprecations()
|
||||
ref = self.new_ref()
|
||||
|
||||
self.stub_entity('POST', [self.collection_key],
|
||||
@@ -135,6 +136,8 @@ class UserTests(utils.TestCase, utils.CrudTests):
|
||||
def test_create_with_project_and_default_project(self):
|
||||
# Can create a user with the deprecated project and default_project_id.
|
||||
# The backend call should only pass the default_project_id.
|
||||
self.deprecations.expect_deprecations()
|
||||
|
||||
ref = self.new_ref()
|
||||
|
||||
self.stub_entity('POST',
|
||||
@@ -180,6 +183,8 @@ class UserTests(utils.TestCase, utils.CrudTests):
|
||||
def test_update_with_project(self):
|
||||
# Can update a user with the deprecated project option rather than
|
||||
# default_project_id.
|
||||
self.deprecations.expect_deprecations()
|
||||
|
||||
ref = self.new_ref()
|
||||
req_ref = ref.copy()
|
||||
req_ref.pop('id')
|
||||
@@ -203,6 +208,8 @@ class UserTests(utils.TestCase, utils.CrudTests):
|
||||
self.assertEntityRequestBodyIs(req_ref)
|
||||
|
||||
def test_update_with_project_and_default_project(self, ref=None):
|
||||
self.deprecations.expect_deprecations()
|
||||
|
||||
ref = self.new_ref()
|
||||
req_ref = ref.copy()
|
||||
req_ref.pop('id')
|
||||
|
@@ -16,9 +16,11 @@
|
||||
|
||||
import logging
|
||||
|
||||
from debtcollector import renames
|
||||
|
||||
from keystoneclient import base
|
||||
from keystoneclient import exceptions
|
||||
from keystoneclient.i18n import _, _LW
|
||||
from keystoneclient.i18n import _
|
||||
from keystoneclient import utils
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
@@ -45,6 +47,8 @@ class UserManager(base.CrudManager):
|
||||
msg = _('Specify both a user and a group')
|
||||
raise exceptions.ValidationError(msg)
|
||||
|
||||
@renames.renamed_kwarg('project', 'default_project', version='1.7.0',
|
||||
removal_version='2.0.0')
|
||||
@utils.positional(1, enforcement=utils.positional.WARN)
|
||||
def create(self, name, domain=None, project=None, password=None,
|
||||
email=None, description=None, enabled=True,
|
||||
@@ -53,14 +57,12 @@ class UserManager(base.CrudManager):
|
||||
|
||||
.. warning::
|
||||
|
||||
The project argument is deprecated, use default_project instead.
|
||||
The project argument is deprecated as of the 1.7.0 release in favor
|
||||
of default_project and may be removed in the 2.0.0 release.
|
||||
|
||||
If both default_project and project is provided, the default_project
|
||||
will be used.
|
||||
"""
|
||||
if project:
|
||||
LOG.warning(_LW("The project argument is deprecated, "
|
||||
"use default_project instead."))
|
||||
default_project_id = base.getid(default_project) or base.getid(project)
|
||||
user_data = base.filter_none(name=name,
|
||||
domain_id=base.getid(domain),
|
||||
@@ -74,6 +76,8 @@ class UserManager(base.CrudManager):
|
||||
return self._create('/users', {'user': user_data}, 'user',
|
||||
log=not bool(password))
|
||||
|
||||
@renames.renamed_kwarg('project', 'default_project', version='1.7.0',
|
||||
removal_version='2.0.0')
|
||||
@utils.positional(enforcement=utils.positional.WARN)
|
||||
def list(self, project=None, domain=None, group=None, default_project=None,
|
||||
**kwargs):
|
||||
@@ -87,14 +91,12 @@ class UserManager(base.CrudManager):
|
||||
|
||||
.. warning::
|
||||
|
||||
The project argument is deprecated, use default_project instead.
|
||||
The project argument is deprecated as of the 1.7.0 release in favor
|
||||
of default_project and may be removed in the 2.0.0 release.
|
||||
|
||||
If both default_project and project is provided, the default_project
|
||||
will be used.
|
||||
"""
|
||||
if project:
|
||||
LOG.warning(_LW("The project argument is deprecated, "
|
||||
"use default_project instead."))
|
||||
default_project_id = base.getid(default_project) or base.getid(project)
|
||||
if group:
|
||||
base_url = '/groups/%s' % base.getid(group)
|
||||
@@ -111,6 +113,8 @@ class UserManager(base.CrudManager):
|
||||
return super(UserManager, self).get(
|
||||
user_id=base.getid(user))
|
||||
|
||||
@renames.renamed_kwarg('project', 'default_project', version='1.7.0',
|
||||
removal_version='2.0.0')
|
||||
@utils.positional(enforcement=utils.positional.WARN)
|
||||
def update(self, user, name=None, domain=None, project=None, password=None,
|
||||
email=None, description=None, enabled=None,
|
||||
@@ -119,14 +123,12 @@ class UserManager(base.CrudManager):
|
||||
|
||||
.. warning::
|
||||
|
||||
The project argument is deprecated, use default_project instead.
|
||||
The project argument is deprecated as of the 1.7.0 release in favor
|
||||
of default_project and may be removed in the 2.0.0 release.
|
||||
|
||||
If both default_project and project is provided, the default_project
|
||||
will be used.
|
||||
"""
|
||||
if project:
|
||||
LOG.warning(_LW("The project argument is deprecated, "
|
||||
"use default_project instead."))
|
||||
default_project_id = base.getid(default_project) or base.getid(project)
|
||||
user_data = base.filter_none(name=name,
|
||||
domain_id=base.getid(domain),
|
||||
|
Reference in New Issue
Block a user