Merge "Converting accounts resource to admin extension"

This commit is contained in:
Jenkins
2011-12-26 22:33:26 +00:00
committed by Gerrit Code Review
4 changed files with 25 additions and 16 deletions
-5
View File
@@ -24,7 +24,6 @@ import routes
import webob.dec
import webob.exc
from nova.api.openstack.v2 import accounts
from nova.api.openstack.v2 import consoles
from nova.api.openstack.v2 import extensions
from nova.api.openstack.v2 import flavors
@@ -139,10 +138,6 @@ class APIRouter(base_wsgi.Router):
controller=users.create_resource(),
collection={'detail': 'GET'})
mapper.resource("account", "accounts",
controller=accounts.create_resource(),
collection={'detail': 'GET'})
mapper.resource("zone", "zones",
controller=zones.create_resource(),
collection={'detail': 'GET',
@@ -15,6 +15,7 @@
import webob.exc
from nova.api.openstack.v2 import extensions
from nova.api.openstack import wsgi
from nova.api.openstack import xmlutil
from nova.auth import manager
@@ -24,7 +25,7 @@ from nova import log as logging
FLAGS = flags.FLAGS
LOG = logging.getLogger('nova.api.openstack.v2.accounts')
LOG = logging.getLogger('nova.api.openstack.v2.contrib.accounts')
def _translate_keys(account):
@@ -48,9 +49,6 @@ class Controller(object):
def index(self, req):
raise webob.exc.HTTPNotImplemented()
def detail(self, req):
raise webob.exc.HTTPNotImplemented()
def show(self, req, id):
"""Return data about the given account id"""
account = self.manager.get_project(id)
@@ -95,9 +93,24 @@ class AccountXMLSerializer(xmlutil.XMLTemplateSerializer):
return AccountTemplate()
def create_resource():
body_serializers = {
'application/xml': AccountXMLSerializer(),
}
serializer = wsgi.ResponseSerializer(body_serializers)
return wsgi.Resource(Controller(), serializer=serializer)
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"
admin_only = True
def get_resources(self):
body_serializers = {
'application/xml': AccountXMLSerializer(),
}
serializer = wsgi.ResponseSerializer(body_serializers)
#TODO(bcwaldon): This should be prefixed with 'os-'
res = extensions.ResourceExtension('accounts',
Controller(),
serializer=serializer)
return [res]
@@ -20,7 +20,7 @@ from lxml import etree
import webob
from nova import test
from nova.api.openstack.v2 import accounts
from nova.api.openstack.v2.contrib import accounts
from nova.auth.manager import User
from nova.tests.api.openstack import fakes
@@ -98,6 +98,7 @@ class ExtensionControllerTest(ExtensionTestCase):
super(ExtensionControllerTest, self).setUp()
self.flags(allow_admin_api=True)
self.ext_list = [
"Accounts",
"AdminActions",
"Console_output",
"Createserverext",