diff options
author | Brant Knudson <bknudson@us.ibm.com> | 2015-07-26 09:12:42 -0500 |
---|---|---|
committer | Brant Knudson <bknudson@us.ibm.com> | 2015-08-13 19:01:42 -0500 |
commit | 4bdbb834d4900dc30be147ad1fc8606b7e04b30d (patch) | |
tree | b6279f65790e9794a17fbc80b552d9a7a1024d86 | |
parent | a50f8a1070b108d2281170e4e25eaaaa9775b27c (diff) | |
download | python-keystoneclient-4bdbb834d4900dc30be147ad1fc8606b7e04b30d.tar.gz |
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
-rw-r--r-- | keystoneclient/tests/unit/v3/test_users.py | 7 | ||||
-rw-r--r-- | keystoneclient/v3/users.py | 28 |
2 files changed, 22 insertions, 13 deletions
diff --git a/keystoneclient/tests/unit/v3/test_users.py b/keystoneclient/tests/unit/v3/test_users.py index e0b28b8..ddc0aec 100644 --- a/keystoneclient/tests/unit/v3/test_users.py +++ b/keystoneclient/tests/unit/v3/test_users.py @@ -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') diff --git a/keystoneclient/v3/users.py b/keystoneclient/v3/users.py index 35c42cc..6eeddb5 100644 --- a/keystoneclient/v3/users.py +++ b/keystoneclient/v3/users.py @@ -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), |