summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorgan Fainberg <morgan.fainberg@gmail.com>2017-08-07 13:13:31 -0700
committerMorgan Fainberg <morgan.fainberg@gmail.com>2017-08-07 13:14:55 -0700
commit4a43aa02b86e3203bb6614382ef598926a1464cb (patch)
treed4382b1c9460778afda33621af978c2c3bec3edf
parent5d0c29fc912caf18e78e6e153d3af4e554dfb0de (diff)
downloadpython-keystoneclient-4a43aa02b86e3203bb6614382ef598926a1464cb.tar.gz
Remove use of positional decorator
The positional decorator results in poorly maintainable code in a misguided effort to emulate python3's key-word-arg only notation and functionality. This patch removes keystoneclient's dependance on the positional decorator. Change-Id: I9e691cc8b0c04992f4a8dabd67e1b413d3220d23
-rw-r--r--keystoneclient/_discover.py4
-rw-r--r--keystoneclient/adapter.py2
-rw-r--r--keystoneclient/auth/cli.py2
-rw-r--r--keystoneclient/auth/identity/access.py3
-rw-r--r--keystoneclient/auth/identity/base.py2
-rw-r--r--keystoneclient/auth/identity/generic/cli.py2
-rw-r--r--keystoneclient/auth/identity/generic/password.py2
-rw-r--r--keystoneclient/auth/identity/v2.py3
-rw-r--r--keystoneclient/auth/identity/v3/base.py2
-rw-r--r--keystoneclient/contrib/auth/v3/oidc.py2
-rw-r--r--keystoneclient/discover.py2
-rw-r--r--keystoneclient/httpclient.py4
-rw-r--r--keystoneclient/service_catalog.py5
-rw-r--r--keystoneclient/session.py8
-rw-r--r--keystoneclient/tests/unit/v3/test_tokens.py5
-rw-r--r--keystoneclient/utils.py3
-rw-r--r--keystoneclient/v2_0/tokens.py2
-rw-r--r--keystoneclient/v3/contrib/federation/identity_providers.py3
-rw-r--r--keystoneclient/v3/contrib/federation/mappings.py3
-rw-r--r--keystoneclient/v3/contrib/federation/protocols.py3
-rw-r--r--keystoneclient/v3/contrib/federation/service_providers.py3
-rw-r--r--keystoneclient/v3/credentials.py4
-rw-r--r--keystoneclient/v3/domains.py4
-rw-r--r--keystoneclient/v3/endpoints.py5
-rw-r--r--keystoneclient/v3/groups.py6
-rw-r--r--keystoneclient/v3/policies.py5
-rw-r--r--keystoneclient/v3/projects.py7
-rw-r--r--keystoneclient/v3/roles.py7
-rw-r--r--keystoneclient/v3/services.py5
-rw-r--r--keystoneclient/v3/tokens.py5
-rw-r--r--keystoneclient/v3/users.py4
-rw-r--r--requirements.txt1
32 files changed, 2 insertions, 116 deletions
diff --git a/keystoneclient/_discover.py b/keystoneclient/_discover.py
index 69eed9a..a27236c 100644
--- a/keystoneclient/_discover.py
+++ b/keystoneclient/_discover.py
@@ -24,8 +24,6 @@ raw data specified in version discovery responses.
import logging
import re
-from positional import positional
-
from keystoneclient import exceptions
from keystoneclient.i18n import _
@@ -33,7 +31,6 @@ from keystoneclient.i18n import _
_LOGGER = logging.getLogger(__name__)
-@positional()
def get_version_data(session, url, authenticated=None):
"""Retrieve raw version data from a url."""
headers = {'Accept': 'application/json'}
@@ -141,7 +138,6 @@ class Discover(object):
DEPRECATED_STATUSES = ('deprecated',)
EXPERIMENTAL_STATUSES = ('experimental',)
- @positional()
def __init__(self, session, url, authenticated=None):
self._data = get_version_data(session, url,
authenticated=authenticated)
diff --git a/keystoneclient/adapter.py b/keystoneclient/adapter.py
index faa61a6..94cd81d 100644
--- a/keystoneclient/adapter.py
+++ b/keystoneclient/adapter.py
@@ -13,7 +13,6 @@
import warnings
from oslo_serialization import jsonutils
-from positional import positional
class Adapter(object):
@@ -46,7 +45,6 @@ class Adapter(object):
:type logger: logging.Logger
"""
- @positional()
def __init__(self, session, service_type=None, service_name=None,
interface=None, region_name=None, endpoint_override=None,
version=None, auth=None, user_agent=None,
diff --git a/keystoneclient/auth/cli.py b/keystoneclient/auth/cli.py
index 1b8e054..d18baec 100644
--- a/keystoneclient/auth/cli.py
+++ b/keystoneclient/auth/cli.py
@@ -14,7 +14,6 @@ import argparse
import os
from debtcollector import removals
-from positional import positional
from keystoneclient.auth import base
@@ -24,7 +23,6 @@ from keystoneclient.auth import base
version='2.1.0',
removal_version='3.0.0'
)
-@positional()
def register_argparse_arguments(parser, argv, default=None):
"""Register CLI options needed to create a plugin.
diff --git a/keystoneclient/auth/identity/access.py b/keystoneclient/auth/identity/access.py
index 5849b75..3e096b7 100644
--- a/keystoneclient/auth/identity/access.py
+++ b/keystoneclient/auth/identity/access.py
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient.auth.identity import base
@@ -32,7 +30,6 @@ class AccessInfoPlugin(base.BaseIdentityPlugin):
if using the AUTH_INTERFACE with get_endpoint. (optional)
"""
- @positional()
def __init__(self, auth_ref, auth_url=None):
super(AccessInfoPlugin, self).__init__(auth_url=auth_url,
reauthenticate=False)
diff --git a/keystoneclient/auth/identity/base.py b/keystoneclient/auth/identity/base.py
index b20d3e2..53a8408 100644
--- a/keystoneclient/auth/identity/base.py
+++ b/keystoneclient/auth/identity/base.py
@@ -16,7 +16,6 @@ import threading
import warnings
from oslo_config import cfg
-from positional import positional
import six
from keystoneclient import _discover
@@ -366,7 +365,6 @@ class BaseIdentityPlugin(base.BaseAuthPlugin):
def get_project_id(self, session, **kwargs):
return self.get_access(session).project_id
- @positional()
def get_discovery(self, session, url, authenticated=None):
"""Return the discovery object for a URL.
diff --git a/keystoneclient/auth/identity/generic/cli.py b/keystoneclient/auth/identity/generic/cli.py
index 9debf63..de1d748 100644
--- a/keystoneclient/auth/identity/generic/cli.py
+++ b/keystoneclient/auth/identity/generic/cli.py
@@ -11,7 +11,6 @@
# under the License.
from oslo_config import cfg
-from positional import positional
from keystoneclient.auth.identity.generic import password
from keystoneclient import exceptions as exc
@@ -25,7 +24,6 @@ class DefaultCLI(password.Password):
as well as allowing users to override with a custom token and endpoint.
"""
- @positional()
def __init__(self, endpoint=None, token=None, **kwargs):
super(DefaultCLI, self).__init__(**kwargs)
diff --git a/keystoneclient/auth/identity/generic/password.py b/keystoneclient/auth/identity/generic/password.py
index 873e253..ddcdba8 100644
--- a/keystoneclient/auth/identity/generic/password.py
+++ b/keystoneclient/auth/identity/generic/password.py
@@ -11,7 +11,6 @@
# under the License.
from oslo_config import cfg
-from positional import positional
from keystoneclient import _discover
from keystoneclient.auth.identity.generic import base
@@ -42,7 +41,6 @@ class Password(base.BaseGenericPlugin):
"""
- @positional()
def __init__(self, auth_url, username=None, user_id=None, password=None,
user_domain_id=None, user_domain_name=None, **kwargs):
super(Password, self).__init__(auth_url=auth_url, **kwargs)
diff --git a/keystoneclient/auth/identity/v2.py b/keystoneclient/auth/identity/v2.py
index 6a403dc..add1da4 100644
--- a/keystoneclient/auth/identity/v2.py
+++ b/keystoneclient/auth/identity/v2.py
@@ -14,7 +14,6 @@ import abc
import logging
from oslo_config import cfg
-from positional import positional
import six
from keystoneclient import access
@@ -49,7 +48,6 @@ class Auth(base.BaseIdentityPlugin):
return options
- @positional()
def __init__(self, auth_url,
trust_id=None,
tenant_id=None,
@@ -128,7 +126,6 @@ class Password(Auth):
:raises TypeError: if a user_id or username is not provided.
"""
- @positional(4)
def __init__(self, auth_url, username=_NOT_PASSED, password=None,
user_id=_NOT_PASSED, **kwargs):
super(Password, self).__init__(auth_url, **kwargs)
diff --git a/keystoneclient/auth/identity/v3/base.py b/keystoneclient/auth/identity/v3/base.py
index 3576045..51d16ea 100644
--- a/keystoneclient/auth/identity/v3/base.py
+++ b/keystoneclient/auth/identity/v3/base.py
@@ -15,7 +15,6 @@ import json
import logging
from oslo_config import cfg
-from positional import positional
import six
from keystoneclient import access
@@ -47,7 +46,6 @@ class BaseAuth(base.BaseIdentityPlugin):
token. (optional) default True.
"""
- @positional()
def __init__(self, auth_url,
trust_id=None,
domain_id=None,
diff --git a/keystoneclient/contrib/auth/v3/oidc.py b/keystoneclient/contrib/auth/v3/oidc.py
index 957c50e..3884293 100644
--- a/keystoneclient/contrib/auth/v3/oidc.py
+++ b/keystoneclient/contrib/auth/v3/oidc.py
@@ -11,7 +11,6 @@
# under the License.
from oslo_config import cfg
-from positional import positional
from keystoneclient import access
from keystoneclient.auth.identity.v3 import federated
@@ -42,7 +41,6 @@ class OidcPassword(federated.FederatedBaseAuth):
])
return options
- @positional(4)
def __init__(self, auth_url, identity_provider, protocol,
username, password, client_id, client_secret,
access_token_endpoint, scope='profile',
diff --git a/keystoneclient/discover.py b/keystoneclient/discover.py
index 823c94c..0c129b3 100644
--- a/keystoneclient/discover.py
+++ b/keystoneclient/discover.py
@@ -14,7 +14,6 @@ import warnings
from debtcollector import removals
from keystoneauth1 import plugin
-from positional import positional
from keystoneclient import _discover
from keystoneclient import exceptions
@@ -146,7 +145,6 @@ class Discover(_discover.Discover):
"""
- @positional(2)
def __init__(self, session=None, authenticated=None, **kwargs):
if not session:
warnings.warn(
diff --git a/keystoneclient/httpclient.py b/keystoneclient/httpclient.py
index e6813f3..50d393a 100644
--- a/keystoneclient/httpclient.py
+++ b/keystoneclient/httpclient.py
@@ -25,7 +25,6 @@ from debtcollector import renames
from keystoneauth1 import adapter
from oslo_serialization import jsonutils
import pkg_resources
-from positional import positional
import requests
try:
@@ -241,7 +240,6 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin):
removal_version='2.0.0')
@renames.renamed_kwarg('tenant_id', 'project_id', version='1.7.0',
removal_version='2.0.0')
- @positional(enforcement=positional.WARN)
def __init__(self, username=None, tenant_id=None, tenant_name=None,
password=None, auth_url=None, region_name=None, endpoint=None,
token=None, auth_ref=None, use_keyring=False,
@@ -483,7 +481,6 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin):
return self.project_name
- @positional(enforcement=positional.WARN)
def authenticate(self, username=None, password=None, tenant_name=None,
tenant_id=None, auth_url=None, token=None,
user_id=None, domain_name=None, domain_id=None,
@@ -693,7 +690,6 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin):
# permanently setting _endpoint would better match that behaviour.
self._endpoint = value
- @positional(enforcement=positional.WARN)
def get_raw_token_from_identity_service(self, auth_url, username=None,
password=None, tenant_name=None,
tenant_id=None, token=None,
diff --git a/keystoneclient/service_catalog.py b/keystoneclient/service_catalog.py
index 45d7d0a..cf4bc86 100644
--- a/keystoneclient/service_catalog.py
+++ b/keystoneclient/service_catalog.py
@@ -19,7 +19,6 @@
import abc
import warnings
-from positional import positional
import six
from keystoneclient import exceptions
@@ -209,7 +208,6 @@ class ServiceCatalog(object):
return endpoints
@abc.abstractmethod
- @positional(enforcement=positional.WARN)
def get_urls(self, attr=None, filter_value=None,
service_type='identity', endpoint_type='publicURL',
region_name=None, service_name=None):
@@ -233,7 +231,6 @@ class ServiceCatalog(object):
"""
raise NotImplementedError() # pragma: no cover
- @positional(3, enforcement=positional.WARN)
def url_for(self, attr=None, filter_value=None,
service_type='identity', endpoint_type='publicURL',
region_name=None, service_name=None):
@@ -348,7 +345,6 @@ class ServiceCatalogV2(ServiceCatalog):
pass
return token
- @positional(enforcement=positional.WARN)
def get_urls(self, attr=None, filter_value=None,
service_type='identity', endpoint_type='publicURL',
region_name=None, service_name=None):
@@ -415,7 +411,6 @@ class ServiceCatalogV3(ServiceCatalog):
pass
return token
- @positional(enforcement=positional.WARN)
def get_urls(self, attr=None, filter_value=None,
service_type='identity', endpoint_type='public',
region_name=None, service_name=None):
diff --git a/keystoneclient/session.py b/keystoneclient/session.py
index 9faedac..ae5da94 100644
--- a/keystoneclient/session.py
+++ b/keystoneclient/session.py
@@ -25,7 +25,6 @@ from oslo_serialization import jsonutils
from oslo_utils import encodeutils
from oslo_utils import importutils
from oslo_utils import strutils
-from positional import positional
import requests
import six
from six.moves import urllib
@@ -134,7 +133,6 @@ class Session(object):
"""This property is deprecated as of the 1.7.0 release and may be removed
in the 2.0.0 release."""
- @positional(2, enforcement=positional.WARN)
def __init__(self, auth=None, session=None, original_ip=None, verify=True,
cert=None, timeout=None, user_agent=None,
redirect=_DEFAULT_REDIRECT_LIMIT):
@@ -177,7 +175,6 @@ class Session(object):
return (header[0], '{SHA1}%s' % token_hash)
return header
- @positional()
def _http_log_request(self, url, method=None, data=None,
headers=None, logger=_logger):
if not logger.isEnabledFor(logging.DEBUG):
@@ -256,7 +253,6 @@ class Session(object):
logger.debug(' '.join(string_parts))
# NOTE(artmr): parameter 'original_ip' value is never used
- @positional(enforcement=positional.WARN)
def request(self, url, method, json=None, original_ip=None,
user_agent=None, redirect=None, authenticated=None,
endpoint_filter=None, auth=None, requests_auth=None,
@@ -806,7 +802,7 @@ class Session(object):
auth = self._auth_required(auth, msg)
return auth.get_project_id(self)
- @positional.classmethod()
+ @classmethod
def get_conf_options(cls, deprecated_opts=None):
"""Get oslo_config options that are needed for a :py:class:`.Session`.
@@ -855,7 +851,7 @@ class Session(object):
help='Timeout value for http requests'),
]
- @positional.classmethod()
+ @classmethod
def register_conf_options(cls, conf, group, deprecated_opts=None):
"""Register the oslo_config options that are needed for a session.
diff --git a/keystoneclient/tests/unit/v3/test_tokens.py b/keystoneclient/tests/unit/v3/test_tokens.py
index 89b65f8..1a8fd68 100644
--- a/keystoneclient/tests/unit/v3/test_tokens.py
+++ b/keystoneclient/tests/unit/v3/test_tokens.py
@@ -64,11 +64,6 @@ class TokenTests(utils.ClientTestCase, testresources.ResourcedTestCase):
self.assertQueryStringIs('audit_id_only')
self.assertEqual(sample_revoked_response, resp)
- def test_get_revoked_audit_id_only_positional_exc(self):
- # When get_revoked(True) an exception is raised because this must be
- # called with named parameter.
- self.assertRaises(TypeError, self.client.tokens.get_revoked, True)
-
def test_validate_token_with_token_id(self):
# Can validate a token passing a string token ID.
token_id = uuid.uuid4().hex
diff --git a/keystoneclient/utils.py b/keystoneclient/utils.py
index 8e8dd7c..67609e1 100644
--- a/keystoneclient/utils.py
+++ b/keystoneclient/utils.py
@@ -16,9 +16,6 @@ import sys
from keystoneauth1 import exceptions as ksa_exceptions
from oslo_utils import timeutils
-# NOTE(stevemar): do not remove positional. We need this to stay for a while
-# since versions of auth_token require it here.
-from positional import positional # noqa
import six
from keystoneclient import exceptions as ksc_exceptions
diff --git a/keystoneclient/v2_0/tokens.py b/keystoneclient/v2_0/tokens.py
index 8e64796..14c054e 100644
--- a/keystoneclient/v2_0/tokens.py
+++ b/keystoneclient/v2_0/tokens.py
@@ -12,7 +12,6 @@
from keystoneauth1 import exceptions
from keystoneauth1 import plugin
-from positional import positional
from keystoneclient import access
from keystoneclient import base
@@ -40,7 +39,6 @@ class Token(base.Resource):
class TokenManager(base.Manager):
resource_class = Token
- @positional(enforcement=positional.WARN)
def authenticate(self, username=None, tenant_id=None, tenant_name=None,
password=None, token=None, return_raw=False):
if token:
diff --git a/keystoneclient/v3/contrib/federation/identity_providers.py b/keystoneclient/v3/contrib/federation/identity_providers.py
index 4675ca3..8e009b9 100644
--- a/keystoneclient/v3/contrib/federation/identity_providers.py
+++ b/keystoneclient/v3/contrib/federation/identity_providers.py
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -40,7 +38,6 @@ class IdentityProviderManager(base.CrudManager):
return self._update(url, body=body, response_key=self.key,
method='PUT')
- @positional.method(0)
def create(self, id, **kwargs):
"""Create Identity Provider object.
diff --git a/keystoneclient/v3/contrib/federation/mappings.py b/keystoneclient/v3/contrib/federation/mappings.py
index 24a9c7f..a0e54ae 100644
--- a/keystoneclient/v3/contrib/federation/mappings.py
+++ b/keystoneclient/v3/contrib/federation/mappings.py
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -41,7 +39,6 @@ class MappingManager(base.CrudManager):
response_key=self.key,
method='PUT')
- @positional.method(0)
def create(self, mapping_id, **kwargs):
"""Create federation mapping.
diff --git a/keystoneclient/v3/contrib/federation/protocols.py b/keystoneclient/v3/contrib/federation/protocols.py
index 34daf0f..4fad689 100644
--- a/keystoneclient/v3/contrib/federation/protocols.py
+++ b/keystoneclient/v3/contrib/federation/protocols.py
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -57,7 +55,6 @@ class ProtocolManager(base.CrudManager):
response_key=self.key,
method='PUT')
- @positional.method(3)
def create(self, protocol_id, identity_provider, mapping, **kwargs):
"""Create federation protocol object and tie to the Identity Provider.
diff --git a/keystoneclient/v3/contrib/federation/service_providers.py b/keystoneclient/v3/contrib/federation/service_providers.py
index f731c39..fed1257 100644
--- a/keystoneclient/v3/contrib/federation/service_providers.py
+++ b/keystoneclient/v3/contrib/federation/service_providers.py
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -42,7 +40,6 @@ class ServiceProviderManager(base.CrudManager):
return self._update(url, body=body, response_key=self.key,
method='PUT')
- @positional.method(0)
def create(self, id, **kwargs):
"""Create Service Provider object.
diff --git a/keystoneclient/v3/credentials.py b/keystoneclient/v3/credentials.py
index 80eb38b..70e0670 100644
--- a/keystoneclient/v3/credentials.py
+++ b/keystoneclient/v3/credentials.py
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -41,7 +39,6 @@ class CredentialManager(base.CrudManager):
collection_key = 'credentials'
key = 'credential'
- @positional(1, enforcement=positional.WARN)
def create(self, user, type, blob, project=None, **kwargs):
"""Create a credential.
@@ -95,7 +92,6 @@ class CredentialManager(base.CrudManager):
"""
return super(CredentialManager, self).list(**kwargs)
- @positional(2, enforcement=positional.WARN)
def update(self, credential, user, type=None, blob=None, project=None,
**kwargs):
"""Update a credential.
diff --git a/keystoneclient/v3/domains.py b/keystoneclient/v3/domains.py
index a790558..221b50f 100644
--- a/keystoneclient/v3/domains.py
+++ b/keystoneclient/v3/domains.py
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -40,7 +38,6 @@ class DomainManager(base.CrudManager):
collection_key = 'domains'
key = 'domain'
- @positional(1, enforcement=positional.WARN)
def create(self, name, description=None, enabled=True, **kwargs):
"""Create a domain.
@@ -89,7 +86,6 @@ class DomainManager(base.CrudManager):
kwargs['enabled'] = 0
return super(DomainManager, self).list(**kwargs)
- @positional(enforcement=positional.WARN)
def update(self, domain, name=None,
description=None, enabled=None, **kwargs):
"""Update a domain.
diff --git a/keystoneclient/v3/endpoints.py b/keystoneclient/v3/endpoints.py
index bc8ccb6..0452394 100644
--- a/keystoneclient/v3/endpoints.py
+++ b/keystoneclient/v3/endpoints.py
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
from keystoneclient import exceptions
from keystoneclient.i18n import _
@@ -54,7 +52,6 @@ class EndpointManager(base.CrudManager):
msg %= ', '.join(VALID_INTERFACES)
raise exceptions.ValidationError(msg)
- @positional(1, enforcement=positional.WARN)
def create(self, service, url, interface=None, region=None, enabled=True,
**kwargs):
"""Create an endpoint.
@@ -97,7 +94,6 @@ class EndpointManager(base.CrudManager):
return super(EndpointManager, self).get(
endpoint_id=base.getid(endpoint))
- @positional(enforcement=positional.WARN)
def list(self, service=None, interface=None, region=None, enabled=None,
region_id=None, **kwargs):
"""List endpoints.
@@ -128,7 +124,6 @@ class EndpointManager(base.CrudManager):
enabled=enabled,
**kwargs)
- @positional(enforcement=positional.WARN)
def update(self, endpoint, service=None, url=None, interface=None,
region=None, enabled=None, **kwargs):
"""Update an endpoint.
diff --git a/keystoneclient/v3/groups.py b/keystoneclient/v3/groups.py
index 2eec324..843ad00 100644
--- a/keystoneclient/v3/groups.py
+++ b/keystoneclient/v3/groups.py
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -29,7 +27,6 @@ class Group(base.Resource):
"""
- @positional(enforcement=positional.WARN)
def update(self, name=None, description=None):
kwargs = {
'name': name if name is not None else self.name,
@@ -54,7 +51,6 @@ class GroupManager(base.CrudManager):
collection_key = 'groups'
key = 'group'
- @positional(1, enforcement=positional.WARN)
def create(self, name, domain=None, description=None, **kwargs):
"""Create a group.
@@ -75,7 +71,6 @@ class GroupManager(base.CrudManager):
description=description,
**kwargs)
- @positional(enforcement=positional.WARN)
def list(self, user=None, domain=None, **kwargs):
"""List groups.
@@ -111,7 +106,6 @@ class GroupManager(base.CrudManager):
return super(GroupManager, self).get(
group_id=base.getid(group))
- @positional(enforcement=positional.WARN)
def update(self, group, name=None, description=None, **kwargs):
"""Update a group.
diff --git a/keystoneclient/v3/policies.py b/keystoneclient/v3/policies.py
index a9be680..253d1b1 100644
--- a/keystoneclient/v3/policies.py
+++ b/keystoneclient/v3/policies.py
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -29,7 +27,6 @@ class Policy(base.Resource):
"""
- @positional(enforcement=positional.WARN)
def update(self, blob=None, type=None):
kwargs = {
'blob': blob if blob is not None else self.blob,
@@ -52,7 +49,6 @@ class PolicyManager(base.CrudManager):
collection_key = 'policies'
key = 'policy'
- @positional(1, enforcement=positional.WARN)
def create(self, blob, type='application/json', **kwargs):
"""Create a policy.
@@ -95,7 +91,6 @@ class PolicyManager(base.CrudManager):
"""
return super(PolicyManager, self).list(**kwargs)
- @positional(enforcement=positional.WARN)
def update(self, policy, blob=None, type=None, **kwargs):
"""Update a policy.
diff --git a/keystoneclient/v3/projects.py b/keystoneclient/v3/projects.py
index 81dcf8d..3b2c4d8 100644
--- a/keystoneclient/v3/projects.py
+++ b/keystoneclient/v3/projects.py
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
from keystoneclient import exceptions
from keystoneclient.i18n import _
@@ -37,7 +35,6 @@ class Project(base.Resource):
"""
- @positional(enforcement=positional.WARN)
def update(self, name=None, description=None, enabled=None):
kwargs = {
'name': name if name is not None else self.name,
@@ -63,7 +60,6 @@ class ProjectManager(base.CrudManager):
collection_key = 'projects'
key = 'project'
- @positional(3, enforcement=positional.WARN)
def create(self, name, domain, description=None,
enabled=True, parent=None, **kwargs):
"""Create a project.
@@ -96,7 +92,6 @@ class ProjectManager(base.CrudManager):
enabled=enabled,
**kwargs)
- @positional(enforcement=positional.WARN)
def list(self, domain=None, user=None, **kwargs):
"""List projects.
@@ -132,7 +127,6 @@ class ProjectManager(base.CrudManager):
'parameters, not both')
raise exceptions.ValidationError(msg)
- @positional()
def get(self, project, subtree_as_list=False, parents_as_list=False,
subtree_as_ids=False, parents_as_ids=False):
"""Retrieve a project.
@@ -182,7 +176,6 @@ class ProjectManager(base.CrudManager):
url = self.build_url(dict_args_in_out=dict_args)
return self._get(url + query, self.key)
- @positional(enforcement=positional.WARN)
def update(self, project, name=None, domain=None, description=None,
enabled=None, **kwargs):
"""Update a project.
diff --git a/keystoneclient/v3/roles.py b/keystoneclient/v3/roles.py
index d5439ff..ce0cfe8 100644
--- a/keystoneclient/v3/roles.py
+++ b/keystoneclient/v3/roles.py
@@ -15,7 +15,6 @@
# under the License.
from debtcollector import removals
-from positional import positional
from keystoneclient import base
from keystoneclient import exceptions
@@ -96,7 +95,6 @@ class RoleManager(base.CrudManager):
msg = _('Must specify either a user or group')
raise exceptions.ValidationError(msg)
- @positional(1, enforcement=positional.WARN)
def create(self, name, domain=None, **kwargs):
"""Create a role.
@@ -132,7 +130,6 @@ class RoleManager(base.CrudManager):
"""
return super(RoleManager, self).get(role_id=base.getid(role))
- @positional(enforcement=positional.WARN)
def list(self, user=None, group=None, domain=None,
project=None, os_inherit_extension_inherited=False, **kwargs):
"""List roles and role grants.
@@ -178,7 +175,6 @@ class RoleManager(base.CrudManager):
return super(RoleManager, self).list(**kwargs)
- @positional(enforcement=positional.WARN)
def update(self, role, name=None, **kwargs):
"""Update a role.
@@ -212,7 +208,6 @@ class RoleManager(base.CrudManager):
return super(RoleManager, self).delete(
role_id=base.getid(role))
- @positional(enforcement=positional.WARN)
def grant(self, role, user=None, group=None, domain=None, project=None,
os_inherit_extension_inherited=False, **kwargs):
"""Grant a role to a user or group on a domain or project.
@@ -259,7 +254,6 @@ class RoleManager(base.CrudManager):
role_id=base.getid(role),
**kwargs)
- @positional(enforcement=positional.WARN)
def check(self, role, user=None, group=None, domain=None, project=None,
os_inherit_extension_inherited=False, **kwargs):
"""Check if a user or group has a role on a domain or project.
@@ -310,7 +304,6 @@ class RoleManager(base.CrudManager):
os_inherit_extension_inherited=os_inherit_extension_inherited,
**kwargs)
- @positional(enforcement=positional.WARN)
def revoke(self, role, user=None, group=None, domain=None, project=None,
os_inherit_extension_inherited=False, **kwargs):
"""Revoke a role from a user or group on a domain or project.
diff --git a/keystoneclient/v3/services.py b/keystoneclient/v3/services.py
index d38e2d4..631940e 100644
--- a/keystoneclient/v3/services.py
+++ b/keystoneclient/v3/services.py
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -41,7 +39,6 @@ class ServiceManager(base.CrudManager):
collection_key = 'services'
key = 'service'
- @positional(1, enforcement=positional.WARN)
def create(self, name, type=None,
enabled=True, description=None, **kwargs):
"""Create a service.
@@ -78,7 +75,6 @@ class ServiceManager(base.CrudManager):
return super(ServiceManager, self).get(
service_id=base.getid(service))
- @positional(enforcement=positional.WARN)
def list(self, name=None, type=None, **kwargs):
"""List services.
@@ -96,7 +92,6 @@ class ServiceManager(base.CrudManager):
type=type_arg,
**kwargs)
- @positional(enforcement=positional.WARN)
def update(self, service, name=None, type=None, enabled=None,
description=None, **kwargs):
"""Update a service.
diff --git a/keystoneclient/v3/tokens.py b/keystoneclient/v3/tokens.py
index 77f6045..6e6fffd 100644
--- a/keystoneclient/v3/tokens.py
+++ b/keystoneclient/v3/tokens.py
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import access
from keystoneclient import base
@@ -40,7 +38,6 @@ class TokenManager(object):
headers = {'X-Subject-Token': token_id}
return self._client.delete('/auth/tokens', headers=headers)
- @positional.method(0)
def get_revoked(self, audit_id_only=False):
"""Get revoked tokens list.
@@ -60,7 +57,6 @@ class TokenManager(object):
resp, body = self._client.get(path)
return body
- @positional.method(1)
def get_token_data(self, token, include_catalog=True, allow_expired=False):
"""Fetch the data about a token from the identity server.
@@ -89,7 +85,6 @@ class TokenManager(object):
resp, body = self._client.get(url, headers=headers)
return body
- @positional.method(1)
def validate(self, token, include_catalog=True, allow_expired=False):
"""Validate a token.
diff --git a/keystoneclient/v3/users.py b/keystoneclient/v3/users.py
index 31cad39..90cd51c 100644
--- a/keystoneclient/v3/users.py
+++ b/keystoneclient/v3/users.py
@@ -15,7 +15,6 @@
# under the License.
from debtcollector import renames
-from positional import positional
from keystoneclient import base
from keystoneclient import exceptions
@@ -47,7 +46,6 @@ class UserManager(base.CrudManager):
@renames.renamed_kwarg('project', 'default_project', version='1.7.0',
removal_version='2.0.0')
- @positional(1, enforcement=positional.WARN)
def create(self, name, domain=None, project=None, password=None,
email=None, description=None, enabled=True,
default_project=None, **kwargs):
@@ -96,7 +94,6 @@ class UserManager(base.CrudManager):
@renames.renamed_kwarg('project', 'default_project', version='1.7.0',
removal_version='2.0.0')
- @positional(enforcement=positional.WARN)
def list(self, project=None, domain=None, group=None, default_project=None,
**kwargs):
"""List users.
@@ -153,7 +150,6 @@ class UserManager(base.CrudManager):
@renames.renamed_kwarg('project', 'default_project', version='1.7.0',
removal_version='2.0.0')
- @positional(enforcement=positional.WARN)
def update(self, user, name=None, domain=None, project=None, password=None,
email=None, description=None, enabled=None,
default_project=None, **kwargs):
diff --git a/requirements.txt b/requirements.txt
index c071cd0..1cf5b17 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -10,7 +10,6 @@ oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0
oslo.i18n!=3.15.2,>=2.1.0 # Apache-2.0
oslo.serialization!=2.19.1,>=1.10.0 # Apache-2.0
oslo.utils>=3.20.0 # Apache-2.0
-positional>=1.1.1 # Apache-2.0
requests>=2.14.2 # Apache-2.0
six>=1.9.0 # MIT
stevedore>=1.20.0 # Apache-2.0