From 4bd8bf6a32d962d6dafdcadf91c1aa841c75202b Mon Sep 17 00:00:00 2001 From: Brant Knudson Date: Thu, 31 Oct 2013 15:54:59 -0500 Subject: [PATCH] Dependency cleanup Clean up dependency usage. a) If the class uses a dependency directly, make sure it's included (getting from superclass isn't enough) b) If the class doesn't use a dependency directly, make sure it's NOT included (being a superclass isn't excuse) Change-Id: Ifbd489f349ec019a41093a2814664e6d8c9f0069 --- keystone/auth/controllers.py | 2 +- keystone/auth/core.py | 2 -- keystone/auth/plugins/password.py | 2 ++ keystone/common/controller.py | 6 +++--- keystone/contrib/ec2/controllers.py | 2 +- keystone/contrib/endpoint_filter/controllers.py | 2 +- keystone/contrib/oauth1/controllers.py | 7 +++---- keystone/credential/controllers.py | 2 ++ keystone/identity/controllers.py | 10 ++++++++++ keystone/policy/controllers.py | 2 ++ keystone/token/controllers.py | 3 ++- keystone/token/providers/uuid.py | 6 +++--- 12 files changed, 30 insertions(+), 16 deletions(-) diff --git a/keystone/auth/controllers.py b/keystone/auth/controllers.py index fdef15fd60..5c2edcd19b 100644 --- a/keystone/auth/controllers.py +++ b/keystone/auth/controllers.py @@ -272,7 +272,7 @@ class AuthInfo(object): self._scope_data = (domain_id, project_id, trust) -@dependency.requires('token_provider_api') +@dependency.requires('identity_api', 'token_provider_api') class Auth(controller.V3Controller): def __init__(self, *args, **kw): super(Auth, self).__init__(*args, **kw) diff --git a/keystone/auth/core.py b/keystone/auth/core.py index 4ffbd17243..b1c54cd10a 100644 --- a/keystone/auth/core.py +++ b/keystone/auth/core.py @@ -18,11 +18,9 @@ import abc import six -from keystone.common import dependency from keystone import exception -@dependency.requires('identity_api') @six.add_metaclass(abc.ABCMeta) class AuthMethodHandler(object): """Abstract base class for an authentication plugin.""" diff --git a/keystone/auth/plugins/password.py b/keystone/auth/plugins/password.py index 769f02444c..11c13af97d 100644 --- a/keystone/auth/plugins/password.py +++ b/keystone/auth/plugins/password.py @@ -15,6 +15,7 @@ # under the License. from keystone import auth +from keystone.common import dependency from keystone import exception from keystone import identity from keystone.openstack.common import log as logging @@ -97,6 +98,7 @@ class UserAuthInfo(object): self.domain_id = domain_ref['id'] +@dependency.requires('identity_api') class Password(auth.AuthMethodHandler): def authenticate(self, context, auth_payload, user_context): """Try to authenticate against the identity backend.""" diff --git a/keystone/common/controller.py b/keystone/common/controller.py index 9c0f5b0c91..49dec98e80 100644 --- a/keystone/common/controller.py +++ b/keystone/common/controller.py @@ -202,9 +202,8 @@ def filterprotected(*filters): return _filterprotected -@dependency.requires('identity_api', 'policy_api', 'token_api', - 'trust_api', 'catalog_api', 'credential_api', - 'assignment_api') +@dependency.requires('assignment_api', 'identity_api', 'policy_api', + 'token_api', 'trust_api') class V2Controller(wsgi.Application): """Base controller class for Identity API v2.""" @@ -314,6 +313,7 @@ class V2Controller(wsgi.Application): return ref +@dependency.requires('identity_api', 'policy_api', 'token_api') class V3Controller(V2Controller): """Base controller class for Identity API v3. diff --git a/keystone/contrib/ec2/controllers.py b/keystone/contrib/ec2/controllers.py index e6f98f3564..0b8e6f11ae 100644 --- a/keystone/contrib/ec2/controllers.py +++ b/keystone/contrib/ec2/controllers.py @@ -46,7 +46,7 @@ from keystone import token @dependency.requires('assignment_api', 'catalog_api', 'credential_api', - 'token_provider_api') + 'identity_api', 'token_api', 'token_provider_api') class Ec2Controller(controller.V2Controller): def check_signature(self, creds_ref, credentials): signer = ec2_utils.Ec2Signer(creds_ref['secret']) diff --git a/keystone/contrib/endpoint_filter/controllers.py b/keystone/contrib/endpoint_filter/controllers.py index 5939215eea..c68fe4a0c5 100644 --- a/keystone/contrib/endpoint_filter/controllers.py +++ b/keystone/contrib/endpoint_filter/controllers.py @@ -21,7 +21,7 @@ from keystone.common import dependency from keystone.identity import controllers as identity_controllers -@dependency.requires('assignment_api', 'endpoint_filter_api') +@dependency.requires('assignment_api', 'catalog_api', 'endpoint_filter_api') class EndpointFilterV3Controller(controller.V3Controller): @controller.protected() diff --git a/keystone/contrib/oauth1/controllers.py b/keystone/contrib/oauth1/controllers.py index b8c2441928..5e6309d7f4 100644 --- a/keystone/contrib/oauth1/controllers.py +++ b/keystone/contrib/oauth1/controllers.py @@ -71,7 +71,7 @@ class ConsumerCrudV3(controller.V3Controller): raise exception.ValidationError(message=msg) -@dependency.requires('oauth_api') +@dependency.requires('oauth_api', 'token_api') class AccessTokenCrudV3(controller.V3Controller): collection_name = 'access_tokens' member_name = 'access_token' @@ -120,7 +120,7 @@ class AccessTokenCrudV3(controller.V3Controller): return formatted_entity -@dependency.requires('oauth_api', 'assignment_api') +@dependency.requires('assignment_api', 'oauth_api') class AccessTokenRolesV3(controller.V3Controller): collection_name = 'roles' member_name = 'role' @@ -159,8 +159,7 @@ class AccessTokenRolesV3(controller.V3Controller): return formatted_entity -@dependency.requires('oauth_api', 'token_api', 'identity_api', - 'token_provider_api', 'assignment_api') +@dependency.requires('assignment_api', 'oauth_api', 'token_api') class OAuthControllerV3(controller.V3Controller): collection_name = 'not_used' member_name = 'not_used' diff --git a/keystone/credential/controllers.py b/keystone/credential/controllers.py index bddd64e7ab..62e889f15f 100644 --- a/keystone/credential/controllers.py +++ b/keystone/credential/controllers.py @@ -18,9 +18,11 @@ import hashlib import json from keystone.common import controller +from keystone.common import dependency from keystone import exception +@dependency.requires('credential_api') class CredentialV3(controller.V3Controller): collection_name = 'credentials' member_name = 'credential' diff --git a/keystone/identity/controllers.py b/keystone/identity/controllers.py index 158eecb568..22fb1fc783 100644 --- a/keystone/identity/controllers.py +++ b/keystone/identity/controllers.py @@ -22,6 +22,7 @@ import urlparse import uuid from keystone.common import controller +from keystone.common import dependency from keystone import config from keystone import exception from keystone.openstack.common import log as logging @@ -31,6 +32,7 @@ DEFAULT_DOMAIN_ID = CONF.identity.default_domain_id LOG = logging.getLogger(__name__) +@dependency.requires('assignment_api', 'identity_api', 'token_api') class Tenant(controller.V2Controller): def get_all_projects(self, context, **kw): """Gets a list of all tenants for an admin user.""" @@ -167,6 +169,7 @@ class Tenant(controller.V2Controller): return o +@dependency.requires('assignment_api', 'identity_api') class User(controller.V2Controller): def get_user(self, context, user_id): self.assert_admin(context) @@ -313,6 +316,7 @@ class User(controller.V2Controller): return ref +@dependency.requires('assignment_api', 'identity_api') class Role(controller.V2Controller): # COMPAT(essex-3) def get_user_roles(self, context, user_id, tenant_id=None): @@ -469,6 +473,7 @@ class Role(controller.V2Controller): self._delete_tokens_for_user(user_id) +@dependency.requires('assignment_api', 'identity_api') class DomainV3(controller.V3Controller): collection_name = 'domains' member_name = 'domain' @@ -616,6 +621,7 @@ class DomainV3(controller.V3Controller): return {'domain': ref} +@dependency.requires('assignment_api', 'credential_api') class ProjectV3(controller.V3Controller): collection_name = 'projects' member_name = 'project' @@ -678,6 +684,7 @@ class ProjectV3(controller.V3Controller): return self._delete_project(context, project_id) +@dependency.requires('identity_api', 'credential_api') class UserV3(controller.V3Controller): collection_name = 'users' member_name = 'user' @@ -777,6 +784,7 @@ class UserV3(controller.V3Controller): return self._delete_user(context, user_id) +@dependency.requires('identity_api') class GroupV3(controller.V3Controller): collection_name = 'groups' member_name = 'group' @@ -842,6 +850,7 @@ class GroupV3(controller.V3Controller): return self._delete_group(context, group_id) +@dependency.requires('assignment_api', 'identity_api') class RoleV3(controller.V3Controller): collection_name = 'roles' member_name = 'role' @@ -986,6 +995,7 @@ class RoleV3(controller.V3Controller): self._delete_tokens_for_group(group_id) +@dependency.requires('assignment_api', 'identity_api') class RoleAssignmentV3(controller.V3Controller): # TODO(henry-nash): The current implementation does not provide a full diff --git a/keystone/policy/controllers.py b/keystone/policy/controllers.py index 8c207c0dd3..5de61bd1e6 100644 --- a/keystone/policy/controllers.py +++ b/keystone/policy/controllers.py @@ -15,8 +15,10 @@ # under the License. from keystone.common import controller +from keystone.common import dependency +@dependency.requires('policy_api') class PolicyV3(controller.V3Controller): collection_name = 'policies' member_name = 'policy' diff --git a/keystone/token/controllers.py b/keystone/token/controllers.py index 8027154a31..ed89604e1a 100644 --- a/keystone/token/controllers.py +++ b/keystone/token/controllers.py @@ -37,7 +37,8 @@ class ExternalAuthNotApplicable(Exception): pass -@dependency.requires('token_provider_api') +@dependency.requires('assignment_api', 'catalog_api', 'identity_api', + 'token_api', 'token_provider_api', 'trust_api') class Auth(controller.V2Controller): def ca_cert(self, context, auth=None): ca_file = open(CONF.signing.ca_certs, 'r') diff --git a/keystone/token/providers/uuid.py b/keystone/token/providers/uuid.py index 5ddc0498bf..20c925f215 100644 --- a/keystone/token/providers/uuid.py +++ b/keystone/token/providers/uuid.py @@ -36,7 +36,6 @@ CONF = config.CONF DEFAULT_DOMAIN_ID = CONF.identity.default_domain_id -@dependency.requires('assignment_api', 'catalog_api', 'identity_api') class V2TokenDataHelper(object): """Creates V2 token data.""" @classmethod @@ -132,7 +131,8 @@ class V2TokenDataHelper(object): return services.values() -@dependency.requires('assignment_api', 'catalog_api', 'identity_api') +@dependency.requires('assignment_api', 'catalog_api', 'identity_api', + 'trust_api') class V3TokenDataHelper(object): """Token data helper.""" def __init__(self): @@ -330,7 +330,7 @@ class V3TokenDataHelper(object): @dependency.optional('oauth_api') @dependency.requires('assignment_api', 'catalog_api', 'identity_api', - 'token_api') + 'token_api', 'trust_api') class Provider(token.provider.Provider): def __init__(self, *args, **kwargs): super(Provider, self).__init__(*args, **kwargs)