~0x44/nova/extdoc

« back to all changes in this revision

Viewing changes to nova/api/openstack/views/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:
71
71
        }
72
72
 
73
73
        self._build_server(image, image_obj)
 
74
        self._build_image_id(image, image_obj)
74
75
 
75
76
        if detail:
76
77
            image.update({
96
97
        except (KeyError, ValueError):
97
98
            pass
98
99
 
 
100
    def _build_image_id(self, image, image_obj):
 
101
        try:
 
102
            image['id'] = int(image_obj['id'])
 
103
        except ValueError:
 
104
            pass
 
105
 
99
106
 
100
107
class ViewBuilderV11(ViewBuilder):
101
108
    """OpenStack API v1.1 Image Builder"""
119
126
        except KeyError:
120
127
            return
121
128
 
 
129
    def _build_image_id(self, image, image_obj):
 
130
        image['id'] = "%s" % image_obj['id']
 
131
 
122
132
    def generate_href(self, image_id):
123
133
        """Return an href string pointing to this object."""
124
134
        return os.path.join(self.base_url, self.project_id,