)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12732,"name":"Bin Zhou","email":"zhou.bin9@zte.com.cn","username":"BinZhou"},"change_message_id":"af16749113de90f9a4a7de3d0ba0ae6230cdb0e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7aa08908_ad6552e2","updated":"2016-06-06 11:40:26.000000000","message":"Subsequent lines should be wrapped at 72 characters, not 50 characters.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c9b37b569765dd2c8bfbaf468abe96fad76991ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7aa08908_4622ba02","in_reply_to":"7aa08908_ad6552e2","updated":"2016-06-06 16:24:38.000000000","message":"Doesn\u0027t deserve a -1 for this, the concern is more for when the body exceeds 72 characters.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"},{"author":{"_account_id":20146,"name":"yuyafei","email":"yu.yafei@foxmail.com","username":"yuyafei"},"change_message_id":"b96f07ffbd9ad674e6e65de36547c1f4c319c11e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhengyao1 \u003czheng.yao1@zte.com.cn\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-19 16:21:51 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"support create a volume from image snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The image was created from instance snapshot,"},{"line_number":10,"context_line":"as a result of the instance boot from volume,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7aa08908_a83c2030","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":43},"updated":"2016-06-06 12:00:35.000000000","message":"The commit message is  difficult to understand.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c9b37b569765dd2c8bfbaf468abe96fad76991ac","unresolved":false,"context_lines":[{"line_number":12,"context_line":"snapshot.When the user create volume from"},{"line_number":13,"context_line":"the snapshot image, we will create volume"},{"line_number":14,"context_line":"from the volume snapshot."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ic44dfae8bb187a5aa9c2c1f50f7b5dc0ef0f28f8"},{"line_number":17,"context_line":"Closes-Bug: #1560867"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7aa08908_068712d8","line":15,"updated":"2016-06-06 16:24:38.000000000","message":"Is there a blueprint for this?","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"}],"cinder/api/v2/volumes.py":[{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"4770564fea4c524a8b4de863a422c7e0ca533214","unresolved":false,"context_lines":[{"line_number":273,"context_line":"            image_ref \u003d volume.get(\u0027imageRef\u0027)"},{"line_number":274,"context_line":"            if image_ref is not None:"},{"line_number":275,"context_line":"                image_uuid \u003d self._image_uuid_from_ref(image_ref, context)"},{"line_number":276,"context_line":"            image_meta \u003d self._get_image(context, image_uuid)"},{"line_number":277,"context_line":"            bdms \u003d image_meta.get(\u0027properties\u0027, {}).get("},{"line_number":278,"context_line":"                \u0027block_device_mapping\u0027, [])"},{"line_number":279,"context_line":"            if bdms:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_f9d6e025","line":276,"updated":"2016-05-19 08:29:24.000000000","message":"The logic seems not correct.\n\nLine 276 - 293 should be executed when image_ref is not None.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"},{"author":{"_account_id":12732,"name":"Bin Zhou","email":"zhou.bin9@zte.com.cn","username":"BinZhou"},"change_message_id":"af16749113de90f9a4a7de3d0ba0ae6230cdb0e8","unresolved":false,"context_lines":[{"line_number":273,"context_line":"            image_ref \u003d volume.get(\u0027imageRef\u0027)"},{"line_number":274,"context_line":"            if image_ref is not None:"},{"line_number":275,"context_line":"                image_uuid \u003d self._image_uuid_from_ref(image_ref, context)"},{"line_number":276,"context_line":"            image_meta \u003d self._get_image(context, image_uuid)"},{"line_number":277,"context_line":"            bdms \u003d image_meta.get(\u0027properties\u0027, {}).get("},{"line_number":278,"context_line":"                \u0027block_device_mapping\u0027, [])"},{"line_number":279,"context_line":"            if bdms:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_8d5856fc","line":276,"range":{"start_line":276,"start_character":50,"end_line":276,"end_character":60},"updated":"2016-06-06 11:40:26.000000000","message":"agree with LisaLi, if image_ref is None, the image_uuid would be called without defined.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"}],"cinder/tests/unit/api/v2/test_volumes.py":[{"author":{"_account_id":12732,"name":"Bin Zhou","email":"zhou.bin9@zte.com.cn","username":"BinZhou"},"change_message_id":"af16749113de90f9a4a7de3d0ba0ae6230cdb0e8","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        \u0027cinder.api.openstack.wsgi.Controller.validate_name_and_description\u0027)"},{"line_number":476,"context_line":"    def test_volume_create_with_snapshot_image(self, mock_validate, create,"},{"line_number":477,"context_line":"                                               get_snapshot, volume_type_get):"},{"line_number":478,"context_line":"        create.side_effect \u003d stubs.stub_volume_api_create"},{"line_number":479,"context_line":"        get_snapshot.side_effect \u003d stubs.stub_snapshot_get"},{"line_number":480,"context_line":"        volume_type_get.side_effect \u003d stubs.stub_volume_type_get"},{"line_number":481,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_4de94e1a","line":478,"range":{"start_line":478,"start_character":29,"end_line":478,"end_character":34},"updated":"2016-06-06 11:40:26.000000000","message":"stubs is not recommanded.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c9b37b569765dd2c8bfbaf468abe96fad76991ac","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        \u0027cinder.api.openstack.wsgi.Controller.validate_name_and_description\u0027)"},{"line_number":476,"context_line":"    def test_volume_create_with_snapshot_image(self, mock_validate, create,"},{"line_number":477,"context_line":"                                               get_snapshot, volume_type_get):"},{"line_number":478,"context_line":"        create.side_effect \u003d stubs.stub_volume_api_create"},{"line_number":479,"context_line":"        get_snapshot.side_effect \u003d stubs.stub_snapshot_get"},{"line_number":480,"context_line":"        volume_type_get.side_effect \u003d stubs.stub_volume_type_get"},{"line_number":481,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_66dc16e5","line":478,"range":{"start_line":478,"start_character":29,"end_line":478,"end_character":34},"in_reply_to":"7aa08908_4de94e1a","updated":"2016-06-06 16:24:38.000000000","message":"Should be using mock instead.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c9b37b569765dd2c8bfbaf468abe96fad76991ac","unresolved":false,"context_lines":[{"line_number":476,"context_line":"    def test_volume_create_with_snapshot_image(self, mock_validate, create,"},{"line_number":477,"context_line":"                                               get_snapshot, volume_type_get):"},{"line_number":478,"context_line":"        create.side_effect \u003d stubs.stub_volume_api_create"},{"line_number":479,"context_line":"        get_snapshot.side_effect \u003d stubs.stub_snapshot_get"},{"line_number":480,"context_line":"        volume_type_get.side_effect \u003d stubs.stub_volume_type_get"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"        self.ext_mgr.extensions \u003d {\u0027os-image-create\u0027: \u0027fake\u0027}"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_e6ee468a","line":479,"range":{"start_line":479,"start_character":35,"end_line":479,"end_character":40},"updated":"2016-06-06 16:24:38.000000000","message":"Should be using mock instead.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c9b37b569765dd2c8bfbaf468abe96fad76991ac","unresolved":false,"context_lines":[{"line_number":477,"context_line":"                                               get_snapshot, volume_type_get):"},{"line_number":478,"context_line":"        create.side_effect \u003d stubs.stub_volume_api_create"},{"line_number":479,"context_line":"        get_snapshot.side_effect \u003d stubs.stub_snapshot_get"},{"line_number":480,"context_line":"        volume_type_get.side_effect \u003d stubs.stub_volume_type_get"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"        self.ext_mgr.extensions \u003d {\u0027os-image-create\u0027: \u0027fake\u0027}"},{"line_number":483,"context_line":"        vol \u003d self._vol_in_request_body("}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_06ec328e","line":480,"range":{"start_line":480,"start_character":38,"end_line":480,"end_character":43},"updated":"2016-06-06 16:24:38.000000000","message":"Should be using mock instead.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c9b37b569765dd2c8bfbaf468abe96fad76991ac","unresolved":false,"context_lines":[{"line_number":493,"context_line":"        get_snapshot.assert_called_once_with(self.controller.volume_api,"},{"line_number":494,"context_line":"                                             context, snapshot_id)"},{"line_number":495,"context_line":"        kwargs \u003d self._expected_volume_api_create_kwargs("},{"line_number":496,"context_line":"            stubs.stub_snapshot(snapshot_id))"},{"line_number":497,"context_line":"        create.assert_called_once_with(self.controller.volume_api, context,"},{"line_number":498,"context_line":"                                       vol[\u0027size\u0027], stubs.DEFAULT_VOL_NAME,"},{"line_number":499,"context_line":"                                       stubs.DEFAULT_VOL_DESCRIPTION, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_e6bc866e","line":496,"range":{"start_line":496,"start_character":12,"end_line":496,"end_character":17},"updated":"2016-06-06 16:24:38.000000000","message":"Should be using mock instead.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c9b37b569765dd2c8bfbaf468abe96fad76991ac","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        kwargs \u003d self._expected_volume_api_create_kwargs("},{"line_number":496,"context_line":"            stubs.stub_snapshot(snapshot_id))"},{"line_number":497,"context_line":"        create.assert_called_once_with(self.controller.volume_api, context,"},{"line_number":498,"context_line":"                                       vol[\u0027size\u0027], stubs.DEFAULT_VOL_NAME,"},{"line_number":499,"context_line":"                                       stubs.DEFAULT_VOL_DESCRIPTION, **kwargs)"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"    def test_volume_create_with_image_id_is_integer(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_86f8224b","line":498,"range":{"start_line":498,"start_character":52,"end_line":498,"end_character":57},"updated":"2016-06-06 16:24:38.000000000","message":"Should be using mock instead.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c9b37b569765dd2c8bfbaf468abe96fad76991ac","unresolved":false,"context_lines":[{"line_number":496,"context_line":"            stubs.stub_snapshot(snapshot_id))"},{"line_number":497,"context_line":"        create.assert_called_once_with(self.controller.volume_api, context,"},{"line_number":498,"context_line":"                                       vol[\u0027size\u0027], stubs.DEFAULT_VOL_NAME,"},{"line_number":499,"context_line":"                                       stubs.DEFAULT_VOL_DESCRIPTION, **kwargs)"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"    def test_volume_create_with_image_id_is_integer(self):"},{"line_number":502,"context_line":"        self.stubs.Set(volume_api.API, \"create\", stubs.stub_volume_create)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_06ba726e","line":499,"range":{"start_line":499,"start_character":39,"end_line":499,"end_character":44},"updated":"2016-06-06 16:24:38.000000000","message":"Should be using mock instead.","commit_id":"e1914c9f1aec75c142ece752e461b7d32bf51f96"}]}
