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)
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)
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)
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)}
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)
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)
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)
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)}
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)}
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)
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)
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)