~0x44/nova/extdoc

« back to all changes in this revision

Viewing changes to nova/tests/api/openstack/test_images.py

Fixes an issue where 'invalid literal for int' would occur when listing images after making a v1.1 server snapshot (with a UUID).

v1.1 image id's are now treated as strings (not integer ID's). The v1.0 API still tries to treat image id's as integers but doesn't fail miserably if they are uuid's either.

This should pave the way for image ID's as uuids and more closely matches the v1.1 spec with regards to images and the server refs they contain.

Show diffs side-by-side

added added

removed removed

Lines of Context:
77
77
        response_dict = json.loads(response.body)
78
78
        response_list = response_dict["images"]
79
79
 
80
 
        expected = [{'id': '123', 'name': 'public image'},
81
 
                    {'id': '124', 'name': 'queued snapshot'},
82
 
                    {'id': '125', 'name': 'saving snapshot'},
83
 
                    {'id': '126', 'name': 'active snapshot'},
84
 
                    {'id': '127', 'name': 'killed snapshot'},
85
 
                    {'id': '128', 'name': 'deleted snapshot'},
86
 
                    {'id': '129', 'name': 'pending_delete snapshot'},
87
 
                    {'id': '130', 'name': None}]
 
80
        expected = [{'id': 123, 'name': 'public image'},
 
81
                    {'id': 124, 'name': 'queued snapshot'},
 
82
                    {'id': 125, 'name': 'saving snapshot'},
 
83
                    {'id': 126, 'name': 'active snapshot'},
 
84
                    {'id': 127, 'name': 'killed snapshot'},
 
85
                    {'id': 128, 'name': 'deleted snapshot'},
 
86
                    {'id': 129, 'name': 'pending_delete snapshot'},
 
87
                    {'id': 130, 'name': None}]
88
88
 
89
89
        self.assertDictListMatch(response_list, expected)
90
90
 
99
99
 
100
100
        expected_image = {
101
101
            "image": {
102
 
                "id": "123",
 
102
                "id": 123,
103
103
                "name": "public image",
104
104
                "updated": NOW_API_FORMAT,
105
105
                "created": NOW_API_FORMAT,
131
131
                "status": "SAVING",
132
132
                "progress": 0,
133
133
                'server': {
134
 
                    'id': 42,
 
134
                    'id': '42',
135
135
                    "links": [{
136
136
                        "rel": "self",
137
137
                        "href": server_href,
406
406
        response_list = response_dict["images"]
407
407
 
408
408
        expected = [{
409
 
            'id': '123',
 
409
            'id': 123,
410
410
            'name': 'public image',
411
411
            'updated': NOW_API_FORMAT,
412
412
            'created': NOW_API_FORMAT,
414
414
            'progress': 100,
415
415
        },
416
416
        {
417
 
            'id': '124',
 
417
            'id': 124,
418
418
            'name': 'queued snapshot',
419
419
            'updated': NOW_API_FORMAT,
420
420
            'created': NOW_API_FORMAT,
422
422
            'progress': 0,
423
423
        },
424
424
        {
425
 
            'id': '125',
 
425
            'id': 125,
426
426
            'name': 'saving snapshot',
427
427
            'updated': NOW_API_FORMAT,
428
428
            'created': NOW_API_FORMAT,
430
430
            'progress': 0,
431
431
        },
432
432
        {
433
 
            'id': '126',
 
433
            'id': 126,
434
434
            'name': 'active snapshot',
435
435
            'updated': NOW_API_FORMAT,
436
436
            'created': NOW_API_FORMAT,
438
438
            'progress': 100,
439
439
        },
440
440
        {
441
 
            'id': '127',
 
441
            'id': 127,
442
442
            'name': 'killed snapshot',
443
443
            'updated': NOW_API_FORMAT,
444
444
            'created': NOW_API_FORMAT,
446
446
            'progress': 0,
447
447
        },
448
448
        {
449
 
            'id': '128',
 
449
            'id': 128,
450
450
            'name': 'deleted snapshot',
451
451
            'updated': NOW_API_FORMAT,
452
452
            'created': NOW_API_FORMAT,
454
454
            'progress': 0,
455
455
        },
456
456
        {
457
 
            'id': '129',
 
457
            'id': 129,
458
458
            'name': 'pending_delete snapshot',
459
459
            'updated': NOW_API_FORMAT,
460
460
            'created': NOW_API_FORMAT,
462
462
            'progress': 0,
463
463
        },
464
464
        {
465
 
            'id': '130',
 
465
            'id': 130,
466
466
            'name': None,
467
467
            'updated': NOW_API_FORMAT,
468
468
            'created': NOW_API_FORMAT,
511
511
            'status': 'SAVING',
512
512
            'progress': 0,
513
513
            'server': {
514
 
                'id': 42,
 
514
                'id': '42',
515
515
                "links": [{
516
516
                    "rel": "self",
517
517
                    "href": server_href,
542
542
            'status': 'SAVING',
543
543
            'progress': 0,
544
544
            'server': {
545
 
                'id': 42,
 
545
                'id': '42',
546
546
                "links": [{
547
547
                    "rel": "self",
548
548
                    "href": server_href,
573
573
            'status': 'ACTIVE',
574
574
            'progress': 100,
575
575
            'server': {
576
 
                'id': 42,
 
576
                'id': '42',
577
577
                "links": [{
578
578
                    "rel": "self",
579
579
                    "href": server_href,
604
604
            'status': 'ERROR',
605
605
            'progress': 0,
606
606
            'server': {
607
 
                'id': 42,
 
607
                'id': '42',
608
608
                "links": [{
609
609
                    "rel": "self",
610
610
                    "href": server_href,
635
635
            'status': 'DELETED',
636
636
            'progress': 0,
637
637
            'server': {
638
 
                'id': 42,
 
638
                'id': '42',
639
639
                "links": [{
640
640
                    "rel": "self",
641
641
                    "href": server_href,
666
666
            'status': 'DELETED',
667
667
            'progress': 0,
668
668
            'server': {
669
 
                'id': 42,
 
669
                'id': '42',
670
670
                "links": [{
671
671
                    "rel": "self",
672
672
                    "href": server_href,
914
914
        app = fakes.wsgi_app(fake_auth_context=self._get_fake_context())
915
915
        res = req.get_response(app)
916
916
        image_meta = json.loads(res.body)['image']
917
 
        expected = {'id': '123', 'name': 'public image',
 
917
        expected = {'id': 123, 'name': 'public image',
918
918
                    'updated': NOW_API_FORMAT,
919
919
                    'created': NOW_API_FORMAT, 'status': 'ACTIVE',
920
920
                    'progress': 100}