94
94
raise exception.ComputeHostNotFound
97
def fake_compute_node_statistics(context):
110
disk_available_least=0,
113
for hyper in TEST_HYPERS:
118
result[key] += hyper[key]
97
123
def fake_instance_get_all_by_host(context, host):
99
125
for inst in TEST_SERVERS:
113
139
fake_compute_node_search_by_hypervisor)
114
140
self.stubs.Set(db, 'compute_node_get',
115
141
fake_compute_node_get)
142
self.stubs.Set(db, 'compute_node_statistics',
143
fake_compute_node_statistics)
116
144
self.stubs.Set(db, 'instance_get_all_by_host',
117
145
fake_instance_get_all_by_host)
231
259
cpu_info='cpu_info',
232
260
disk_available_least=100)))
262
def test_uptime_noid(self):
263
req = fakes.HTTPRequest.blank('/v2/fake/os-hypervisors/3')
264
self.assertRaises(exc.HTTPNotFound, self.controller.show, req, '3')
266
def test_uptime_notimplemented(self):
267
def fake_get_host_uptime(context, hyp):
268
raise exc.HTTPNotImplemented()
270
self.stubs.Set(self.controller.api, 'get_host_uptime',
271
fake_get_host_uptime)
273
req = fakes.HTTPRequest.blank('/v2/fake/os-hypervisors/1')
274
self.assertRaises(exc.HTTPNotImplemented,
275
self.controller.uptime, req, '1')
277
def test_uptime_implemented(self):
278
def fake_get_host_uptime(context, hyp):
281
self.stubs.Set(self.controller.api, 'get_host_uptime',
282
fake_get_host_uptime)
284
req = fakes.HTTPRequest.blank('/v2/fake/os-hypervisors/1')
285
result = self.controller.uptime(req, '1')
287
self.assertEqual(result, dict(hypervisor=dict(
289
hypervisor_hostname="hyper1",
290
uptime="fake uptime")))
234
292
def test_search(self):
235
293
req = fakes.HTTPRequest.blank('/v2/fake/os-hypervisors/hyper/search')
236
294
result = self.controller.search(req, 'hyper')
255
313
dict(name="inst2", uuid="uuid2"),
256
314
dict(name="inst4", uuid="uuid4")])]))
316
def test_statistics(self):
317
req = fakes.HTTPRequest.blank('/v2/fake/os-hypervisors/statistics')
318
result = self.controller.statistics(req)
320
self.assertEqual(result, dict(hypervisor_statistics=dict(
326
memory_mb_used=10 * 1024,
328
free_ram_mb=10 * 1024,
332
disk_available_least=200)))
259
335
class HypervisorsSerializersTest(test.TestCase):
260
336
def compare_to_exemplar(self, exemplar, hyper):
261
self.assertEqual('hypervisor', hyper.tag)
263
337
# Check attributes
264
338
for key, value in exemplar.items():
265
339
if key in ('service', 'servers'):
302
376
self.assertEqual('hypervisors', tree.tag)
303
377
self.assertEqual(len(exemplar['hypervisors']), len(tree))
304
378
for idx, hyper in enumerate(tree):
379
self.assertEqual('hypervisor', hyper.tag)
305
380
self.compare_to_exemplar(exemplar['hypervisors'][idx], hyper)
307
382
def test_detail_serializer(self):
347
422
self.assertEqual('hypervisors', tree.tag)
348
423
self.assertEqual(len(exemplar['hypervisors']), len(tree))
349
424
for idx, hyper in enumerate(tree):
425
self.assertEqual('hypervisor', hyper.tag)
350
426
self.compare_to_exemplar(exemplar['hypervisors'][idx], hyper)
352
428
def test_show_serializer(self):
372
448
text = serializer.serialize(exemplar)
373
449
tree = etree.fromstring(text)
451
self.assertEqual('hypervisor', tree.tag)
452
self.compare_to_exemplar(exemplar['hypervisor'], tree)
454
def test_uptime_serializer(self):
455
serializer = hypervisors.HypervisorUptimeTemplate()
456
exemplar = dict(hypervisor=dict(
457
hypervisor_hostname="hyper1",
459
uptime='fake uptime'))
460
text = serializer.serialize(exemplar)
461
tree = etree.fromstring(text)
463
self.assertEqual('hypervisor', tree.tag)
375
464
self.compare_to_exemplar(exemplar['hypervisor'], tree)
377
466
def test_servers_serializer(self):
397
486
self.assertEqual('hypervisors', tree.tag)
398
487
self.assertEqual(len(exemplar['hypervisors']), len(tree))
399
488
for idx, hyper in enumerate(tree):
489
self.assertEqual('hypervisor', hyper.tag)
400
490
self.compare_to_exemplar(exemplar['hypervisors'][idx], hyper)
492
def test_statistics_serializer(self):
493
serializer = hypervisors.HypervisorStatisticsTemplate()
494
exemplar = dict(hypervisor_statistics=dict(
500
memory_mb_used=10 * 1024,
502
free_ram_mb=10 * 1024,
506
disk_available_least=200))
507
text = serializer.serialize(exemplar)
508
tree = etree.fromstring(text)
510
self.assertEqual('hypervisor_statistics', tree.tag)
511
self.compare_to_exemplar(exemplar['hypervisor_statistics'], tree)