def test_arrange_quotas_by_service_name(self, mock_endpoint):
     qm = quota_manager.QuotaManager()
     actual_arranged_quotas = qm._arrange_quotas_by_service_name(
         TOTAL_USAGE)
     self.assertEqual(CINDER_USAGE, actual_arranged_quotas['cinder'])
     self.assertEqual(NEUTRON_USAGE, actual_arranged_quotas['neutron'])
     self.assertEqual(NOVA_USAGE, actual_arranged_quotas['nova'])
 def test_init(self, mock_context, mock_endpoint):
     mock_context.get_admin_context.return_value = self.ctxt
     qm = quota_manager.QuotaManager()
     self.assertIsNotNone(qm)
     self.assertEqual('quota_manager', qm.service_name)
     self.assertEqual('localhost', qm.host)
     self.assertEqual(self.ctxt, qm.context)
 def test_get_kingbird_project_limit(self, mock_endpoint, mock_db_api):
     config.register_options()
     qm = quota_manager.QuotaManager()
     mock_db_api.quota_get_all_by_project.return_value = {
         'project_id': FAKE_PROJECT,
         'ram': 51000
     }
     actual_global_limit = qm._get_kingbird_project_limit(FAKE_PROJECT)
     # Assert kingbird limits from conf file
     self.assertEqual(CONF.kingbird_global_limit['quota_cores'],
                      actual_global_limit['cores'])
     self.assertEqual(CONF.kingbird_global_limit['quota_key_pairs'],
                      actual_global_limit['key_pairs'])
     self.assertEqual(CONF.kingbird_global_limit['quota_router'],
                      actual_global_limit['router'])
     self.assertEqual(CONF.kingbird_global_limit['quota_port'],
                      actual_global_limit['port'])
     self.assertEqual(CONF.kingbird_global_limit['quota_network'],
                      actual_global_limit['network'])
     self.assertEqual(CONF.kingbird_global_limit['quota_volumes'],
                      actual_global_limit['volumes'])
     self.assertEqual(CONF.kingbird_global_limit['quota_instances'],
                      actual_global_limit['instances'])
     self.assertEqual(CONF.kingbird_global_limit['quota_floatingip'],
                      actual_global_limit['floatingip'])
     self.assertEqual(CONF.kingbird_global_limit['quota_metadata_items'],
                      actual_global_limit['metadata_items'])
     self.assertEqual(CONF.kingbird_global_limit['quota_security_group'],
                      actual_global_limit['security_group'])
     self.assertEqual(CONF.kingbird_global_limit['quota_backups'],
                      actual_global_limit['backups'])
     # Assert Kingbird limit from db which is mocked
     self.assertEqual(51000, actual_global_limit['ram'])
 def test_get_summation(self, mock_endpoint):
     expected_sum = Counter(
         dict(
             Counter(FAKE_REGION_DICT['region1']) +
             Counter(FAKE_REGION_DICT['region2'])))
     qm = quota_manager.QuotaManager()
     actual_sum = qm.get_summation(FAKE_REGION_DICT)
     self.assertEqual(expected_sum, actual_sum)
 def test_read_quota_usage(self, mock_endpoint, mock_sdk):
     mock_sdk.OpenStackDriver().get_resource_usages.return_value = \
         NOVA_USAGE, NEUTRON_USAGE, CINDER_USAGE
     usage_queue = Queue()
     qm = quota_manager.QuotaManager()
     qm.read_quota_usage(FAKE_PROJECT, FAKE_REGION, usage_queue)
     actual_usage = usage_queue.get()
     self.assertEqual(actual_usage, {FAKE_REGION: TOTAL_USAGE})
 def test_periodic_balance_all_lock_fail(self, mock_kb_lock, mock_endpoint,
                                         mock_sdk, mock_quota_sync):
     mock_sdk.OpenStackDriver().get_enabled_projects.return_value = \
         ['proj1']
     mock_kb_lock.sync_lock_acquire.return_value = False
     qm = quota_manager.QuotaManager()
     qm.periodic_balance_all(FAKE_ENGINE_ID)
     mock_quota_sync.assert_not_called()
 def test_get_tenant_quota_usage_per_region(self, mock_quota_usage,
                                            mock_endpoint, mock_sdk,
                                            mock_queue):
     qm = quota_manager.QuotaManager()
     mock_sdk.OpenStackDriver().get_all_regions_for_project.return_value = \
         [FAKE_REGION]
     qm.get_tenant_quota_usage_per_region(FAKE_PROJECT)
     mock_quota_usage.assert_called_once_with(FAKE_PROJECT, FAKE_REGION,
                                              mock_queue())
 def test_periodic_balance_all(self, mock_kb_lock, mock_endpoint, mock_sdk,
                               mock_quota_sync, mock_context):
     mock_context.get_admin_context.return_value = self.ctxt
     mock_sdk.OpenStackDriver().get_enabled_projects.return_value = \
         ['proj1']
     mock_kb_lock.sync_lock_acquire.return_value = True
     qm = quota_manager.QuotaManager()
     qm.periodic_balance_all(FAKE_ENGINE_ID)
     mock_quota_sync.assert_called_with('proj1')
     mock_kb_lock.sync_lock_release.assert_called_once_with(
         self.ctxt, FAKE_ENGINE_ID, TASK_TYPE)
 def test_quota_sync_for_project_read_error(self, mock_endpoint,
                                            mock_kb_limit, mock_update,
                                            mock_quota_usage,
                                            mock_os_client, mock_dbapi):
     mock_os_client.OpenStackDriver(
     ).get_all_regions_for_project.return_value = [FAKE_REGION]
     mock_quota_usage.return_value = {}
     mock_kb_limit.return_value = {'ram': 100}
     qm = quota_manager.QuotaManager()
     qm.quota_sync_for_project(FAKE_PROJECT)
     mock_update.assert_not_called()
 def test_quota_sync_for_project(self, mock_endpoint, mock_kb_limit,
                                 mock_update, mock_quota_usage,
                                 mock_os_client, mock_dbapi):
     mock_os_client.OpenStackDriver(
     ).get_all_regions_for_project.return_value = [FAKE_REGION]
     mock_quota_usage.return_value = {FAKE_REGION: TOTAL_USAGE}
     mock_kb_limit.return_value = {'ram': 100}
     qm = quota_manager.QuotaManager()
     qm.quota_sync_for_project(FAKE_PROJECT)
     expected_limit = {
         'cinder': CINDER_USAGE,
         'nova': NOVA_USAGE,
         'neutron': NEUTRON_USAGE
     }
     mock_update.assert_called_once_with(FAKE_PROJECT, expected_limit,
                                         FAKE_REGION)
 def test_get_total_usage_for_tenant(self, mock_quota_usage, mock_endpoint,
                                     mock_db_api):
     qm = quota_manager.QuotaManager()
     qm.get_total_usage_for_tenant(FAKE_PROJECT)
     mock_quota_usage.assert_called_once_with(FAKE_PROJECT)
 def test_update_quota_limits(self, mock_endpoint, mock_sdk):
     qm = quota_manager.QuotaManager()
     qm.update_quota_limits(FAKE_PROJECT, TOTAL_USAGE, FAKE_REGION)
     mock_sdk.OpenStackDriver().write_quota_limits.assert_called_once_with(
         FAKE_PROJECT, TOTAL_USAGE)