~ubuntu-branches/ubuntu/saucy/nova/saucy-proposed

« back to all changes in this revision

Viewing changes to nova/api/openstack/v2/limits.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Chuck Short, Adam Gandleman
  • Date: 2012-01-13 09:51:10 UTC
  • mfrom: (1.1.40)
  • Revision ID: package-import@ubuntu.com-20120113095110-ffd6163drcg77wez
Tags: 2012.1~e3~20120113.12049-0ubuntu1
[Chuck Short]
* New upstream version.
* debian/nova_sudoers, debian/nova-common.install, 
  Switch out to nova-rootwrap. (LP: #681774)
* Add "get-origsource-git" which allows developers to 
  generate a tarball from github, by doing:
  fakeroot debian/rules get-orig-source-git
* debian/debian/nova-objectstore.logrotate: Dont determine
  if we are running Debian or Ubuntu. (LP: #91379)

[Adam Gandleman]
* Removed python-nova.postinst, let dh_python2 generate instead since
  python-support is not a dependency. (LP: #907543)

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
import math
25
25
import re
26
26
import time
27
 
import urllib
28
27
 
29
 
from lxml import etree
30
28
from webob.dec import wsgify
31
29
import webob.exc
32
30
 
33
 
from nova.api.openstack import common
34
31
from nova.api.openstack.v2.views import limits as limits_views
35
32
from nova.api.openstack import wsgi
36
33
from nova.api.openstack import xmlutil
46
43
PER_DAY = 60 * 60 * 24
47
44
 
48
45
 
49
 
class LimitsController(object):
50
 
    """
51
 
    Controller for accessing limits in the OpenStack API.
52
 
    """
53
 
 
54
 
    def index(self, req):
55
 
        """
56
 
        Return all global and rate limit information.
57
 
        """
58
 
        context = req.environ['nova.context']
59
 
        abs_limits = quota.get_project_quotas(context, context.project_id)
60
 
        rate_limits = req.environ.get("nova.limits", [])
61
 
 
62
 
        builder = self._get_view_builder(req)
63
 
        return builder.build(rate_limits, abs_limits)
64
 
 
65
 
    def _get_view_builder(self, req):
66
 
        return limits_views.ViewBuilder()
67
 
 
68
 
 
69
46
limits_nsmap = {None: xmlutil.XMLNS_V11, 'atom': xmlutil.XMLNS_ATOM}
70
47
 
71
48
 
94
71
        return xmlutil.MasterTemplate(root, 1, nsmap=limits_nsmap)
95
72
 
96
73
 
97
 
class LimitsXMLSerializer(xmlutil.XMLTemplateSerializer):
98
 
    def index(self):
99
 
        return LimitsTemplate()
 
74
class LimitsController(object):
 
75
    """
 
76
    Controller for accessing limits in the OpenStack API.
 
77
    """
 
78
 
 
79
    @wsgi.serializers(xml=LimitsTemplate)
 
80
    def index(self, req):
 
81
        """
 
82
        Return all global and rate limit information.
 
83
        """
 
84
        context = req.environ['nova.context']
 
85
        abs_limits = quota.get_project_quotas(context, context.project_id)
 
86
        rate_limits = req.environ.get("nova.limits", [])
 
87
 
 
88
        builder = self._get_view_builder(req)
 
89
        return builder.build(rate_limits, abs_limits)
 
90
 
 
91
    def _get_view_builder(self, req):
 
92
        return limits_views.ViewBuilder()
100
93
 
101
94
 
102
95
def create_resource():
103
 
    body_serializers = {'application/xml': LimitsXMLSerializer()}
104
 
    serializer = wsgi.ResponseSerializer(body_serializers)
105
 
    return wsgi.Resource(LimitsController(), serializer=serializer)
 
96
    return wsgi.Resource(LimitsController())
106
97
 
107
98
 
108
99
class Limit(object):