)]}'
{"nova/virt/libvirt/imagebackend.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"8e9ae008def01cb50d097a6dde93a36c66a255ca","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        if os.path.exists(self.path):"},{"line_number":264,"context_line":"            backing_file \u003d libvirt_utils.get_disk_backing_file(self.path)"},{"line_number":265,"context_line":"            backing_parts \u003d backing_file.rpartition(\u0027_\u0027)"},{"line_number":266,"context_line":"            if not backing_file \u003d\u003d backing_parts[-1]:"},{"line_number":267,"context_line":"                legacy_backing_size \u003d int(backing_parts[-1])"},{"line_number":268,"context_line":"                legacy_base +\u003d \u0027_%d\u0027 % legacy_backing_size"},{"line_number":269,"context_line":"                legacy_backing_size *\u003d 1024 * 1024 * 1024"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2Fizk%3D","line":266,"updated":"2013-05-30 20:50:16.000000000","message":"Why not if backing_file !\u003d backing_parts[-1]","commit_id":"ea6ade7e4e8b533302a0f9097ef431e70c2e8bf1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3aefd024c06f52774971a078e023cea3c1dc61eb","unresolved":false,"context_lines":[{"line_number":264,"context_line":"            backing_file \u003d libvirt_utils.get_disk_backing_file(self.path)"},{"line_number":265,"context_line":"            backing_parts \u003d backing_file.rpartition(\u0027_\u0027)"},{"line_number":266,"context_line":"            if backing_file !\u003d backing_parts[-1]:"},{"line_number":267,"context_line":"                legacy_backing_size \u003d int(backing_parts[-1])"},{"line_number":268,"context_line":"                legacy_base +\u003d \u0027_%d\u0027 % legacy_backing_size"},{"line_number":269,"context_line":"                legacy_backing_size *\u003d 1024 * 1024 * 1024"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2F7vk%3D","line":267,"updated":"2013-06-05 19:19:23.000000000","message":"Is there any way that there could have been an underscore in a filename? Sure seems like we would want to catch the ValueError here and either try to continue or raise some sort of meaningful error, no?","commit_id":"ae63c31e9095dc5c9e829f9cb5c5761f9383ae31"},{"author":{"_account_id":1525,"name":"Rafi Khardalian","email":"rafi@metacloud.com","username":"rkhardalian"},"change_message_id":"d77baab3796dec6c7cc8c79bda284c6fc0b29878","unresolved":false,"context_lines":[{"line_number":264,"context_line":"            backing_file \u003d libvirt_utils.get_disk_backing_file(self.path)"},{"line_number":265,"context_line":"            backing_parts \u003d backing_file.rpartition(\u0027_\u0027)"},{"line_number":266,"context_line":"            if backing_file !\u003d backing_parts[-1]:"},{"line_number":267,"context_line":"                legacy_backing_size \u003d int(backing_parts[-1])"},{"line_number":268,"context_line":"                legacy_base +\u003d \u0027_%d\u0027 % legacy_backing_size"},{"line_number":269,"context_line":"                legacy_backing_size *\u003d 1024 * 1024 * 1024"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2F7ps%3D","line":267,"in_reply_to":"AAAAPX%2F%2F7vk%3D","updated":"2013-06-05 19:42:40.000000000","message":"It\u0027s not possible to be in the filename itself -- but it\u0027s a valid concern nonetheless because it can be in the instance path.  Safest way to mitigate seems to be running it against os.basename first.","commit_id":"ae63c31e9095dc5c9e829f9cb5c5761f9383ae31"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"181880c321c8078f8bd118536fb7f22469d57686","unresolved":false,"context_lines":[{"line_number":264,"context_line":"            backing_path \u003d libvirt_utils.get_disk_backing_file(self.path)"},{"line_number":265,"context_line":"            backing_file \u003d os.path.basename(backing_path)"},{"line_number":266,"context_line":"            backing_parts \u003d backing_file.rpartition(\u0027_\u0027)"},{"line_number":267,"context_line":"            if backing_file !\u003d backing_parts[-1]:"},{"line_number":268,"context_line":"                legacy_backing_size \u003d int(backing_parts[-1])"},{"line_number":269,"context_line":"                legacy_base +\u003d \u0027_%d\u0027 % legacy_backing_size"},{"line_number":270,"context_line":"                legacy_backing_size *\u003d 1024 * 1024 * 1024"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2F7K0%3D","line":267,"updated":"2013-06-05 21:59:20.000000000","message":"I think this should check isdigit(). Talked with rmk on IRC, change imminent.","commit_id":"8c5b544fe8a2e79db124bd986b575670bd20ee81"}]}
