From e6620ff00f17d69431d080de9fff33e1d5b96173 Mon Sep 17 00:00:00 2001 From: Sonali Goyal Date: Mon, 5 Oct 2015 18:17:20 +0530 Subject: [PATCH] Changes names of some quota values Some variables which were actually per-tenant were incorrectly named with a _user. Corrected this confusion by making the old names deprecated and providing new per-tenant names. Closes Bug: #1232969 Change-Id: I541ed990c0cdd40b3805d2e2a166363d9ff2ad04 --- etc/tests/core.test.conf | 4 ++-- etc/trove/trove.conf.sample | 6 +++--- etc/trove/trove.conf.test | 6 +++--- trove/common/cfg.py | 16 ++++++++++------ trove/quota/quota.py | 8 +++++--- trove/tests/api/instances.py | 6 +++--- trove/tests/api/limits.py | 7 ++++--- trove/tests/api/mgmt/quotas.py | 13 ++++++++----- trove/tests/config.py | 3 ++- trove/tests/unittests/quota/test_quota.py | 22 +++++++++++++--------- 10 files changed, 53 insertions(+), 38 deletions(-) diff --git a/etc/tests/core.test.conf b/etc/tests/core.test.conf index d9e94dd412..2c3b563d73 100644 --- a/etc/tests/core.test.conf +++ b/etc/tests/core.test.conf @@ -25,8 +25,8 @@ "trove_can_have_volume":true, "trove_main_instance_has_volume": true, "trove_max_accepted_volume_size": 25, - "trove_max_instances_per_user": 55, - "trove_max_volumes_per_user": 100, + "trove_max_instances_per_tenant": 55, + "trove_max_volumes_per_tenant": 100, "use_reaper":false, "root_removed_from_instance_api": true, "root_timestamp_disabled": false, diff --git a/etc/trove/trove.conf.sample b/etc/trove/trove.conf.sample index 959e53bfbe..bb824fc5e7 100644 --- a/etc/trove/trove.conf.sample +++ b/etc/trove/trove.conf.sample @@ -104,10 +104,10 @@ block_device_mapping = vdb device_path = /dev/vdb # Maximum volume size for an instance max_accepted_volume_size = 10 -max_instances_per_user = 5 +max_instances_per_tenant = 5 # Maximum volume capacity (in GB) spanning across all trove volumes per tenant -max_volumes_per_user = 100 -max_backups_per_user = 5 +max_volumes_per_tenant = 100 +max_backups_per_tenant = 5 volume_time_out=30 # Config options for rate limits diff --git a/etc/trove/trove.conf.test b/etc/trove/trove.conf.test index 286d07ca0c..c8d32be4d1 100644 --- a/etc/trove/trove.conf.test +++ b/etc/trove/trove.conf.test @@ -71,9 +71,9 @@ nova_volume_service_type = volume nova_volume_service_name = Volume Service device_path = /dev/vdb max_accepted_volume_size = 25 -max_instances_per_user = 55 -max_volumes_per_user = 100 -max_backups_per_user = 5 +max_instances_per_tenant = 55 +max_volumes_per_tenant = 100 +max_backups_per_tenant = 5 volume_time_out=30 # Config options for rate limits diff --git a/trove/common/cfg.py b/trove/common/cfg.py index 723cedaf76..904dad34b4 100644 --- a/trove/common/cfg.py +++ b/trove/common/cfg.py @@ -164,15 +164,19 @@ common_opts = [ help='Maximum time (in seconds) to wait for a volume format.'), cfg.StrOpt('mount_options', default='defaults,noatime', help='Options to use when mounting a volume.'), - cfg.IntOpt('max_instances_per_user', default=5, - help='Default maximum number of instances per tenant.'), + cfg.IntOpt('max_instances_per_tenant', + default=5, + help='Default maximum number of instances per tenant.', + deprecated_name='max_instances_per_user'), cfg.IntOpt('max_accepted_volume_size', default=5, help='Default maximum volume size (in GB) for an instance.'), - cfg.IntOpt('max_volumes_per_user', default=20, + cfg.IntOpt('max_volumes_per_tenant', default=20, help='Default maximum volume capacity (in GB) spanning across ' - 'all Trove volumes per tenant.'), - cfg.IntOpt('max_backups_per_user', default=50, - help='Default maximum number of backups created by a tenant.'), + 'all Trove volumes per tenant.', + deprecated_name='max_volumes_per_user'), + cfg.IntOpt('max_backups_per_tenant', default=50, + help='Default maximum number of backups created by a tenant.', + deprecated_name='max_backups_per_user'), cfg.StrOpt('quota_driver', default='trove.quota.quota.DbQuotaDriver', help='Default driver to use for quota checks.'), cfg.StrOpt('taskmanager_queue', default='taskmanager', diff --git a/trove/quota/quota.py b/trove/quota/quota.py index b911b59a0e..f61622b723 100644 --- a/trove/quota/quota.py +++ b/trove/quota/quota.py @@ -332,9 +332,11 @@ class QuotaEngine(object): QUOTAS = QuotaEngine() ''' Define all kind of resources here ''' -resources = [Resource(Resource.INSTANCES, 'max_instances_per_user'), - Resource(Resource.BACKUPS, 'max_backups_per_user'), - Resource(Resource.VOLUMES, 'max_volumes_per_user')] + +resources = [Resource(Resource.INSTANCES, + 'max_instances_per_tenant'), + Resource(Resource.BACKUPS, 'max_backups_per_tenant'), + Resource(Resource.VOLUMES, 'max_volumes_per_tenant')] QUOTAS.register_resources(resources) diff --git a/trove/tests/api/instances.py b/trove/tests/api/instances.py index f4adb02496..7e476449c0 100644 --- a/trove/tests/api/instances.py +++ b/trove/tests/api/instances.py @@ -240,8 +240,8 @@ class CreateInstanceQuotaTest(unittest.TestCase): self.test_info.dbaas_datastore = CONFIG.dbaas_datastore def tearDown(self): - quota_dict = {'instances': CONFIG.trove_max_instances_per_user, - 'volumes': CONFIG.trove_max_volumes_per_user} + quota_dict = {'instances': CONFIG.trove_max_instances_per_tenant, + 'volumes': CONFIG.trove_max_volumes_per_tenant} dbaas_admin.quota.update(self.test_info.user.tenant_id, quota_dict) @@ -283,7 +283,7 @@ class CreateInstanceQuotaTest(unittest.TestCase): self.test_info.volume = None if VOLUME_SUPPORT: - assert_equal(CONFIG.trove_max_volumes_per_user, + assert_equal(CONFIG.trove_max_volumes_per_tenant, verify_quota['volumes']) self.test_info.volume = {'size': CONFIG.get('trove_volume_size', 1)} diff --git a/trove/tests/api/limits.py b/trove/tests/api/limits.py index 8cd115b10d..c23e4d4a24 100644 --- a/trove/tests/api/limits.py +++ b/trove/tests/api/limits.py @@ -35,9 +35,10 @@ CONF = cfg.CONF GROUP = "dbaas.api.limits" DEFAULT_RATE = CONF.http_get_rate -DEFAULT_MAX_VOLUMES = CONF.max_volumes_per_user -DEFAULT_MAX_INSTANCES = CONF.max_instances_per_user -DEFAULT_MAX_BACKUPS = CONF.max_backups_per_user + +DEFAULT_MAX_VOLUMES = CONF.max_volumes_per_tenant +DEFAULT_MAX_INSTANCES = CONF.max_instances_per_tenant +DEFAULT_MAX_BACKUPS = CONF.max_backups_per_tenant def ensure_limits_are_not_faked(func): diff --git a/trove/tests/api/mgmt/quotas.py b/trove/tests/api/mgmt/quotas.py index 1699fc1ef5..d3b6cabf8b 100644 --- a/trove/tests/api/mgmt/quotas.py +++ b/trove/tests/api/mgmt/quotas.py @@ -42,8 +42,9 @@ class QuotasBase(object): self.client2 = create_dbaas_client(self.user2) self.mgmt_client = create_client(is_admin=True) ''' Orig quotas from config - "trove_max_instances_per_user": 55, - "trove_max_volumes_per_user": 100, ''' + + "trove_max_instances_per_tenant": 55, + "trove_max_volumes_per_tenant": 100, ''' self.original_quotas1 = self.mgmt_client.quota.show(self.user1.tenant) self.original_quotas2 = self.mgmt_client.quota.show(self.user2.tenant) @@ -69,7 +70,8 @@ class DefaultQuotasTest(QuotasBase): def check_quotas_are_set_to_defaults(self): quotas = self.mgmt_client.quota.show(self.user1.tenant) with Check() as check: - check.equal(CONFIG.trove_max_instances_per_user, + + check.equal(CONFIG.trove_max_instances_per_tenant, quotas["instances"]) check.equal(CONFIG.trove_max_volumes_per_user, quotas["volumes"]) @@ -103,7 +105,7 @@ class ChangeInstancesQuota(QuotasBase): quotas = self.mgmt_client.quota.show(self.user1.tenant) with Check() as check: check.equal(0, quotas["instances"]) - check.equal(CONFIG.trove_max_volumes_per_user, + check.equal(CONFIG.trove_max_volumes_per_tenant, quotas["volumes"]) asserts.assert_equal(len(quotas), 2) @@ -154,7 +156,8 @@ class ChangeVolumesQuota(QuotasBase): def verify_correct_update(self): quotas = self.mgmt_client.quota.show(self.user1.tenant) with Check() as check: - check.equal(CONFIG.trove_max_instances_per_user, + + check.equal(CONFIG.trove_max_instances_per_tenant, quotas["instances"]) check.equal(0, quotas["volumes"]) asserts.assert_equal(len(quotas), 2) diff --git a/trove/tests/config.py b/trove/tests/config.py index 0964bd48f4..f9ab438da9 100644 --- a/trove/tests/config.py +++ b/trove/tests/config.py @@ -88,7 +88,8 @@ class TestConfig(object): "report_directory": os.environ.get("REPORT_DIRECTORY", None), "trove_volume_support": True, "trove_volume_size": 1, - "trove_max_volumes_per_user": 100, + "trove_max_volumes_per_tenant": 100, + "trove_max_instances_per_tenant": 55, "usage_endpoint": USAGE_ENDPOINT, "root_on_create": False, "mysql": { diff --git a/trove/tests/unittests/quota/test_quota.py b/trove/tests/unittests/quota/test_quota.py index 4db734d195..de129bbeb0 100644 --- a/trove/tests/unittests/quota/test_quota.py +++ b/trove/tests/unittests/quota/test_quota.py @@ -33,8 +33,10 @@ Unit tests for the classes and functions in DbQuotaDriver.py. CONF = cfg.CONF resources = { - Resource.INSTANCES: Resource(Resource.INSTANCES, 'max_instances_per_user'), - Resource.VOLUMES: Resource(Resource.VOLUMES, 'max_volumes_per_user') + + Resource.INSTANCES: Resource(Resource.INSTANCES, + 'max_instances_per_tenant'), + Resource.VOLUMES: Resource(Resource.VOLUMES, 'max_volumes_per_tenant') } FAKE_TENANT1 = "123456" @@ -173,9 +175,10 @@ class DbQuotaDriverTest(trove_testtools.TestCase): def test_get_defaults(self): defaults = self.driver.get_defaults(resources) - self.assertEqual(CONF.max_instances_per_user, + + self.assertEqual(CONF.max_instances_per_tenant, defaults[Resource.INSTANCES]) - self.assertEqual(CONF.max_volumes_per_user, + self.assertEqual(CONF.max_volumes_per_tenant, defaults[Resource.VOLUMES]) def test_get_quota_by_tenant(self): @@ -202,7 +205,7 @@ class DbQuotaDriverTest(trove_testtools.TestCase): self.assertEqual(FAKE_TENANT1, quota.tenant_id) self.assertEqual(Resource.VOLUMES, quota.resource) - self.assertEqual(CONF.max_volumes_per_user, quota.hard_limit) + self.assertEqual(CONF.max_volumes_per_tenant, quota.hard_limit) def test_get_all_quotas_by_tenant(self): @@ -236,11 +239,12 @@ class DbQuotaDriverTest(trove_testtools.TestCase): self.assertEqual(FAKE_TENANT1, quotas[Resource.INSTANCES].tenant_id) self.assertEqual(Resource.INSTANCES, quotas[Resource.INSTANCES].resource) - self.assertEqual(CONF.max_instances_per_user, + + self.assertEqual(CONF.max_instances_per_tenant, quotas[Resource.INSTANCES].hard_limit) self.assertEqual(FAKE_TENANT1, quotas[Resource.VOLUMES].tenant_id) self.assertEqual(Resource.VOLUMES, quotas[Resource.VOLUMES].resource) - self.assertEqual(CONF.max_volumes_per_user, + self.assertEqual(CONF.max_volumes_per_tenant, quotas[Resource.VOLUMES].hard_limit) def test_get_all_quotas_by_tenant_with_one_default(self): @@ -260,7 +264,7 @@ class DbQuotaDriverTest(trove_testtools.TestCase): self.assertEqual(22, quotas[Resource.INSTANCES].hard_limit) self.assertEqual(FAKE_TENANT1, quotas[Resource.VOLUMES].tenant_id) self.assertEqual(Resource.VOLUMES, quotas[Resource.VOLUMES].resource) - self.assertEqual(CONF.max_volumes_per_user, + self.assertEqual(CONF.max_volumes_per_tenant, quotas[Resource.VOLUMES].hard_limit) def test_get_quota_usage_by_tenant(self): @@ -434,7 +438,7 @@ class DbQuotaDriverTest(trove_testtools.TestCase): self.mock_quota_result.all = Mock(return_value=[]) self.mock_usage_result.all = Mock(return_value=FAKE_QUOTAS) - delta = {'instances': 1, 'volumes': CONF.max_volumes_per_user + 1} + delta = {'instances': 1, 'volumes': CONF.max_volumes_per_tenant + 1} self.assertRaises(exception.QuotaExceeded, self.driver.reserve, FAKE_TENANT1,