)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e480e9659c9db3af3fed248351c8ee5c1c74142d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     YangShengMing \u003cyang.shengming@99cloud.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-09-26 02:44:07 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP]prevent resize down with ceph backend in libvirt driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When using ceph as backend, libvirt resize down prevention is"},{"line_number":10,"context_line":"invalid, \u0027_get_instance_disk_info\u0027 cannot get \u0027file\u0027 or \u0027dev\u0027 in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a8bc5a2_6e663b52","line":7,"range":{"start_line":7,"start_character":5,"end_line":7,"end_character":60},"updated":"2016-09-26 19:30:22.000000000","message":"I just noticed this sentence isn\u0027t a clear summary of the goal of this patch. Maybe something like \"Fix libvirt resize down prevention for shared storage\". The first line of the commit message should be a brief explanation of what the patch does.","commit_id":"7e92b8988386f53aeafbbd984e03659cd8b68af7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4ee2ddfd969828d009645589d58c9ecc6f86fa32","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     YangShengMing \u003cyang.shengming@99cloud.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-09-26 02:44:07 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP]prevent resize down with ceph backend in libvirt driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When using ceph as backend, libvirt resize down prevention is"},{"line_number":10,"context_line":"invalid, \u0027_get_instance_disk_info\u0027 cannot get \u0027file\u0027 or \u0027dev\u0027 in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a8bc5a2_8eb5477f","line":7,"range":{"start_line":7,"start_character":5,"end_line":7,"end_character":60},"in_reply_to":"5a8bc5a2_6e663b52","updated":"2016-09-26 19:32:55.000000000","message":"Sorry, you can ignore my previous comment -- I misread the sentence.","commit_id":"7e92b8988386f53aeafbbd984e03659cd8b68af7"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2178c1176a62f9054b2fbb162961a9df0f8e19cd","unresolved":false,"context_lines":[{"line_number":16048,"context_line":"            source_type\u003d\u0027image\u0027, destination_type\u003d\u0027local\u0027,"},{"line_number":16049,"context_line":"            boot_index\u003d0, volume_id\u003d\u0027fake-id\u0027)]"},{"line_number":16050,"context_line":"        with mock.patch.object(objects.BlockDeviceMappingList,"},{"line_number":16051,"context_line":"                              \u0027get_by_instance_uuid\u0027, return_value\u003dbdms):"},{"line_number":16052,"context_line":"            result \u003d self.drvr._is_booted_from_volume(instance)"},{"line_number":16053,"context_line":"            self.assertFalse(result)"},{"line_number":16054,"context_line":"        bdms \u003d [objects.BlockDeviceMapping("}],"source_content_type":"text/x-python","patch_set":10,"id":"5a8bc5a2_88f29f04","line":16051,"range":{"start_line":16051,"start_character":67,"end_line":16051,"end_character":71},"updated":"2016-09-26 18:53:10.000000000","message":"You need to have get_by_instance_uuid return a BlockDeviceMappingList, not a regular list. You can do it by adding a line after L16049 like:\n\n bdms \u003d objects.BlockDeviceMappingList(objects\u003dbdms)","commit_id":"7e92b8988386f53aeafbbd984e03659cd8b68af7"},{"author":{"_account_id":17108,"name":"Shengming Yang","email":"rory.yang@elits.com","username":"YangShengMing"},"change_message_id":"2179dbf95912eed3f72195ab69e5d993ba0de3b6","unresolved":false,"context_lines":[{"line_number":16048,"context_line":"            source_type\u003d\u0027image\u0027, destination_type\u003d\u0027local\u0027,"},{"line_number":16049,"context_line":"            boot_index\u003d0, volume_id\u003d\u0027fake-id\u0027)]"},{"line_number":16050,"context_line":"        with mock.patch.object(objects.BlockDeviceMappingList,"},{"line_number":16051,"context_line":"                              \u0027get_by_instance_uuid\u0027, return_value\u003dbdms):"},{"line_number":16052,"context_line":"            result \u003d self.drvr._is_booted_from_volume(instance)"},{"line_number":16053,"context_line":"            self.assertFalse(result)"},{"line_number":16054,"context_line":"        bdms \u003d [objects.BlockDeviceMapping("}],"source_content_type":"text/x-python","patch_set":10,"id":"5a8bc5a2_d6027cb3","line":16051,"range":{"start_line":16051,"start_character":67,"end_line":16051,"end_character":71},"in_reply_to":"5a8bc5a2_88f29f04","updated":"2016-09-27 01:54:58.000000000","message":"thanks for the comment, I will replace the unit test for the function today","commit_id":"7e92b8988386f53aeafbbd984e03659cd8b68af7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2178c1176a62f9054b2fbb162961a9df0f8e19cd","unresolved":false,"context_lines":[{"line_number":16056,"context_line":"            source_type\u003d\u0027volume\u0027, destination_type\u003d\u0027volume\u0027,"},{"line_number":16057,"context_line":"            boot_index\u003d0, volume_id\u003d\u0027fake-id\u0027)]"},{"line_number":16058,"context_line":"        with mock.patch.object(objects.BlockDeviceMappingList,"},{"line_number":16059,"context_line":"                              \u0027get_by_instance_uuid\u0027, return_value\u003dbdms):"},{"line_number":16060,"context_line":"            result \u003d self.drvr._is_booted_from_volume(instance)"},{"line_number":16061,"context_line":"            self.assertTrue(result)"},{"line_number":16062,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a8bc5a2_68d63350","line":16059,"range":{"start_line":16059,"start_character":67,"end_line":16059,"end_character":71},"updated":"2016-09-26 18:53:10.000000000","message":"Similar comment","commit_id":"7e92b8988386f53aeafbbd984e03659cd8b68af7"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"872f1d80c02410921538b5f2de8b7b6c0b5ef004","unresolved":false,"context_lines":[{"line_number":2824,"context_line":"        is booting from a volume."},{"line_number":2825,"context_line":"        \"\"\""},{"line_number":2826,"context_line":"        context \u003d nova_context.get_admin_context()"},{"line_number":2827,"context_line":"        bdms \u003d objects.BlockDeviceMappingList.get_by_instance_uuid("},{"line_number":2828,"context_line":"                context, instance.uuid)"},{"line_number":2829,"context_line":"        return (bdms and any(bdm.is_volume and bdm.is_root"},{"line_number":2830,"context_line":"                for bdm in bdms))"},{"line_number":2831,"context_line":""},{"line_number":2832,"context_line":"    @staticmethod"},{"line_number":2833,"context_line":"    def _has_local_disk(instance, disk_mapping):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a8bc5a2_11ad65e9","line":2830,"range":{"start_line":2827,"start_character":8,"end_line":2830,"end_character":33},"updated":"2016-09-22 23:34:52.000000000","message":"We have a utility function you can call for this in nova/compute/utils.py instead:\n\n return compute_utils.is_volume_backed_instance(context, instance)","commit_id":"364f15d36c7c257b0004d78c95509ba4defa24b0"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"0adf23cb1d50e3098a762f6a3d78b92d2a4c1149","unresolved":false,"context_lines":[{"line_number":2853,"context_line":"        Determines whether the admin context indicates that the VM"},{"line_number":2854,"context_line":"        is booting from a volume."},{"line_number":2855,"context_line":"        \"\"\""},{"line_number":2856,"context_line":"        context \u003d nova_context.get_admin_context()"},{"line_number":2857,"context_line":"        return compute_utils.is_volume_backed_instance(context, instance)"},{"line_number":2858,"context_line":""},{"line_number":2859,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a8bc5a2_d087d7b2","line":2856,"range":{"start_line":2856,"start_character":8,"end_line":2856,"end_character":50},"updated":"2016-09-27 10:06:22.000000000","message":"I\u0027d prefer to use existing context object here instead.","commit_id":"2850ff1e3ebd1c5683920a14ad737c7a20e5fffd"}]}
