)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76ecb3aecf777024d3a6311c82225873eddc5685","unresolved":false,"context_lines":[{"line_number":23,"context_line":"So we need to release the original constraint to allow"},{"line_number":24,"context_line":"the above special case pass the validation check then"},{"line_number":25,"context_line":"we can revert the nova client exception"},{"line_number":26,"context_line":"(https://review.openstack.org/#/c/165932/)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"This patch checks the boot_index and whether image param is"},{"line_number":29,"context_line":"given after we found the bdm has source_type: image,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7aaa499b_c1a4e409","line":26,"updated":"2015-04-10 16:16:24.000000000","message":"So we\u0027re going to revert this revert?\n\nhttps://review.openstack.org/#/c/165932/","commit_id":"cadbcc440a2fcfb8532f38111999a06557fbafc2"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"c2232d8d050b9c9a865513e4c9559cf14475421c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"So we need to release the original constraint to allow"},{"line_number":24,"context_line":"the above special case pass the validation check then"},{"line_number":25,"context_line":"we can revert the nova client exception"},{"line_number":26,"context_line":"(https://review.openstack.org/#/c/165932/)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"This patch checks the boot_index and whether image param is"},{"line_number":29,"context_line":"given after we found the bdm has source_type: image,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7aaa499b_e42a4e7e","line":26,"in_reply_to":"7aaa499b_c1a4e409","updated":"2015-04-10 16:42:41.000000000","message":"@Matt, No. We will not revert this revert.\n\nNova client need to add one entry whose boot_index\u003d\u003d0, in order to ensure the block device mapping list is valid. Otherwise, when we boot instance from image, we can not add ephemeral disk. See https://bugs.launchpad.net/nova/+bug/1442501\n\nAlthough I feel it is ugly, Ji Chen inform me that is due to a historical issue... http://lists.openstack.org/pipermail/openstack-dev/2015-March/059332.html","commit_id":"cadbcc440a2fcfb8532f38111999a06557fbafc2"}],"nova/api/openstack/compute/plugins/v3/block_device_mapping.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"722c875d05010f509a30bc5ad0b572078f80aa9a","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            block_device_mapping \u003d ["},{"line_number":65,"context_line":"                block_device.BlockDeviceDict.from_api(bdm_dict,"},{"line_number":66,"context_line":"                    image_uuid_specified)"},{"line_number":67,"context_line":"                for bdm_dict in bdm]"},{"line_number":68,"context_line":"        except exception.InvalidBDMFormat as e:"},{"line_number":69,"context_line":"            raise exc.HTTPBadRequest(explanation\u003de.format_message())"}],"source_content_type":"text/x-python","patch_set":3,"id":"da9b358b_55263ebb","line":66,"updated":"2015-03-29 12:03:38.000000000","message":"I guess that we could have written this\nserver_dict.get(\u0027imageRef\u0027) !\u003d None","commit_id":"cadbcc440a2fcfb8532f38111999a06557fbafc2"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"c2232d8d050b9c9a865513e4c9559cf14475421c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            block_device_mapping \u003d ["},{"line_number":65,"context_line":"                block_device.BlockDeviceDict.from_api(bdm_dict,"},{"line_number":66,"context_line":"                    image_uuid_specified)"},{"line_number":67,"context_line":"                for bdm_dict in bdm]"},{"line_number":68,"context_line":"        except exception.InvalidBDMFormat as e:"},{"line_number":69,"context_line":"            raise exc.HTTPBadRequest(explanation\u003de.format_message())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aaa499b_2173884f","line":66,"in_reply_to":"da9b358b_55263ebb","updated":"2015-04-10 16:42:41.000000000","message":"Agree with Gary","commit_id":"cadbcc440a2fcfb8532f38111999a06557fbafc2"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"0123893eba555280cdd194e24c2bedffa57cc091","unresolved":false,"context_lines":[{"line_number":383,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dexpl)"},{"line_number":384,"context_line":"        return user_data"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def _extract_bdm(self, server_dict, has_image):"},{"line_number":387,"context_line":"        legacy_bdm \u003d True"},{"line_number":388,"context_line":"        block_device_mapping \u003d None"},{"line_number":389,"context_line":"        block_device_mapping_v2 \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a75e904_956cae38","line":386,"updated":"2015-03-21 11:26:07.000000000","message":"maybe call it image_uuid_specified. has image seems to vague to me.","commit_id":"3bd480409acdd7fdcf7c068f6c735c67f324a9fe"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"0123893eba555280cdd194e24c2bedffa57cc091","unresolved":false,"context_lines":[{"line_number":543,"context_line":"        user_data \u003d self._extract(server_dict, \u0027os-user-data\u0027, \u0027user_data\u0027)"},{"line_number":544,"context_line":"        self._validate_user_data(user_data)"},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"        has_image \u003d False if image_uuid is \u0027\u0027 else True"},{"line_number":547,"context_line":"        legacy_bdm, block_device_mapping \u003d self._extract_bdm(server_dict,"},{"line_number":548,"context_line":"            has_image)"},{"line_number":549,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a75e904_b569aa27","line":546,"updated":"2015-03-21 11:26:07.000000000","message":"could be just bool(image_uuid) really... (just a nit)","commit_id":"3bd480409acdd7fdcf7c068f6c735c67f324a9fe"}],"nova/block_device.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"0123893eba555280cdd194e24c2bedffa57cc091","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        return cls(new_bdm, non_computable_fields)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    @classmethod"},{"line_number":174,"context_line":"    def from_api(cls, api_dict, has_image):"},{"line_number":175,"context_line":"        \"\"\"Transform the API format of data to the internally used one."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        Only validate if the source_type field makes sense."}],"source_content_type":"text/x-python","patch_set":1,"id":"7a75e904_3565ba45","line":174,"updated":"2015-03-21 11:26:07.000000000","message":"same here - \u0027has_image\u0027 seems to vague to me here to be useful","commit_id":"3bd480409acdd7fdcf7c068f6c735c67f324a9fe"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"62c21123e16b70ceaa15fb39650ff1ac7d473bfc","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            if source_type \u003d\u003d \u0027image\u0027 and destination_type \u003d\u003d \u0027local\u0027:"},{"line_number":197,"context_line":"                boot_index \u003d api_dict.get(\u0027boot_index\u0027, -1)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"                # if this bdm is generated from --image ,then"},{"line_number":200,"context_line":"                # source_type \u003d image and destination_type \u003d local is allowed"},{"line_number":201,"context_line":"                if not (image_uuid_specified and boot_index \u003d\u003d 0):"},{"line_number":202,"context_line":"                    raise exception.InvalidBDMFormat("}],"source_content_type":"text/x-python","patch_set":3,"id":"7aaa499b_01376cb1","line":199,"updated":"2015-04-10 16:20:17.000000000","message":"Everyone can post rest api request which include image entry in block device mapping list. It is Nova limitation which forces everyone to add an entry whose boot_index\u003d\u003d0 in api request. I feel the comment here need not mention nova client.","commit_id":"cadbcc440a2fcfb8532f38111999a06557fbafc2"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"3d77c514f3beeef8faf0472b4bcfca3f233df893","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                boot_index \u003d api_dict.get(\u0027boot_index\u0027, -1)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"                # if this bdm is generated from --image ,then"},{"line_number":200,"context_line":"                # source_type \u003d image and destination_type \u003d local is allowed"},{"line_number":201,"context_line":"                if not (image_uuid_specified and boot_index \u003d\u003d 0):"},{"line_number":202,"context_line":"                    raise exception.InvalidBDMFormat("},{"line_number":203,"context_line":"                        details\u003d_(\"Mapping image to local is not supported.\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6ced46_ffe61aaf","line":200,"updated":"2015-03-25 14:51:46.000000000","message":"This comment could use more clarity - mainly making it clear that this is generated by pyton-novaclient and that we are specialcasing it here.\n\nOnly if you respin though.","commit_id":"cadbcc440a2fcfb8532f38111999a06557fbafc2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6ab694efb29c588ce03aabba0a5b5aca61ce2226","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                boot_index \u003d api_dict.get(\u0027boot_index\u0027, -1)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"                # if this bdm is generated from --image ,then"},{"line_number":200,"context_line":"                # source_type \u003d image and destination_type \u003d local is allowed"},{"line_number":201,"context_line":"                if not (image_uuid_specified and boot_index \u003d\u003d 0):"},{"line_number":202,"context_line":"                    raise exception.InvalidBDMFormat("},{"line_number":203,"context_line":"                        details\u003d_(\"Mapping image to local is not supported.\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aaa499b_a172f8ab","line":200,"in_reply_to":"1a6ced46_ffe61aaf","updated":"2015-04-10 16:15:48.000000000","message":"Hmm, why do we care so much about novaclient here?  Couldn\u0027t people just patch novaclient with https://review.openstack.org/#/c/165932/ or move up to a version that has that in it?\n\nAs in, this wasn\u0027t a problem for people using the REST API directly outside of novaclient, right?","commit_id":"cadbcc440a2fcfb8532f38111999a06557fbafc2"}]}
