Example #1
0
 def test_unlimited_gigabytes(self):
     self.flags(quota_volumes=-1, quota_gigabytes=10)
     volumes = quota.allowed_volumes(self.context, 100, 1)
     self.assertEqual(volumes, 10)
     db.quota_create(self.context, self.project_id, 'gigabytes', None)
     volumes = quota.allowed_volumes(self.context, 100, 1)
     self.assertEqual(volumes, 100)
     volumes = quota.allowed_volumes(self.context, 101, 1)
     self.assertEqual(volumes, 101)
Example #2
0
 def test_unlimited_metadata_items(self):
     self.flags(quota_metadata_items=10)
     items = quota.allowed_metadata_items(self.context, 100)
     self.assertEqual(items, 10)
     db.quota_create(self.context, self.project_id, 'metadata_items', None)
     items = quota.allowed_metadata_items(self.context, 100)
     self.assertEqual(items, 100)
     items = quota.allowed_metadata_items(self.context, 101)
     self.assertEqual(items, 101)
Example #3
0
 def test_unlimited_floating_ips(self):
     self.flags(quota_floating_ips=10)
     floating_ips = quota.allowed_floating_ips(self.context, 100)
     self.assertEqual(floating_ips, 10)
     db.quota_create(self.context, self.project_id, 'floating_ips', None)
     floating_ips = quota.allowed_floating_ips(self.context, 100)
     self.assertEqual(floating_ips, 100)
     floating_ips = quota.allowed_floating_ips(self.context, 101)
     self.assertEqual(floating_ips, 101)
Example #4
0
 def test_unlimited_metadata_items(self):
     self.flags(quota_metadata_items=10)
     items = quota.allowed_metadata_items(self.context, 100)
     self.assertEqual(items, 10)
     db.quota_create(self.context, self.project_id, 'metadata_items', None)
     items = quota.allowed_metadata_items(self.context, 100)
     self.assertEqual(items, 100)
     items = quota.allowed_metadata_items(self.context, 101)
     self.assertEqual(items, 101)
Example #5
0
 def test_unlimited_floating_ips(self):
     self.flags(quota_floating_ips=10)
     floating_ips = quota.allowed_floating_ips(self.context, 100)
     self.assertEqual(floating_ips, 10)
     db.quota_create(self.context, self.project_id, 'floating_ips', None)
     floating_ips = quota.allowed_floating_ips(self.context, 100)
     self.assertEqual(floating_ips, 100)
     floating_ips = quota.allowed_floating_ips(self.context, 101)
     self.assertEqual(floating_ips, 101)
Example #6
0
 def test_unlimited_gigabytes(self):
     self.flags(quota_volumes=-1, quota_gigabytes=10)
     volumes = quota.allowed_volumes(self.context, 100, 1)
     self.assertEqual(volumes, 10)
     db.quota_create(self.context, self.project_id, 'gigabytes', None)
     volumes = quota.allowed_volumes(self.context, 100, 1)
     self.assertEqual(volumes, 100)
     volumes = quota.allowed_volumes(self.context, 101, 1)
     self.assertEqual(volumes, 101)
Example #7
0
 def update(self, req, id, body):
     context = req.environ['engine.context']
     project_id = id
     for key in body['quota_set'].keys():
         if key in quota_resources:
             value = int(body['quota_set'][key])
             try:
                 db.quota_update(context, project_id, key, value)
             except exception.ProjectQuotaNotFound:
                 db.quota_create(context, project_id, key, value)
             except exception.AdminRequired:
                 raise webob.exc.HTTPForbidden()
     return {'quota_set': quota.get_project_quotas(context, project_id)}
Example #8
0
 def test_unlimited_cores(self):
     self.flags(quota_instances=-1, quota_ram=-1, quota_cores=2)
     instance_type = self._get_instance_type('m1.small')
     num_instances = quota.allowed_instances(self.context, 100,
                                             instance_type)
     self.assertEqual(num_instances, 2)
     db.quota_create(self.context, self.project_id, 'cores', None)
     num_instances = quota.allowed_instances(self.context, 100,
                                             instance_type)
     self.assertEqual(num_instances, 100)
     num_instances = quota.allowed_instances(self.context, 101,
                                             instance_type)
     self.assertEqual(num_instances, 101)
Example #9
0
 def test_unlimited_cores(self):
     self.flags(quota_instances=-1, quota_ram=-1, quota_cores=2)
     instance_type = self._get_instance_type('m1.small')
     num_instances = quota.allowed_instances(self.context, 100,
                                             instance_type)
     self.assertEqual(num_instances, 2)
     db.quota_create(self.context, self.project_id, 'cores', None)
     num_instances = quota.allowed_instances(self.context, 100,
                                             instance_type)
     self.assertEqual(num_instances, 100)
     num_instances = quota.allowed_instances(self.context, 101,
                                             instance_type)
     self.assertEqual(num_instances, 101)
Example #10
0
 def update(self, req, id, body):
     context = req.environ['engine.context']
     project_id = id
     for key in body['quota_set'].keys():
         if key in quota_resources:
             value = int(body['quota_set'][key])
             try:
                 db.quota_update(context, project_id, key, value)
             except exception.ProjectQuotaNotFound:
                 db.quota_create(context, project_id, key, value)
             except exception.AdminRequired:
                 raise webob.exc.HTTPForbidden()
     return {'quota_set': quota.get_project_quotas(context, project_id)}
