def test_create_destroy_entry(self): cache = NfviMetricsCache(self.logger, self.loop, self.plugin_manager) self.assertEqual(len(cache._nfvi_metrics), 0) cache.create_entry(self.account, self.vdur) self.assertEqual(len(cache._nfvi_metrics), 1) cache.destroy_entry(self.vdur.id) self.assertEqual(len(cache._nfvi_metrics), 0)
def setUp(self): self.loop = asyncio.new_event_loop() self.logger = logging.getLogger('test-logger') self.account = RwcalYang.CloudAccount( name='test-cloud-account', account_type="mock", ) # Define the VDUR to avoid division by zero self.vdur = make_vdur() self.vdur.vm_flavor.vcpu_count = 4 self.vdur.vm_flavor.memory_mb = 100 self.vdur.vm_flavor.storage_gb = 2 self.vdur.vim_id = 'test-vim-id' self.plugin_manager = NfviMetricsPluginManager(self.logger) self.plugin_manager.register(self.account, "mock") self.cache = NfviMetricsCache( self.logger, self.loop, self.plugin_manager, ) self.nfvi_interface = NfviInterface(self.loop, self.logger, self.plugin_manager, self.cache)
def test_retrieve(self): NfviMetrics.SAMPLE_INTERVAL = 1 cache = NfviMetricsCache(self.logger, self.loop, self.plugin_manager) cache.create_entry(self.account, self.vdur) @wait_for_pending_tasks(self.loop) @asyncio.coroutine def retrieve_metrics(): metrics = cache.retrieve("test-vim-id") self.assertEqual(metrics.vcpu.utilization, 0.0) yield from asyncio.sleep(NfviMetrics.SAMPLE_INTERVAL, loop=self.loop) metrics = cache.retrieve("test-vim-id") self.assertEqual(metrics.vcpu.utilization, 0.5) self.loop.run_until_complete(retrieve_metrics())
def setUp(self): # Reduce the sample interval so that test run quickly NfviMetrics.SAMPLE_INTERVAL = 0.1 # Create a mock plugin to define the metrics retrieved. The plugin will # return a VCPU utilization of 0.5. class MockPlugin(object): def __init__(self): self.metrics = RwmonYang.NfviMetrics() def nfvi_metrics(self, account, vim_id): self.metrics.vcpu.utilization = 0.5 return self.metrics self.loop = asyncio.get_event_loop() self.logger = logging.getLogger('test-logger') self.account = RwcalYang.CloudAccount( name='test-cloud-account', account_type="mock", ) # Define the VDUR to avoid division by zero vdur = make_vdur() vdur.vm_flavor.vcpu_count = 4 vdur.vm_flavor.memory_mb = 100 vdur.vm_flavor.storage_gb = 2 vdur.vim_id = 'test-vim-id' # Instantiate the mock plugin self.plugin_manager = NfviMetricsPluginManager(self.logger) self.plugin_manager.register(self.account, "mock") self.plugin = self.plugin_manager.plugin(self.account.name) self.plugin.set_impl(MockPlugin()) self.cache = NfviMetricsCache( self.logger, self.loop, self.plugin_manager, ) self.manager = NfviInterface( self.loop, self.logger, self.plugin_manager, self.cache, ) self.metrics = NfviMetrics( self.logger, self.loop, self.account, self.plugin, vdur, )
def test_id_mapping(self): cache = NfviMetricsCache(self.logger, self.loop, self.plugin_manager) cache.create_entry(self.account, self.vdur) self.assertEqual(cache.to_vim_id(self.vdur.id), self.vdur.vim_id) self.assertEqual(cache.to_vdur_id(self.vdur.vim_id), self.vdur.id) self.assertTrue(cache.contains_vdur_id(self.vdur.id)) self.assertTrue(cache.contains_vim_id(self.vdur.vim_id)) cache.destroy_entry(self.vdur.id) self.assertFalse(cache.contains_vdur_id(self.vdur.id)) self.assertFalse(cache.contains_vim_id(self.vdur.vim_id))