summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/rackspace/base.py24
-rw-r--r--nova/api/rackspace/flavors.py3
-rw-r--r--nova/api/rackspace/images.py3
-rw-r--r--nova/api/rackspace/servers.py29
-rw-r--r--nova/api/rackspace/sharedipgroups.py4
5 files changed, 23 insertions, 40 deletions
diff --git a/nova/api/rackspace/base.py b/nova/api/rackspace/base.py
deleted file mode 100644
index 5e5bd6f54..000000000
--- a/nova/api/rackspace/base.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright 2010 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 nova import wsgi
-
-
-class Controller(wsgi.Controller):
- """TODO(eday): Base controller for all rackspace controllers. What is this
- for? Is this just Rackspace specific? """
- pass
diff --git a/nova/api/rackspace/flavors.py b/nova/api/rackspace/flavors.py
index 60b35c939..024011a71 100644
--- a/nova/api/rackspace/flavors.py
+++ b/nova/api/rackspace/flavors.py
@@ -17,9 +17,10 @@
from nova.api.rackspace import base
from nova.compute import instance_types
+from nova import wsgi
from webob import exc
-class Controller(base.Controller):
+class Controller(wsgi.Controller):
"""Flavor controller for the Rackspace API."""
_serialization_metadata = {
diff --git a/nova/api/rackspace/images.py b/nova/api/rackspace/images.py
index 2f3e928b9..9aaec52e2 100644
--- a/nova/api/rackspace/images.py
+++ b/nova/api/rackspace/images.py
@@ -16,11 +16,12 @@
# under the License.
import nova.image.service
+from nova import wsgi
from nova.api.rackspace import base
from nova.api.rackspace import _id_translator
from webob import exc
-class Controller(base.Controller):
+class Controller(wsgi.Controller):
_serialization_metadata = {
'application/xml': {
diff --git a/nova/api/rackspace/servers.py b/nova/api/rackspace/servers.py
index 9243f3ae6..d94295861 100644
--- a/nova/api/rackspace/servers.py
+++ b/nova/api/rackspace/servers.py
@@ -21,16 +21,14 @@ from nova import flags
from nova import rpc
from nova import utils
from nova import compute
+from nova import flags
from nova.api.rackspace import base
from nova.api.rackspace import _id_translator
from webob import exc
-from nova import flags
FLAGS = flags.FLAGS
-class ServersContext(object): pass
-
-class Controller(base.Controller):
+class Controller(wsgi.Controller):
_serialization_metadata = {
'application/xml': {
"plurals": "servers",
@@ -43,27 +41,30 @@ class Controller(base.Controller):
}
def __init__(self, db_driver=None):
- self.context = ServersContext()
if not db_driver:
db_driver = FLAGS.db_driver
self.db = utils.import_object(db_driver)
def index(self, req):
unfiltered = [ 'id', 'name']
- instance_list = self.instance_get_all(self.context)
- return [_entity_inst(inst, unfiltered) for inst in instance_list]
+ instance_list = self.db.instance_get_all(None)
+ res = [self._entity_inst(inst, unfiltered) for inst in \
+ instance_list]
+ return self._entity_list(res)
def detail(self, req):
- return [_entity_inst(inst) for inst in instdir.all]
+ res = [self._entity_inst(inst) for inst in \
+ self.db.instance_get_all(None)]
+ return self._entity_list(res)
def show(self, req, id):
- inst = self.instdir.get(id)
+ inst = self.db.instance_get(None, id)
if inst:
- return _entity_inst(inst)
+ return self._entity_inst(inst)
raise exc.HTTPNotFound()
def delete(self, req, id):
- instance = self.instdir.get(id)
+ instance = self.db.instance_get(None, id)
if not instance:
return exc.HTTPNotFound()
@@ -79,7 +80,7 @@ class Controller(base.Controller):
return _entity_inst(inst)
def update(self, req, id):
- instance = self.instdir.get(instance_id)
+ instance = self.db.instance_get(None, id)
if not instance:
return exc.HTTPNotFound()
instance.update(kwargs['server'])
@@ -107,7 +108,6 @@ class Controller(base.Controller):
inst['launch_time'] = ltime
inst['mac_address'] = utils.generate_mac()
- # TODO(dietz) Do we need any of these?
inst['project_id'] = env['project']['id']
inst['reservation_id'] = reservation
reservation = utils.generate_uid('r')
@@ -125,6 +125,9 @@ class Controller(base.Controller):
inst.save()
return _entity_inst(inst)
+ def _entity_list(self, entities):
+ return dict(servers=entities)
+
def _entity_inst(self, inst, allowed_keys=None):
""" Maps everything to Rackspace-like attributes for return"""
diff --git a/nova/api/rackspace/sharedipgroups.py b/nova/api/rackspace/sharedipgroups.py
index 986f11434..4d2d0ede1 100644
--- a/nova/api/rackspace/sharedipgroups.py
+++ b/nova/api/rackspace/sharedipgroups.py
@@ -15,4 +15,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-class Controller(object): pass
+from nova import wsgi
+
+class Controller(wsgi.Controller): pass