Example #11
0
    def test_quota_overrides(self):
        """Make sure overriding a projects quotas works"""
        num_instances = quota.allowed_instances(self.context, 100,
            self._get_instance_type('m1.small'))
        self.assertEqual(num_instances, 2)
        db.quota_create(self.context, self.project_id, 'instances', 10)
        num_instances = quota.allowed_instances(self.context, 100,
            self._get_instance_type('m1.small'))
        self.assertEqual(num_instances, 4)
        db.quota_create(self.context, self.project_id, 'cores', 100)
        num_instances = quota.allowed_instances(self.context, 100,
            self._get_instance_type('m1.small'))
        self.assertEqual(num_instances, 10)
        db.quota_create(self.context, self.project_id, 'ram', 3 * 2048)
        num_instances = quota.allowed_instances(self.context, 100,
            self._get_instance_type('m1.small'))
        self.assertEqual(num_instances, 3)

        # metadata_items
        too_many_items = FLAGS.quota_metadata_items + 1000
        num_metadata_items = quota.allowed_metadata_items(self.context,
                                                          too_many_items)
        self.assertEqual(num_metadata_items, FLAGS.quota_metadata_items)
        db.quota_create(self.context, self.project_id, 'metadata_items', 5)
        num_metadata_items = quota.allowed_metadata_items(self.context,
                                                          too_many_items)
        self.assertEqual(num_metadata_items, 5)

        # Cleanup
        db.quota_destroy_all_by_project(self.context, self.project_id)
Example #12
0
    def test_quota_overrides(self):
        """Make sure overriding a projects quotas works"""
        num_instances = quota.allowed_instances(
            self.context, 100, self._get_instance_type('m1.small'))
        self.assertEqual(num_instances, 2)
        db.quota_create(self.context, self.project_id, 'instances', 10)
        num_instances = quota.allowed_instances(
            self.context, 100, self._get_instance_type('m1.small'))
        self.assertEqual(num_instances, 4)
        db.quota_create(self.context, self.project_id, 'cores', 100)
        num_instances = quota.allowed_instances(
            self.context, 100, self._get_instance_type('m1.small'))
        self.assertEqual(num_instances, 10)
        db.quota_create(self.context, self.project_id, 'ram', 3 * 2048)
        num_instances = quota.allowed_instances(
            self.context, 100, self._get_instance_type('m1.small'))
        self.assertEqual(num_instances, 3)

        # metadata_items
        too_many_items = FLAGS.quota_metadata_items + 1000
        num_metadata_items = quota.allowed_metadata_items(
            self.context, too_many_items)
        self.assertEqual(num_metadata_items, FLAGS.quota_metadata_items)
        db.quota_create(self.context, self.project_id, 'metadata_items', 5)
        num_metadata_items = quota.allowed_metadata_items(
            self.context, too_many_items)
        self.assertEqual(num_metadata_items, 5)

        # Cleanup
        db.quota_destroy_all_by_project(self.context, self.project_id)
Example #13
0
    def update(self, req, id, body):
        context = req.environ['engine.context']
        project_id = id
        resources = [
            'metadata_items', 'injected_file_content_bytes', 'volumes',
            'gigabytes', 'ram', 'floating_ips', 'instances', 'injected_files',
            'cores'
        ]

        for key in body['quota_set'].keys():
            if key in resources:
                value = int(body['quota_set'][key])
                try:
                    db.quota_update(context, project_id, key, value)
                except exception.ProjectQuotaNotFound:
                    db.quota_create(context, project_id, key, value)
        return {'quota_set': quota.get_project_quotas(context, project_id)}
Example #14
0
    def update(self, req, id, body):
        context = req.environ["engine.context"]
        project_id = id
        resources = [
            "metadata_items",
            "injected_file_content_bytes",
            "volumes",
            "gigabytes",
            "ram",
            "floating_ips",
            "instances",
            "injected_files",
            "cores",
        ]

        for key in body["quota_set"].keys():
            if key in resources:
                value = int(body["quota_set"][key])
                try:
                    db.quota_update(context, project_id, key, value)
                except exception.ProjectQuotaNotFound:
                    db.quota_create(context, project_id, key, value)
        return {"quota_set": quota.get_project_quotas(context, project_id)}
Example #15
0
 def test_unlimited_db_allowed_injected_file_content_bytes(self):
     self.flags(quota_max_injected_file_content_bytes=12345)
     db.quota_create(self.context, self.project_id,
                     'injected_file_content_bytes', None)
     limit = quota.allowed_injected_file_content_bytes(self.context, 23456)
     self.assertEqual(limit, 23456)
Example #16
0
 def test_unlimited_db_allowed_injected_files(self):
     self.flags(quota_max_injected_files=5)
     db.quota_create(self.context, self.project_id, 'injected_files', None)
     self.assertEqual(quota.allowed_injected_files(self.context, 100), 100)
Example #17
0
 def test_overridden_allowed_injected_files(self):
     self.flags(quota_max_injected_files=5)
     db.quota_create(self.context, self.project_id, 'injected_files', 77)
     self.assertEqual(quota.allowed_injected_files(self.context, 100), 77)
Example #18
0
 def test_overridden_allowed_injected_files(self):
     self.flags(quota_max_injected_files=5)
     db.quota_create(self.context, self.project_id, 'injected_files', 77)
     self.assertEqual(quota.allowed_injected_files(self.context, 100), 77)
Example #19
0
 def test_unlimited_db_allowed_injected_files(self):
     self.flags(quota_max_injected_files=5)
     db.quota_create(self.context, self.project_id, 'injected_files', None)
     self.assertEqual(quota.allowed_injected_files(self.context, 100), 100)
Example #20
0
 def test_unlimited_db_allowed_injected_file_content_bytes(self):
     self.flags(quota_max_injected_file_content_bytes=12345)
     db.quota_create(self.context, self.project_id,
                     'injected_file_content_bytes', None)
     limit = quota.allowed_injected_file_content_bytes(self.context, 23456)
     self.assertEqual(limit, 23456)