~ubuntu-branches/ubuntu/quantal/nova/quantal-proposed

« back to all changes in this revision

Viewing changes to nova/tests/api/openstack/compute/contrib/test_hypervisors.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2012-08-16 14:04:11 UTC
  • mto: This revision was merged to the branch mainline in revision 84.
  • Revision ID: package-import@ubuntu.com-20120816140411-0mr4n241wmk30t9l
Tags: upstream-2012.2~f3
ImportĀ upstreamĀ versionĀ 2012.2~f3

Show diffs side-by-side

added added

removed removed

Lines of Context:
94
94
    raise exception.ComputeHostNotFound
95
95
 
96
96
 
 
97
def fake_compute_node_statistics(context):
 
98
    result = dict(
 
99
        count=0,
 
100
        vcpus=0,
 
101
        memory_mb=0,
 
102
        local_gb=0,
 
103
        vcpus_used=0,
 
104
        memory_mb_used=0,
 
105
        local_gb_used=0,
 
106
        free_ram_mb=0,
 
107
        free_disk_gb=0,
 
108
        current_workload=0,
 
109
        running_vms=0,
 
110
        disk_available_least=0,
 
111
        )
 
112
 
 
113
    for hyper in TEST_HYPERS:
 
114
        for key in result:
 
115
            if key == 'count':
 
116
                result[key] += 1
 
117
            else:
 
118
                result[key] += hyper[key]
 
119
 
 
120
    return result
 
121
 
 
122
 
97
123
def fake_instance_get_all_by_host(context, host):
98
124
    results = []
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)
118
146
 
231
259
                    cpu_info='cpu_info',
232
260
                    disk_available_least=100)))
233
261
 
 
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')
 
265
 
 
266
    def test_uptime_notimplemented(self):
 
267
        def fake_get_host_uptime(context, hyp):
 
268
            raise exc.HTTPNotImplemented()
 
269
 
 
270
        self.stubs.Set(self.controller.api, 'get_host_uptime',
 
271
                       fake_get_host_uptime)
 
272
 
 
273
        req = fakes.HTTPRequest.blank('/v2/fake/os-hypervisors/1')
 
274
        self.assertRaises(exc.HTTPNotImplemented,
 
275
                          self.controller.uptime, req, '1')
 
276
 
 
277
    def test_uptime_implemented(self):
 
278
        def fake_get_host_uptime(context, hyp):
 
279
            return "fake uptime"
 
280
 
 
281
        self.stubs.Set(self.controller.api, 'get_host_uptime',
 
282
                       fake_get_host_uptime)
 
283
 
 
284
        req = fakes.HTTPRequest.blank('/v2/fake/os-hypervisors/1')
 
285
        result = self.controller.uptime(req, '1')
 
286
 
 
287
        self.assertEqual(result, dict(hypervisor=dict(
 
288
                    id=1,
 
289
                    hypervisor_hostname="hyper1",
 
290
                    uptime="fake uptime")))
 
291
 
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")])]))
257
315
 
 
316
    def test_statistics(self):
 
317
        req = fakes.HTTPRequest.blank('/v2/fake/os-hypervisors/statistics')
 
318
        result = self.controller.statistics(req)
 
319
 
 
320
        self.assertEqual(result, dict(hypervisor_statistics=dict(
 
321
                    count=2,
 
322
                    vcpus=8,
 
323
                    memory_mb=20 * 1024,
 
324
                    local_gb=500,
 
325
                    vcpus_used=4,
 
326
                    memory_mb_used=10 * 1024,
 
327
                    local_gb_used=250,
 
328
                    free_ram_mb=10 * 1024,
 
329
                    free_disk_gb=250,
 
330
                    current_workload=4,
 
331
                    running_vms=4,
 
332
                    disk_available_least=200)))
 
333
 
258
334
 
259
335
class HypervisorsSerializersTest(test.TestCase):
260
336
    def compare_to_exemplar(self, exemplar, hyper):
261
 
        self.assertEqual('hypervisor', hyper.tag)
262
 
 
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)
306
381
 
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)
351
427
 
352
428
    def test_show_serializer(self):
372
448
        text = serializer.serialize(exemplar)
373
449
        tree = etree.fromstring(text)
374
450
 
 
451
        self.assertEqual('hypervisor', tree.tag)
 
452
        self.compare_to_exemplar(exemplar['hypervisor'], tree)
 
453
 
 
454
    def test_uptime_serializer(self):
 
455
        serializer = hypervisors.HypervisorUptimeTemplate()
 
456
        exemplar = dict(hypervisor=dict(
 
457
                hypervisor_hostname="hyper1",
 
458
                id=1,
 
459
                uptime='fake uptime'))
 
460
        text = serializer.serialize(exemplar)
 
461
        tree = etree.fromstring(text)
 
462
 
 
463
        self.assertEqual('hypervisor', tree.tag)
375
464
        self.compare_to_exemplar(exemplar['hypervisor'], tree)
376
465
 
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)
 
491
 
 
492
    def test_statistics_serializer(self):
 
493
        serializer = hypervisors.HypervisorStatisticsTemplate()
 
494
        exemplar = dict(hypervisor_statistics=dict(
 
495
                count=2,
 
496
                vcpus=8,
 
497
                memory_mb=20 * 1024,
 
498
                local_gb=500,
 
499
                vcpus_used=4,
 
500
                memory_mb_used=10 * 1024,
 
501
                local_gb_used=250,
 
502
                free_ram_mb=10 * 1024,
 
503
                free_disk_gb=250,
 
504
                current_workload=4,
 
505
                running_vms=4,
 
506
                disk_available_least=200))
 
507
        text = serializer.serialize(exemplar)
 
508
        tree = etree.fromstring(text)
 
509
 
 
510
        self.assertEqual('hypervisor_statistics', tree.tag)
 
511
        self.compare_to_exemplar(exemplar['hypervisor_statistics'], tree)