diff options
| author | Brian Waldon <bcwaldon@gmail.com> | 2012-07-09 21:32:37 -0700 |
|---|---|---|
| committer | Brian Waldon <bcwaldon@gmail.com> | 2012-07-09 23:12:12 -0700 |
| commit | b4e86b47b97fde6f4d39c7545194eddada59262a (patch) | |
| tree | 9354396dbac7b4d6b8bab4c0bce1cf2dacecee1b /nova/api | |
| parent | ec3bcae984468b162ad40c208a81bf2b77d8b942 (diff) | |
| download | nova-b4e86b47b97fde6f4d39c7545194eddada59262a.tar.gz nova-b4e86b47b97fde6f4d39c7545194eddada59262a.tar.xz nova-b4e86b47b97fde6f4d39c7545194eddada59262a.zip | |
Remove deprecated auth-related api extensions
* Delete the accounts and users extensions
* Delete associated tests
* Related to bp remove-deprecated-auth
Change-Id: I429551dbb39ec569c6d2c229fa0c3cafd9e56f11
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/compute/contrib/accounts.py | 100 | ||||
| -rw-r--r-- | nova/api/openstack/compute/contrib/users.py | 141 |
2 files changed, 0 insertions, 241 deletions
diff --git a/nova/api/openstack/compute/contrib/accounts.py b/nova/api/openstack/compute/contrib/accounts.py deleted file mode 100644 index e407015c2..000000000 --- a/nova/api/openstack/compute/contrib/accounts.py +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright 2011 OpenStack LLC. -# All Rights Reserved. -# -# 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 webob.exc - -from nova.api.openstack import extensions -from nova.api.openstack import wsgi -from nova.api.openstack import xmlutil -from nova.auth import manager -from nova import exception -from nova import flags -from nova.openstack.common import log as logging - - -FLAGS = flags.FLAGS -LOG = logging.getLogger(__name__) -authorize = extensions.extension_authorizer('compute', 'accounts') - - -class AccountTemplate(xmlutil.TemplateBuilder): - def construct(self): - root = xmlutil.TemplateElement('account', selector='account') - root.set('id', 'id') - root.set('name', 'name') - root.set('description', 'description') - root.set('manager', 'manager') - - return xmlutil.MasterTemplate(root, 1) - - -def _translate_keys(account): - return dict(id=account.id, - name=account.name, - description=account.description, - manager=account.project_manager_id) - - -class Controller(object): - - def __init__(self): - self.manager = manager.AuthManager() - - def index(self, req): - raise webob.exc.HTTPNotImplemented() - - @wsgi.serializers(xml=AccountTemplate) - def show(self, req, id): - """Return data about the given account id""" - authorize(req.environ['nova.context']) - account = self.manager.get_project(id) - return dict(account=_translate_keys(account)) - - def delete(self, req, id): - authorize(req.environ['nova.context']) - self.manager.delete_project(id) - return {} - - def create(self, req, body): - """We use update with create-or-update semantics - because the id comes from an external source""" - raise webob.exc.HTTPNotImplemented() - - @wsgi.serializers(xml=AccountTemplate) - def update(self, req, id, body): - """This is really create or update.""" - authorize(req.environ['nova.context']) - description = body['account'].get('description') - manager = body['account'].get('manager') - try: - account = self.manager.get_project(id) - self.manager.modify_project(id, manager, description) - except exception.NotFound: - account = self.manager.create_project(id, manager, description) - return dict(account=_translate_keys(account)) - - -class Accounts(extensions.ExtensionDescriptor): - """Admin-only access to accounts""" - - name = "Accounts" - alias = "os-accounts" - namespace = "http://docs.openstack.org/compute/ext/accounts/api/v1.1" - updated = "2011-12-23T00:00:00+00:00" - - def get_resources(self): - #TODO(bcwaldon): This should be prefixed with 'os-' - res = extensions.ResourceExtension('accounts', Controller()) - return [res] diff --git a/nova/api/openstack/compute/contrib/users.py b/nova/api/openstack/compute/contrib/users.py deleted file mode 100644 index 12013f014..000000000 --- a/nova/api/openstack/compute/contrib/users.py +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright 2011 OpenStack LLC. -# All Rights Reserved. -# -# 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 webob import exc - -from nova.api.openstack import common -from nova.api.openstack import extensions -from nova.api.openstack import wsgi -from nova.api.openstack import xmlutil -from nova.auth import manager -from nova import exception -from nova import flags -from nova.openstack.common import log as logging - - -FLAGS = flags.FLAGS -LOG = logging.getLogger(__name__) -authorize = extensions.extension_authorizer('compute', 'users') - - -def make_user(elem): - elem.set('id') - elem.set('name') - elem.set('access') - elem.set('secret') - elem.set('admin') - - -class UserTemplate(xmlutil.TemplateBuilder): - def construct(self): - root = xmlutil.TemplateElement('user', selector='user') - make_user(root) - return xmlutil.MasterTemplate(root, 1) - - -class UsersTemplate(xmlutil.TemplateBuilder): - def construct(self): - root = xmlutil.TemplateElement('users') - elem = xmlutil.SubTemplateElement(root, 'user', selector='users') - make_user(elem) - return xmlutil.MasterTemplate(root, 1) - - -def _translate_keys(user): - return dict(id=user.id, - name=user.name, - access=user.access, - secret=user.secret, - admin=user.admin) - - -class Controller(object): - - def __init__(self): - self.manager = manager.AuthManager() - - @wsgi.serializers(xml=UsersTemplate) - def index(self, req): - """Return all users in brief""" - authorize(req.environ['nova.context']) - users = self.manager.get_users() - users = common.limited(users, req) - users = [_translate_keys(user) for user in users] - return dict(users=users) - - @wsgi.serializers(xml=UsersTemplate) - def detail(self, req): - """Return all users in detail""" - return self.index(req) - - @wsgi.serializers(xml=UserTemplate) - def show(self, req, id): - """Return data about the given user id""" - authorize(req.environ['nova.context']) - - #NOTE(justinsb): The drivers are a little inconsistent in how they - # deal with "NotFound" - some throw, some return None. - try: - user = self.manager.get_user(id) - except exception.NotFound: - user = None - - if user is None: - raise exc.HTTPNotFound() - - return dict(user=_translate_keys(user)) - - def delete(self, req, id): - authorize(req.environ['nova.context']) - self.manager.delete_user(id) - return {} - - @wsgi.serializers(xml=UserTemplate) - def create(self, req, body): - authorize(req.environ['nova.context']) - is_admin = body['user'].get('admin') in ('T', 'True', True) - name = body['user'].get('name') - access = body['user'].get('access') - secret = body['user'].get('secret') - user = self.manager.create_user(name, access, secret, is_admin) - return dict(user=_translate_keys(user)) - - @wsgi.serializers(xml=UserTemplate) - def update(self, req, id, body): - authorize(req.environ['nova.context']) - is_admin = body['user'].get('admin') - if is_admin is not None: - is_admin = is_admin in ('T', 'True', True) - access = body['user'].get('access') - secret = body['user'].get('secret') - self.manager.modify_user(id, access, secret, is_admin) - return dict(user=_translate_keys(self.manager.get_user(id))) - - -class Users(extensions.ExtensionDescriptor): - """Allow admins to acces user information""" - - name = "Users" - alias = "os-users" - namespace = "http://docs.openstack.org/compute/ext/users/api/v1.1" - updated = "2011-08-08T00:00:00+00:00" - - def get_resources(self): - coll_actions = {'detail': 'GET'} - res = extensions.ResourceExtension('users', - Controller(), - collection_actions=coll_actions) - - return [res] |
