Skip to content

Commit

Permalink
Add standard methods to the Limits API
Browse files Browse the repository at this point in the history
- Added create, delete, detail, show, and update
  stubs to the Limits API
- Added unit test cases
Fixes bug 869877

Change-Id: I112a8016ff2cf83009b3bcfe2fe6307568ce7334
  • Loading branch information
Giampaolo Lauria committed Mar 15, 2013
1 parent 0ca55dc commit f5212a5
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 6 deletions.
28 changes: 22 additions & 6 deletions nova/api/openstack/compute/limits.py
Expand Up @@ -75,15 +75,11 @@ def construct(self):


class LimitsController(object):
"""
Controller for accessing limits in the OpenStack API.
"""
"""Controller for accessing limits in the OpenStack API."""

@wsgi.serializers(xml=LimitsTemplate)
def index(self, req):
"""
Return all global and rate limit information.
"""
"""Return all global and rate limit information."""
context = req.environ['nova.context']
quotas = QUOTAS.get_project_quotas(context, context.project_id,
usages=False)
Expand All @@ -93,6 +89,26 @@ def index(self, req):
builder = self._get_view_builder(req)
return builder.build(rate_limits, abs_limits)

def create(self, req, body):
"""Create a new limit."""
raise webob.exc.HTTPNotImplemented()

def delete(self, req, id):
"""Delete the limit."""
raise webob.exc.HTTPNotImplemented()

def detail(self, req):
"""Return limit details."""
raise webob.exc.HTTPNotImplemented()

def show(self, req, id):
"""Show limit information."""
raise webob.exc.HTTPNotImplemented()

def update(self, req, id, body):
"""Update existing limit."""
raise webob.exc.HTTPNotImplemented()

def _get_view_builder(self, req):
return limits_views.ViewBuilder()

Expand Down
27 changes: 27 additions & 0 deletions nova/tests/api/openstack/compute/test_limits.py
Expand Up @@ -30,6 +30,7 @@
import nova.context
from nova.openstack.common import jsonutils
from nova import test
from nova.tests.api.openstack import fakes
from nova.tests import matchers


Expand Down Expand Up @@ -76,6 +77,7 @@ def setUp(self):
"""Run before each test."""
super(LimitsControllerTest, self).setUp()
self.controller = limits.create_resource()
self.ctrler = limits.LimitsController()

def _get_index_request(self, accept_header="application/json"):
"""Helper to set routing arguments."""
Expand Down Expand Up @@ -284,6 +286,31 @@ def test_index_absolute_security_groups(self):
}
self._test_index_absolute_limits_json(expected)

def test_limit_create(self):
req = fakes.HTTPRequest.blank('/v2/fake/limits')
self.assertRaises(webob.exc.HTTPNotImplemented, self.ctrler.create,
req, {})

def test_limit_delete(self):
req = fakes.HTTPRequest.blank('/v2/fake/limits')
self.assertRaises(webob.exc.HTTPNotImplemented, self.ctrler.delete,
req, 1)

def test_limit_detail(self):
req = fakes.HTTPRequest.blank('/v2/fake/limits')
self.assertRaises(webob.exc.HTTPNotImplemented, self.ctrler.detail,
req)

def test_limit_show(self):
req = fakes.HTTPRequest.blank('/v2/fake/limits')
self.assertRaises(webob.exc.HTTPNotImplemented, self.ctrler.show,
req, 1)

def test_limit_update(self):
req = fakes.HTTPRequest.blank('/v2/fake/limits')
self.assertRaises(webob.exc.HTTPNotImplemented, self.ctrler.update,
req, 1, {})


class TestLimiter(limits.Limiter):
pass
Expand Down

0 comments on commit f5212a5

Please sign in to comment.