Ejemplo n.º 1
0
 def _populate_limits_diff_regex(self, request):
     """Put limit info into a request."""
     _limits = [
         limits.Limit("GET", "*", ".*", 10, 60).display(),
         limits.Limit("GET", "*", "*.*", 10, 60).display(),
     ]
     request.environ["nova.limits"] = _limits
     return request
Ejemplo n.º 2
0
 def _populate_limits(self, request):
     """Put limit info into a request."""
     _limits = [
         limits.Limit("GET", "*", ".*", 10, 60).display(),
         limits.Limit("POST", "*", ".*", 5, 60 * 60).display(),
         limits.Limit("GET", "changes-since*", "changes-since", 5,
                      60).display(),
     ]
     request.environ["nova.limits"] = _limits
     return request
Ejemplo n.º 3
0
 def test_GET_no_delay(self):
     # Test a limit handles 1 GET per second.
     limit = limits.Limit("GET", "*", ".*", 1, 1)
     delay = limit("GET", "/anything")
     self.assertEqual(None, delay)
     self.assertEqual(0, limit.next_request)
     self.assertEqual(0, limit.last_request)
Ejemplo n.º 4
0
    def test_GET_delay(self):
        # Test two calls to 1 GET per second limit.
        limit = limits.Limit("GET", "*", ".*", 1, 1)
        delay = limit("GET", "/anything")
        self.assertEqual(None, delay)

        delay = limit("GET", "/anything")
        self.assertEqual(1, delay)
        self.assertEqual(1, limit.next_request)
        self.assertEqual(0, limit.last_request)

        self.time += 4

        delay = limit("GET", "/anything")
        self.assertEqual(None, delay)
        self.assertEqual(4, limit.next_request)
        self.assertEqual(4, limit.last_request)
Ejemplo n.º 5
0
from lxml import etree
import webob

from nova.api.openstack.compute import limits
from nova.api.openstack.compute import views
from nova.api.openstack import xmlutil
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
from nova import utils

TEST_LIMITS = [
    limits.Limit("GET", "/delayed", "^/delayed", 1,
                 utils.TIME_UNITS['MINUTE']),
    limits.Limit("POST", "*", ".*", 7, utils.TIME_UNITS['MINUTE']),
    limits.Limit("POST", "/servers", "^/servers", 3,
                 utils.TIME_UNITS['MINUTE']),
    limits.Limit("PUT", "*", "", 10, utils.TIME_UNITS['MINUTE']),
    limits.Limit("PUT", "/servers", "^/servers", 5,
                 utils.TIME_UNITS['MINUTE']),
]
NS = {
    'atom': 'http://www.w3.org/2005/Atom',
    'ns': 'http://docs.openstack.org/common/api/v1.0'
}


class BaseLimitTestSuite(test.NoDBTestCase):
    """Base test suite which provides relevant stubs and time abstraction."""
Ejemplo n.º 6
0
import StringIO
from xml.dom import minidom

from lxml import etree
import webob

from nova.api.openstack.compute import limits
from nova.api.openstack.compute import views
from nova.api.openstack import xmlutil
import nova.context
from nova.openstack.common import jsonutils
from nova import test
from nova.tests import matchers

TEST_LIMITS = [
    limits.Limit("GET", "/delayed", "^/delayed", 1, limits.PER_MINUTE),
    limits.Limit("POST", "*", ".*", 7, limits.PER_MINUTE),
    limits.Limit("POST", "/servers", "^/servers", 3, limits.PER_MINUTE),
    limits.Limit("PUT", "*", "", 10, limits.PER_MINUTE),
    limits.Limit("PUT", "/servers", "^/servers", 5, limits.PER_MINUTE),
]
NS = {
    'atom': 'http://www.w3.org/2005/Atom',
    'ns': 'http://docs.openstack.org/common/api/v1.0'
}


class BaseLimitTestSuite(test.TestCase):
    """Base test suite which provides relevant stubs and time abstraction."""
    def setUp(self):
        super(BaseLimitTestSuite, self).setUp()