Merge "Converting accounts resource to admin extension"
This commit is contained in:
@@ -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]
|
||||
+1
-1
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user