summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorMatthew Hooker <matt@cloudscaling.com>2011-08-03 14:30:45 -0400
committerMatthew Hooker <matt@cloudscaling.com>2011-08-03 14:30:45 -0400
commit91e16e057f083d1a0b8dffaa00b5979c12c23edc (patch)
tree39c28376d85ad68d3ec7488867dfaf611816a6d1 /nova/api
parent916e0ce0997bdf3135684865eff6fadcda95752b (diff)
downloadnova-91e16e057f083d1a0b8dffaa00b5979c12c23edc.tar.gz
nova-91e16e057f083d1a0b8dffaa00b5979c12c23edc.tar.xz
nova-91e16e057f083d1a0b8dffaa00b5979c12c23edc.zip
fix potential runtime exception
The exception could occur if a client were to create an APIRouter object. The fix relies on more established OOP patterns.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/__init__.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/nova/api/openstack/__init__.py b/nova/api/openstack/__init__.py
index 868b98a31..8d7f7a405 100644
--- a/nova/api/openstack/__init__.py
+++ b/nova/api/openstack/__init__.py
@@ -81,7 +81,10 @@ class APIRouter(base_wsgi.Router):
self._setup_routes(mapper)
super(APIRouter, self).__init__(mapper)
- def _setup_routes(self, mapper, version):
+ def _setup_routes(self, mapper):
+ raise NotImplementedError("you must implement _setup_routes")
+
+ def _setup_base_routes(self, mapper, version):
"""Routes common to all versions."""
server_members = self.server_members
@@ -147,7 +150,7 @@ class APIRouterV10(APIRouter):
"""Define routes specific to OpenStack API V1.0."""
def _setup_routes(self, mapper):
- super(APIRouterV10, self)._setup_routes(mapper, '1.0')
+ self._setup_base_routes(mapper, '1.0')
mapper.resource("shared_ip_group", "shared_ip_groups",
collection={'detail': 'GET'},
@@ -163,7 +166,7 @@ class APIRouterV11(APIRouter):
"""Define routes specific to OpenStack API V1.1."""
def _setup_routes(self, mapper):
- super(APIRouterV11, self)._setup_routes(mapper, '1.1')
+ self._setup_base_routes(mapper, '1.1')
image_metadata_controller = image_metadata.create_resource()
mapper.resource("image_meta", "metadata",
controller=image_metadata_controller,