Esempio n. 1
0
    def test_get_detailed_tenant_quotas_multiple_resource(self):
        project_1 = 'prj_test_1'
        resource_1 = 'res_test_1'
        resource_2 = 'res_test_2'
        resources = {
            resource_1: TestTrackedResource(resource_1, test_quota.MehModel),
            resource_2: TestCountableResource(resource_2, _count_resource)
        }

        self.plugin.update_quota_limit(self.context, project_1, resource_1, 6)
        self.plugin.update_quota_limit(self.context, project_1, resource_2, 9)
        quota_driver = driver.DbQuotaDriver()
        quota_driver.make_reservation(self.context, project_1, resources, {
            resource_1: 1,
            resource_2: 7
        }, self.plugin)

        quota_api.set_quota_usage(self.context, resource_1, project_1, 2)
        quota_api.set_quota_usage(self.context, resource_2, project_1, 3)
        detailed_quota = self.plugin.get_detailed_tenant_quotas(
            self.context, resources, project_1)

        self.assertEqual(6, detailed_quota[resource_1]['limit'])
        self.assertEqual(1, detailed_quota[resource_1]['reserved'])
        self.assertEqual(2, detailed_quota[resource_1]['used'])

        self.assertEqual(9, detailed_quota[resource_2]['limit'])
        self.assertEqual(7, detailed_quota[resource_2]['reserved'])
        self.assertEqual(3, detailed_quota[resource_2]['used'])
Esempio n. 2
0
 def test_make_reservation_over_quota_fails(self):
     quota_driver = driver.DbQuotaDriver()
     resources = {RESOURCE: TestResource(RESOURCE, 2, fake_count=2)}
     deltas = {RESOURCE: 1}
     self.plugin.update_quota_limit(self.context, PROJECT, RESOURCE, 2)
     self.assertRaises(lib_exc.OverQuota, quota_driver.make_reservation,
                       self.context, self.context.tenant_id, resources,
                       deltas, self.plugin)
Esempio n. 3
0
 def setUp(self):
     super(TestDbQuotaDriver, self).setUp()
     self.plugin = FakePlugin()
     self.context = context.get_admin_context()
     self.setup_coreplugin(core_plugin=DB_PLUGIN_KLASS)
     self.quota_driver = driver.DbQuotaDriver()
     self.project_1, self.project_2 = 'prj_test_1', 'prj_test_2'
     self.resource_1, self.resource_2 = 'res_test_1', 'res_test_2'
Esempio n. 4
0
    def test_get_detailed_tenant_quotas_resource(self):
        res = {RESOURCE: TestTrackedResource(RESOURCE, test_quota.MehModel)}

        self.plugin.update_quota_limit(self.context, PROJECT, RESOURCE, 6)
        quota_driver = driver.DbQuotaDriver()
        quota_driver.make_reservation(self.context, PROJECT, res,
                                      {RESOURCE: 1}, self.plugin)
        quota_api.set_quota_usage(self.context, RESOURCE, PROJECT, 2)
        detailed_quota = self.plugin.get_detailed_tenant_quotas(
            self.context, res, PROJECT)
        self.assertEqual(6, detailed_quota[RESOURCE]['limit'])
        self.assertEqual(2, detailed_quota[RESOURCE]['used'])
        self.assertEqual(1, detailed_quota[RESOURCE]['reserved'])
Esempio n. 5
0
 def test_make_reservation_multiple_resources(self):
     quota_driver = driver.DbQuotaDriver()
     resources = {
         RESOURCE: TestResource(RESOURCE, 2),
         ALT_RESOURCE: TestResource(ALT_RESOURCE, 2)
     }
     deltas = {RESOURCE: 1, ALT_RESOURCE: 2}
     self.plugin.update_quota_limit(self.context, PROJECT, RESOURCE, 2)
     self.plugin.update_quota_limit(self.context, PROJECT, ALT_RESOURCE, 2)
     reservation = quota_driver.make_reservation(self.context,
                                                 self.context.tenant_id,
                                                 resources, deltas,
                                                 self.plugin)
     self.assertIn(RESOURCE, reservation.deltas)
     self.assertIn(ALT_RESOURCE, reservation.deltas)
     self.assertEqual(1, reservation.deltas[RESOURCE])
     self.assertEqual(2, reservation.deltas[ALT_RESOURCE])
     self.assertEqual(self.context.tenant_id, reservation.tenant_id)
Esempio n. 6
0
    def test_get_tenant_quotas_arg(self):
        """Call neutron.db.quota.driver.DbQuotaDriver._get_quotas."""

        quota_driver = driver.DbQuotaDriver()
        ctx = context.Context('', 'bar')

        foo_quotas = {'network': 5}
        default_quotas = {'network': 10}
        target_tenant = 'foo'

        with mock.patch.object(driver.DbQuotaDriver,
                               'get_tenant_quotas',
                               return_value=foo_quotas) as get_tenant_quotas:

            quotas = quota_driver._get_quotas(ctx, target_tenant,
                                              default_quotas)

            self.assertEqual(quotas, foo_quotas)
            get_tenant_quotas.assert_called_once_with(ctx, default_quotas,
                                                      target_tenant)
Esempio n. 7
0
 def test_make_reservation_fill_quota(self):
     quota_driver = driver.DbQuotaDriver()
     self._test_make_reservation_success(quota_driver, RESOURCE,
                                         {RESOURCE: 2})
Esempio n. 8
0
 def test_make_reservation_single_resource(self):
     quota_driver = driver.DbQuotaDriver()
     self._test_make_reservation_success(quota_driver, RESOURCE,
                                         {RESOURCE: 1})