Only 'import *' from 'core' modules
- Renamed identity.controllers.* and identity.routers.* since they now occopy unique namespaces (thanks ayoung!) - Moved catalog and policy controllers into their own respective modules Change-Id: Ib9e277355e0eac15d4d218785c816b718b493b5b
This commit is contained in:
parent
75277cf1ae
commit
c858c1b304
@ -44,7 +44,7 @@ Use the built-in logging module, and ensure you ``getLogger``::
|
|||||||
Imports
|
Imports
|
||||||
-------
|
-------
|
||||||
|
|
||||||
- Do not import objects, only modules
|
- Import modules, not module attributes
|
||||||
- Do not import more than one module per line
|
- Do not import more than one module per line
|
||||||
- Do not make relative imports
|
- Do not make relative imports
|
||||||
- Order your imports by the full module path
|
- Order your imports by the full module path
|
||||||
|
@ -15,3 +15,4 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from keystone.catalog.core import *
|
from keystone.catalog.core import *
|
||||||
|
from keystone.catalog import controllers
|
||||||
|
154
keystone/catalog/controllers.py
Normal file
154
keystone/catalog/controllers.py
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||||
|
|
||||||
|
# Copyright 2012 OpenStack LLC
|
||||||
|
# Copyright 2012 Canonical Ltd.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
from keystone.catalog import core
|
||||||
|
from keystone.common import controller
|
||||||
|
from keystone.common import wsgi
|
||||||
|
from keystone import identity
|
||||||
|
from keystone import policy
|
||||||
|
from keystone import token
|
||||||
|
|
||||||
|
|
||||||
|
class Service(wsgi.Application):
|
||||||
|
def __init__(self):
|
||||||
|
self.catalog_api = core.Manager()
|
||||||
|
self.identity_api = identity.Manager()
|
||||||
|
self.policy_api = policy.Manager()
|
||||||
|
self.token_api = token.Manager()
|
||||||
|
super(Service, self).__init__()
|
||||||
|
|
||||||
|
def get_services(self, context):
|
||||||
|
self.assert_admin(context)
|
||||||
|
service_list = self.catalog_api.list_services(context)
|
||||||
|
return {'OS-KSADM:services': service_list}
|
||||||
|
|
||||||
|
def get_service(self, context, service_id):
|
||||||
|
self.assert_admin(context)
|
||||||
|
service_ref = self.catalog_api.get_service(context, service_id)
|
||||||
|
return {'OS-KSADM:service': service_ref}
|
||||||
|
|
||||||
|
def delete_service(self, context, service_id):
|
||||||
|
self.assert_admin(context)
|
||||||
|
self.catalog_api.delete_service(context, service_id)
|
||||||
|
|
||||||
|
def create_service(self, context, OS_KSADM_service):
|
||||||
|
self.assert_admin(context)
|
||||||
|
service_id = uuid.uuid4().hex
|
||||||
|
service_ref = OS_KSADM_service.copy()
|
||||||
|
service_ref['id'] = service_id
|
||||||
|
new_service_ref = self.catalog_api.create_service(
|
||||||
|
context, service_id, service_ref)
|
||||||
|
return {'OS-KSADM:service': new_service_ref}
|
||||||
|
|
||||||
|
|
||||||
|
class Endpoint(wsgi.Application):
|
||||||
|
def __init__(self):
|
||||||
|
self.catalog_api = core.Manager()
|
||||||
|
self.identity_api = identity.Manager()
|
||||||
|
self.policy_api = policy.Manager()
|
||||||
|
self.token_api = token.Manager()
|
||||||
|
super(Endpoint, self).__init__()
|
||||||
|
|
||||||
|
def get_endpoints(self, context):
|
||||||
|
self.assert_admin(context)
|
||||||
|
endpoint_list = self.catalog_api.list_endpoints(context)
|
||||||
|
return {'endpoints': endpoint_list}
|
||||||
|
|
||||||
|
def create_endpoint(self, context, endpoint):
|
||||||
|
self.assert_admin(context)
|
||||||
|
endpoint_id = uuid.uuid4().hex
|
||||||
|
endpoint_ref = endpoint.copy()
|
||||||
|
endpoint_ref['id'] = endpoint_id
|
||||||
|
new_endpoint_ref = self.catalog_api.create_endpoint(
|
||||||
|
context, endpoint_id, endpoint_ref)
|
||||||
|
return {'endpoint': new_endpoint_ref}
|
||||||
|
|
||||||
|
def delete_endpoint(self, context, endpoint_id):
|
||||||
|
self.assert_admin(context)
|
||||||
|
self.catalog_api.delete_endpoint(context, endpoint_id)
|
||||||
|
|
||||||
|
|
||||||
|
class ServiceV3(controller.V3Controller):
|
||||||
|
@controller.protected
|
||||||
|
def create_service(self, context, service):
|
||||||
|
ref = self._assign_unique_id(self._normalize_dict(service))
|
||||||
|
self._require_attribute(ref, 'type')
|
||||||
|
|
||||||
|
ref = self.catalog_api.create_service(context, ref['id'], ref)
|
||||||
|
return {'service': ref}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def list_services(self, context):
|
||||||
|
refs = self.catalog_api.list_services(context)
|
||||||
|
refs = self._filter_by_attribute(context, refs, 'type')
|
||||||
|
return {'services': self._paginate(context, refs)}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def get_service(self, context, service_id):
|
||||||
|
ref = self.catalog_api.get_service(context, service_id)
|
||||||
|
return {'service': ref}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def update_service(self, context, service_id, service):
|
||||||
|
self._require_matching_id(service_id, service)
|
||||||
|
|
||||||
|
ref = self.catalog_api.update_service(context, service_id, service)
|
||||||
|
return {'service': ref}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def delete_service(self, context, service_id):
|
||||||
|
return self.catalog_api.delete_service(context, service_id)
|
||||||
|
|
||||||
|
|
||||||
|
class EndpointV3(controller.V3Controller):
|
||||||
|
@controller.protected
|
||||||
|
def create_endpoint(self, context, endpoint):
|
||||||
|
ref = self._assign_unique_id(self._normalize_dict(endpoint))
|
||||||
|
self._require_attribute(ref, 'service_id')
|
||||||
|
self._require_attribute(ref, 'interface')
|
||||||
|
self.catalog_api.get_service(context, ref['service_id'])
|
||||||
|
|
||||||
|
ref = self.catalog_api.create_endpoint(context, ref['id'], ref)
|
||||||
|
return {'endpoint': ref}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def list_endpoints(self, context):
|
||||||
|
refs = self.catalog_api.list_endpoints(context)
|
||||||
|
refs = self._filter_by_attribute(context, refs, 'service_id')
|
||||||
|
refs = self._filter_by_attribute(context, refs, 'interface')
|
||||||
|
return {'endpoints': self._paginate(context, refs)}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def get_endpoint(self, context, endpoint_id):
|
||||||
|
ref = self.catalog_api.get_endpoint(context, endpoint_id)
|
||||||
|
return {'endpoint': ref}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def update_endpoint(self, context, endpoint_id, endpoint):
|
||||||
|
self._require_matching_id(endpoint_id, endpoint)
|
||||||
|
|
||||||
|
if 'service_id' in endpoint:
|
||||||
|
self.catalog_api.get_service(context, endpoint['service_id'])
|
||||||
|
|
||||||
|
ref = self.catalog_api.update_endpoint(context, endpoint_id, endpoint)
|
||||||
|
return {'endpoint': ref}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def delete_endpoint(self, context, endpoint_id):
|
||||||
|
return self.catalog_api.delete_endpoint(context, endpoint_id)
|
@ -17,17 +17,10 @@
|
|||||||
|
|
||||||
"""Main entry point into the Catalog service."""
|
"""Main entry point into the Catalog service."""
|
||||||
|
|
||||||
import uuid
|
|
||||||
|
|
||||||
from keystone.common import controller
|
|
||||||
from keystone.common import logging
|
from keystone.common import logging
|
||||||
from keystone.common import manager
|
from keystone.common import manager
|
||||||
from keystone.common import wsgi
|
|
||||||
from keystone import config
|
from keystone import config
|
||||||
from keystone import exception
|
from keystone import exception
|
||||||
from keystone import identity
|
|
||||||
from keystone import policy
|
|
||||||
from keystone import token
|
|
||||||
|
|
||||||
|
|
||||||
CONF = config.CONF
|
CONF = config.CONF
|
||||||
@ -216,132 +209,3 @@ class Driver(object):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
raise exception.NotImplemented()
|
raise exception.NotImplemented()
|
||||||
|
|
||||||
|
|
||||||
class ServiceController(wsgi.Application):
|
|
||||||
def __init__(self):
|
|
||||||
self.catalog_api = Manager()
|
|
||||||
self.identity_api = identity.Manager()
|
|
||||||
self.policy_api = policy.Manager()
|
|
||||||
self.token_api = token.Manager()
|
|
||||||
super(ServiceController, self).__init__()
|
|
||||||
|
|
||||||
def get_services(self, context):
|
|
||||||
self.assert_admin(context)
|
|
||||||
service_list = self.catalog_api.list_services(context)
|
|
||||||
return {'OS-KSADM:services': service_list}
|
|
||||||
|
|
||||||
def get_service(self, context, service_id):
|
|
||||||
self.assert_admin(context)
|
|
||||||
service_ref = self.catalog_api.get_service(context, service_id)
|
|
||||||
return {'OS-KSADM:service': service_ref}
|
|
||||||
|
|
||||||
def delete_service(self, context, service_id):
|
|
||||||
self.assert_admin(context)
|
|
||||||
self.catalog_api.delete_service(context, service_id)
|
|
||||||
|
|
||||||
def create_service(self, context, OS_KSADM_service):
|
|
||||||
self.assert_admin(context)
|
|
||||||
service_id = uuid.uuid4().hex
|
|
||||||
service_ref = OS_KSADM_service.copy()
|
|
||||||
service_ref['id'] = service_id
|
|
||||||
new_service_ref = self.catalog_api.create_service(
|
|
||||||
context, service_id, service_ref)
|
|
||||||
return {'OS-KSADM:service': new_service_ref}
|
|
||||||
|
|
||||||
|
|
||||||
class EndpointController(wsgi.Application):
|
|
||||||
def __init__(self):
|
|
||||||
self.catalog_api = Manager()
|
|
||||||
self.identity_api = identity.Manager()
|
|
||||||
self.policy_api = policy.Manager()
|
|
||||||
self.token_api = token.Manager()
|
|
||||||
super(EndpointController, self).__init__()
|
|
||||||
|
|
||||||
def get_endpoints(self, context):
|
|
||||||
self.assert_admin(context)
|
|
||||||
endpoint_list = self.catalog_api.list_endpoints(context)
|
|
||||||
return {'endpoints': endpoint_list}
|
|
||||||
|
|
||||||
def create_endpoint(self, context, endpoint):
|
|
||||||
self.assert_admin(context)
|
|
||||||
endpoint_id = uuid.uuid4().hex
|
|
||||||
endpoint_ref = endpoint.copy()
|
|
||||||
endpoint_ref['id'] = endpoint_id
|
|
||||||
new_endpoint_ref = self.catalog_api.create_endpoint(
|
|
||||||
context, endpoint_id, endpoint_ref)
|
|
||||||
return {'endpoint': new_endpoint_ref}
|
|
||||||
|
|
||||||
def delete_endpoint(self, context, endpoint_id):
|
|
||||||
self.assert_admin(context)
|
|
||||||
self.catalog_api.delete_endpoint(context, endpoint_id)
|
|
||||||
|
|
||||||
|
|
||||||
class ServiceControllerV3(controller.V3Controller):
|
|
||||||
@controller.protected
|
|
||||||
def create_service(self, context, service):
|
|
||||||
ref = self._assign_unique_id(self._normalize_dict(service))
|
|
||||||
self._require_attribute(ref, 'type')
|
|
||||||
|
|
||||||
ref = self.catalog_api.create_service(context, ref['id'], ref)
|
|
||||||
return {'service': ref}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def list_services(self, context):
|
|
||||||
refs = self.catalog_api.list_services(context)
|
|
||||||
refs = self._filter_by_attribute(context, refs, 'type')
|
|
||||||
return {'services': self._paginate(context, refs)}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def get_service(self, context, service_id):
|
|
||||||
ref = self.catalog_api.get_service(context, service_id)
|
|
||||||
return {'service': ref}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def update_service(self, context, service_id, service):
|
|
||||||
self._require_matching_id(service_id, service)
|
|
||||||
|
|
||||||
ref = self.catalog_api.update_service(context, service_id, service)
|
|
||||||
return {'service': ref}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def delete_service(self, context, service_id):
|
|
||||||
return self.catalog_api.delete_service(context, service_id)
|
|
||||||
|
|
||||||
|
|
||||||
class EndpointControllerV3(controller.V3Controller):
|
|
||||||
@controller.protected
|
|
||||||
def create_endpoint(self, context, endpoint):
|
|
||||||
ref = self._assign_unique_id(self._normalize_dict(endpoint))
|
|
||||||
self._require_attribute(ref, 'service_id')
|
|
||||||
self._require_attribute(ref, 'interface')
|
|
||||||
self.catalog_api.get_service(context, ref['service_id'])
|
|
||||||
|
|
||||||
ref = self.catalog_api.create_endpoint(context, ref['id'], ref)
|
|
||||||
return {'endpoint': ref}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def list_endpoints(self, context):
|
|
||||||
refs = self.catalog_api.list_endpoints(context)
|
|
||||||
refs = self._filter_by_attribute(context, refs, 'service_id')
|
|
||||||
refs = self._filter_by_attribute(context, refs, 'interface')
|
|
||||||
return {'endpoints': self._paginate(context, refs)}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def get_endpoint(self, context, endpoint_id):
|
|
||||||
ref = self.catalog_api.get_endpoint(context, endpoint_id)
|
|
||||||
return {'endpoint': ref}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def update_endpoint(self, context, endpoint_id, endpoint):
|
|
||||||
self._require_matching_id(endpoint_id, endpoint)
|
|
||||||
|
|
||||||
if 'service_id' in endpoint:
|
|
||||||
self.catalog_api.get_service(context, endpoint['service_id'])
|
|
||||||
|
|
||||||
ref = self.catalog_api.update_endpoint(context, endpoint_id, endpoint)
|
|
||||||
return {'endpoint': ref}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def delete_endpoint(self, context, endpoint_id):
|
|
||||||
return self.catalog_api.delete_endpoint(context, endpoint_id)
|
|
||||||
|
@ -27,11 +27,11 @@ class CrudExtension(wsgi.ExtensionRouter):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def add_routes(self, mapper):
|
def add_routes(self, mapper):
|
||||||
tenant_controller = identity.TenantController()
|
tenant_controller = identity.controllers.Tenant()
|
||||||
user_controller = identity.UserController()
|
user_controller = identity.controllers.User()
|
||||||
role_controller = identity.RoleController()
|
role_controller = identity.controllers.Role()
|
||||||
service_controller = catalog.ServiceController()
|
service_controller = catalog.controllers.Service()
|
||||||
endpoint_controller = catalog.EndpointController()
|
endpoint_controller = catalog.controllers.Endpoint()
|
||||||
|
|
||||||
# Tenant Operations
|
# Tenant Operations
|
||||||
mapper.connect(
|
mapper.connect(
|
||||||
|
@ -20,9 +20,8 @@ import uuid
|
|||||||
from keystone import exception
|
from keystone import exception
|
||||||
from keystone.common import logging
|
from keystone.common import logging
|
||||||
from keystone.common import wsgi
|
from keystone.common import wsgi
|
||||||
from keystone.identity import Manager as IdentityManager
|
from keystone import identity
|
||||||
from keystone.identity import UserController as UserManager
|
from keystone import token
|
||||||
from keystone.token import Manager as TokenManager
|
|
||||||
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
@ -30,9 +29,9 @@ LOG = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class UserController(wsgi.Application):
|
class UserController(wsgi.Application):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.identity_api = IdentityManager()
|
self.identity_api = identity.Manager()
|
||||||
self.token_api = TokenManager()
|
self.token_api = token.Manager()
|
||||||
self.user_controller = UserManager()
|
self.user_controller = identity.controllers.User()
|
||||||
|
|
||||||
def set_user_password(self, context, user_id, user):
|
def set_user_password(self, context, user_id, user):
|
||||||
token_id = context.get('token_id')
|
token_id = context.get('token_id')
|
||||||
|
@ -15,5 +15,5 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from keystone.identity.core import *
|
from keystone.identity.core import *
|
||||||
from keystone.identity.controllers import *
|
from keystone.identity import controllers
|
||||||
from keystone.identity.routers import *
|
from keystone.identity import routers
|
||||||
|
@ -22,26 +22,22 @@ import uuid
|
|||||||
|
|
||||||
from keystone.common import controller
|
from keystone.common import controller
|
||||||
from keystone.common import logging
|
from keystone.common import logging
|
||||||
from keystone.common import manager
|
|
||||||
from keystone.common import wsgi
|
from keystone.common import wsgi
|
||||||
from keystone import config
|
|
||||||
from keystone import exception
|
from keystone import exception
|
||||||
|
from keystone.identity import core
|
||||||
from keystone import policy
|
from keystone import policy
|
||||||
from keystone import token
|
from keystone import token
|
||||||
from keystone.identity import core
|
|
||||||
|
|
||||||
|
|
||||||
CONF = config.CONF
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class TenantController(wsgi.Application):
|
class Tenant(wsgi.Application):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.identity_api = core.Manager()
|
self.identity_api = core.Manager()
|
||||||
self.policy_api = policy.Manager()
|
self.policy_api = policy.Manager()
|
||||||
self.token_api = token.Manager()
|
self.token_api = token.Manager()
|
||||||
super(TenantController, self).__init__()
|
super(Tenant, self).__init__()
|
||||||
|
|
||||||
def get_all_tenants(self, context, **kw):
|
def get_all_tenants(self, context, **kw):
|
||||||
"""Gets a list of all tenants for an admin user."""
|
"""Gets a list of all tenants for an admin user."""
|
||||||
@ -161,12 +157,12 @@ class TenantController(wsgi.Application):
|
|||||||
return o
|
return o
|
||||||
|
|
||||||
|
|
||||||
class UserController(wsgi.Application):
|
class User(wsgi.Application):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.identity_api = core.Manager()
|
self.identity_api = core.Manager()
|
||||||
self.policy_api = policy.Manager()
|
self.policy_api = policy.Manager()
|
||||||
self.token_api = token.Manager()
|
self.token_api = token.Manager()
|
||||||
super(UserController, self).__init__()
|
super(User, self).__init__()
|
||||||
|
|
||||||
def get_user(self, context, user_id):
|
def get_user(self, context, user_id):
|
||||||
self.assert_admin(context)
|
self.assert_admin(context)
|
||||||
@ -244,12 +240,12 @@ class UserController(wsgi.Application):
|
|||||||
return self.update_user(context, user_id, user)
|
return self.update_user(context, user_id, user)
|
||||||
|
|
||||||
|
|
||||||
class RoleController(wsgi.Application):
|
class Role(wsgi.Application):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.identity_api = core.Manager()
|
self.identity_api = core.Manager()
|
||||||
self.token_api = token.Manager()
|
self.token_api = token.Manager()
|
||||||
self.policy_api = policy.Manager()
|
self.policy_api = policy.Manager()
|
||||||
super(RoleController, self).__init__()
|
super(Role, self).__init__()
|
||||||
|
|
||||||
# COMPAT(essex-3)
|
# COMPAT(essex-3)
|
||||||
def get_user_roles(self, context, user_id, tenant_id=None):
|
def get_user_roles(self, context, user_id, tenant_id=None):
|
||||||
@ -413,7 +409,7 @@ class RoleController(wsgi.Application):
|
|||||||
self.token_api.revoke_tokens(context, user_id, tenant_id)
|
self.token_api.revoke_tokens(context, user_id, tenant_id)
|
||||||
|
|
||||||
|
|
||||||
class DomainControllerV3(controller.V3Controller):
|
class DomainV3(controller.V3Controller):
|
||||||
@controller.protected
|
@controller.protected
|
||||||
def create_domain(self, context, domain):
|
def create_domain(self, context, domain):
|
||||||
ref = self._assign_unique_id(self._normalize_dict(domain))
|
ref = self._assign_unique_id(self._normalize_dict(domain))
|
||||||
@ -442,7 +438,7 @@ class DomainControllerV3(controller.V3Controller):
|
|||||||
return self.identity_api.delete_domain(context, domain_id)
|
return self.identity_api.delete_domain(context, domain_id)
|
||||||
|
|
||||||
|
|
||||||
class ProjectControllerV3(controller.V3Controller):
|
class ProjectV3(controller.V3Controller):
|
||||||
@controller.protected
|
@controller.protected
|
||||||
def create_project(self, context, project):
|
def create_project(self, context, project):
|
||||||
ref = self._assign_unique_id(self._normalize_dict(project))
|
ref = self._assign_unique_id(self._normalize_dict(project))
|
||||||
@ -476,7 +472,7 @@ class ProjectControllerV3(controller.V3Controller):
|
|||||||
return self.identity_api.delete_project(context, project_id)
|
return self.identity_api.delete_project(context, project_id)
|
||||||
|
|
||||||
|
|
||||||
class UserControllerV3(controller.V3Controller):
|
class UserV3(controller.V3Controller):
|
||||||
@controller.protected
|
@controller.protected
|
||||||
def create_user(self, context, user):
|
def create_user(self, context, user):
|
||||||
ref = self._assign_unique_id(self._normalize_dict(user))
|
ref = self._assign_unique_id(self._normalize_dict(user))
|
||||||
@ -505,7 +501,7 @@ class UserControllerV3(controller.V3Controller):
|
|||||||
return self.identity_api.delete_user(context, user_id)
|
return self.identity_api.delete_user(context, user_id)
|
||||||
|
|
||||||
|
|
||||||
class CredentialControllerV3(controller.V3Controller):
|
class CredentialV3(controller.V3Controller):
|
||||||
@controller.protected
|
@controller.protected
|
||||||
def create_credential(self, context, credential):
|
def create_credential(self, context, credential):
|
||||||
ref = self._assign_unique_id(self._normalize_dict(credential))
|
ref = self._assign_unique_id(self._normalize_dict(credential))
|
||||||
@ -537,7 +533,7 @@ class CredentialControllerV3(controller.V3Controller):
|
|||||||
return self.identity_api.delete_credential(context, credential_id)
|
return self.identity_api.delete_credential(context, credential_id)
|
||||||
|
|
||||||
|
|
||||||
class RoleControllerV3(controller.V3Controller):
|
class RoleV3(controller.V3Controller):
|
||||||
@controller.protected
|
@controller.protected
|
||||||
def create_role(self, context, role):
|
def create_role(self, context, role):
|
||||||
ref = self._assign_unique_id(self._normalize_dict(role))
|
ref = self._assign_unique_id(self._normalize_dict(role))
|
||||||
|
@ -16,34 +16,23 @@
|
|||||||
|
|
||||||
"""WSGI Routers for the Identity service."""
|
"""WSGI Routers for the Identity service."""
|
||||||
|
|
||||||
import urllib
|
|
||||||
import urlparse
|
|
||||||
import uuid
|
|
||||||
|
|
||||||
from keystone.common import controller
|
|
||||||
from keystone.common import logging
|
|
||||||
from keystone.common import manager
|
|
||||||
from keystone.common import wsgi
|
from keystone.common import wsgi
|
||||||
from keystone import config
|
from keystone.identity import controllers
|
||||||
from keystone import exception
|
|
||||||
from keystone import policy
|
|
||||||
from keystone import token
|
|
||||||
from keystone.identity import core, controllers
|
|
||||||
|
|
||||||
|
|
||||||
class PublicRouter(wsgi.ComposableRouter):
|
class Public(wsgi.ComposableRouter):
|
||||||
def add_routes(self, mapper):
|
def add_routes(self, mapper):
|
||||||
tenant_controller = controllers.TenantController()
|
tenant_controller = controllers.Tenant()
|
||||||
mapper.connect('/tenants',
|
mapper.connect('/tenants',
|
||||||
controller=tenant_controller,
|
controller=tenant_controller,
|
||||||
action='get_tenants_for_token',
|
action='get_tenants_for_token',
|
||||||
conditions=dict(method=['GET']))
|
conditions=dict(method=['GET']))
|
||||||
|
|
||||||
|
|
||||||
class AdminRouter(wsgi.ComposableRouter):
|
class Admin(wsgi.ComposableRouter):
|
||||||
def add_routes(self, mapper):
|
def add_routes(self, mapper):
|
||||||
# Tenant Operations
|
# Tenant Operations
|
||||||
tenant_controller = controllers.TenantController()
|
tenant_controller = controllers.Tenant()
|
||||||
mapper.connect('/tenants',
|
mapper.connect('/tenants',
|
||||||
controller=tenant_controller,
|
controller=tenant_controller,
|
||||||
action='get_all_tenants',
|
action='get_all_tenants',
|
||||||
@ -54,14 +43,14 @@ class AdminRouter(wsgi.ComposableRouter):
|
|||||||
conditions=dict(method=['GET']))
|
conditions=dict(method=['GET']))
|
||||||
|
|
||||||
# User Operations
|
# User Operations
|
||||||
user_controller = controllers.UserController()
|
user_controller = controllers.User()
|
||||||
mapper.connect('/users/{user_id}',
|
mapper.connect('/users/{user_id}',
|
||||||
controller=user_controller,
|
controller=user_controller,
|
||||||
action='get_user',
|
action='get_user',
|
||||||
conditions=dict(method=['GET']))
|
conditions=dict(method=['GET']))
|
||||||
|
|
||||||
# Role Operations
|
# Role Operations
|
||||||
roles_controller = controllers.RoleController()
|
roles_controller = controllers.Role()
|
||||||
mapper.connect('/tenants/{tenant_id}/users/{user_id}/roles',
|
mapper.connect('/tenants/{tenant_id}/users/{user_id}/roles',
|
||||||
controller=roles_controller,
|
controller=roles_controller,
|
||||||
action='get_user_roles',
|
action='get_user_roles',
|
||||||
|
@ -15,3 +15,4 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from keystone.policy.core import *
|
from keystone.policy.core import *
|
||||||
|
from keystone.policy import controllers
|
||||||
|
48
keystone/policy/controllers.py
Normal file
48
keystone/policy/controllers.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||||
|
|
||||||
|
# Copyright 2012 OpenStack LLC
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
from keystone.common import controller
|
||||||
|
|
||||||
|
|
||||||
|
class PolicyV3(controller.V3Controller):
|
||||||
|
@controller.protected
|
||||||
|
def create_policy(self, context, policy):
|
||||||
|
ref = self._assign_unique_id(self._normalize_dict(policy))
|
||||||
|
self._require_attribute(ref, 'blob')
|
||||||
|
self._require_attribute(ref, 'type')
|
||||||
|
|
||||||
|
ref = self.policy_api.create_policy(context, ref['id'], ref)
|
||||||
|
return {'policy': ref}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def list_policies(self, context):
|
||||||
|
refs = self.policy_api.list_policies(context)
|
||||||
|
refs = self._filter_by_attribute(context, refs, 'type')
|
||||||
|
return {'policies': self._paginate(context, refs)}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def get_policy(self, context, policy_id):
|
||||||
|
ref = self.policy_api.get_policy(context, policy_id)
|
||||||
|
return {'policy': ref}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def update_policy(self, context, policy_id, policy):
|
||||||
|
ref = self.policy_api.update_policy(context, policy_id, policy)
|
||||||
|
return {'policy': ref}
|
||||||
|
|
||||||
|
@controller.protected
|
||||||
|
def delete_policy(self, context, policy_id):
|
||||||
|
return self.policy_api.delete_policy(context, policy_id)
|
@ -18,7 +18,6 @@
|
|||||||
|
|
||||||
|
|
||||||
from keystone.common import manager
|
from keystone.common import manager
|
||||||
from keystone.common import controller
|
|
||||||
from keystone import config
|
from keystone import config
|
||||||
from keystone import exception
|
from keystone import exception
|
||||||
|
|
||||||
@ -102,34 +101,3 @@ class Driver(object):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
raise exception.NotImplemented()
|
raise exception.NotImplemented()
|
||||||
|
|
||||||
|
|
||||||
class PolicyControllerV3(controller.V3Controller):
|
|
||||||
@controller.protected
|
|
||||||
def create_policy(self, context, policy):
|
|
||||||
ref = self._assign_unique_id(self._normalize_dict(policy))
|
|
||||||
self._require_attribute(ref, 'blob')
|
|
||||||
self._require_attribute(ref, 'type')
|
|
||||||
|
|
||||||
ref = self.policy_api.create_policy(context, ref['id'], ref)
|
|
||||||
return {'policy': ref}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def list_policies(self, context):
|
|
||||||
refs = self.policy_api.list_policies(context)
|
|
||||||
refs = self._filter_by_attribute(context, refs, 'type')
|
|
||||||
return {'policies': self._paginate(context, refs)}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def get_policy(self, context, policy_id):
|
|
||||||
ref = self.policy_api.get_policy(context, policy_id)
|
|
||||||
return {'policy': ref}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def update_policy(self, context, policy_id, policy):
|
|
||||||
ref = self.policy_api.update_policy(context, policy_id, policy)
|
|
||||||
return {'policy': ref}
|
|
||||||
|
|
||||||
@controller.protected
|
|
||||||
def delete_policy(self, context, policy_id):
|
|
||||||
return self.policy_api.delete_policy(context, policy_id)
|
|
||||||
|
@ -80,13 +80,13 @@ class V3Router(wsgi.ComposingRouter):
|
|||||||
|
|
||||||
self.crud_routes(
|
self.crud_routes(
|
||||||
mapper,
|
mapper,
|
||||||
catalog.ServiceControllerV3(**apis),
|
catalog.controllers.ServiceV3(**apis),
|
||||||
'services',
|
'services',
|
||||||
'service')
|
'service')
|
||||||
|
|
||||||
self.crud_routes(
|
self.crud_routes(
|
||||||
mapper,
|
mapper,
|
||||||
catalog.EndpointControllerV3(**apis),
|
catalog.controllers.EndpointV3(**apis),
|
||||||
'endpoints',
|
'endpoints',
|
||||||
'endpoint')
|
'endpoint')
|
||||||
|
|
||||||
@ -94,11 +94,11 @@ class V3Router(wsgi.ComposingRouter):
|
|||||||
|
|
||||||
self.crud_routes(
|
self.crud_routes(
|
||||||
mapper,
|
mapper,
|
||||||
identity.DomainControllerV3(**apis),
|
identity.controllers.DomainV3(**apis),
|
||||||
'domains',
|
'domains',
|
||||||
'domain')
|
'domain')
|
||||||
|
|
||||||
project_controller = identity.ProjectControllerV3(**apis)
|
project_controller = identity.controllers.ProjectV3(**apis)
|
||||||
self.crud_routes(
|
self.crud_routes(
|
||||||
mapper,
|
mapper,
|
||||||
project_controller,
|
project_controller,
|
||||||
@ -112,17 +112,17 @@ class V3Router(wsgi.ComposingRouter):
|
|||||||
|
|
||||||
self.crud_routes(
|
self.crud_routes(
|
||||||
mapper,
|
mapper,
|
||||||
identity.UserControllerV3(**apis),
|
identity.controllers.UserV3(**apis),
|
||||||
'users',
|
'users',
|
||||||
'user')
|
'user')
|
||||||
|
|
||||||
self.crud_routes(
|
self.crud_routes(
|
||||||
mapper,
|
mapper,
|
||||||
identity.CredentialControllerV3(**apis),
|
identity.controllers.CredentialV3(**apis),
|
||||||
'credentials',
|
'credentials',
|
||||||
'credential')
|
'credential')
|
||||||
|
|
||||||
role_controller = identity.RoleControllerV3(**apis)
|
role_controller = identity.controllers.RoleV3(**apis)
|
||||||
self.crud_routes(
|
self.crud_routes(
|
||||||
mapper,
|
mapper,
|
||||||
role_controller,
|
role_controller,
|
||||||
@ -171,7 +171,7 @@ class V3Router(wsgi.ComposingRouter):
|
|||||||
|
|
||||||
# Policy
|
# Policy
|
||||||
|
|
||||||
policy_controller = policy.PolicyControllerV3(**apis)
|
policy_controller = policy.controllers.PolicyV3(**apis)
|
||||||
self.crud_routes(
|
self.crud_routes(
|
||||||
mapper,
|
mapper,
|
||||||
policy_controller,
|
policy_controller,
|
||||||
@ -260,7 +260,7 @@ class AdminRouter(wsgi.ComposingRouter):
|
|||||||
controller=extensions_controller,
|
controller=extensions_controller,
|
||||||
action='get_extension_info',
|
action='get_extension_info',
|
||||||
conditions=dict(method=['GET']))
|
conditions=dict(method=['GET']))
|
||||||
identity_router = identity.AdminRouter()
|
identity_router = identity.routers.Admin()
|
||||||
routers = [identity_router]
|
routers = [identity_router]
|
||||||
super(AdminRouter, self).__init__(mapper, routers)
|
super(AdminRouter, self).__init__(mapper, routers)
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ class PublicRouter(wsgi.ComposingRouter):
|
|||||||
action='get_extension_info',
|
action='get_extension_info',
|
||||||
conditions=dict(method=['GET']))
|
conditions=dict(method=['GET']))
|
||||||
|
|
||||||
identity_router = identity.PublicRouter()
|
identity_router = identity.routers.Public()
|
||||||
routers = [identity_router]
|
routers = [identity_router]
|
||||||
|
|
||||||
super(PublicRouter, self).__init__(mapper, routers)
|
super(PublicRouter, self).__init__(mapper, routers)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user