summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorBrian Waldon <bcwaldon@gmail.com>2012-07-09 21:32:37 -0700
committerBrian Waldon <bcwaldon@gmail.com>2012-07-09 23:12:12 -0700
commitb4e86b47b97fde6f4d39c7545194eddada59262a (patch)
tree9354396dbac7b4d6b8bab4c0bce1cf2dacecee1b /nova/api
parentec3bcae984468b162ad40c208a81bf2b77d8b942 (diff)
downloadnova-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.py100
-rw-r--r--nova/api/openstack/compute/contrib/users.py141
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]