)]}'
{"glance/store/__init__.py":[{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"46741cdb066bb1d4ee468674f543f0daa749d7b9","unresolved":false,"context_lines":[{"line_number":600,"context_line":"                data, size \u003d self.store_api.get_from_backend(self.context,"},{"line_number":601,"context_line":"                                                             loc)"},{"line_number":602,"context_line":"                return data"},{"line_number":603,"context_line":"            except Exception as e:"},{"line_number":604,"context_line":"                err \u003d e"},{"line_number":605,"context_line":"        # tried all locations"},{"line_number":606,"context_line":"        raise err"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fu6Y%3D","line":603,"updated":"2013-07-12 08:32:35.000000000","message":"In the case of the first location failing and the second one working the error associated with the first one is lost.  If this is ever to happen we should probably log the error.  It seems that each image location is expected to work and if it is not working that is a significant enough error to warrant notifying the operator (and perhaps even adjusting the location list).","commit_id":"44b4871e308e6d0ea09055c0dca4250938ae03b0"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"daac83e35db25cb5f46e415d4be7acba8eda3b6c","unresolved":false,"context_lines":[{"line_number":600,"context_line":"                data, size \u003d self.store_api.get_from_backend(self.context,"},{"line_number":601,"context_line":"                                                             loc)"},{"line_number":602,"context_line":"                return data"},{"line_number":603,"context_line":"            except Exception as e:"},{"line_number":604,"context_line":"                err \u003d e"},{"line_number":605,"context_line":"        # tried all locations"},{"line_number":606,"context_line":"        raise err"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fuuc%3D","line":603,"in_reply_to":"AAAAP3%2F%2Fu6Y%3D","updated":"2013-07-12 09:26:07.000000000","message":"Done","commit_id":"44b4871e308e6d0ea09055c0dca4250938ae03b0"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"80ab1854715a841ff44e468fea3537962856d201","unresolved":false,"context_lines":[{"line_number":607,"context_line":"                err \u003d e"},{"line_number":608,"context_line":"        # tried all locations"},{"line_number":609,"context_line":"        LOG.error(_(\u0027Glance tried all locations to get data for image %s \u0027"},{"line_number":610,"context_line":"                    \u0027but all be failed.\u0027) % self.image.image_id)"},{"line_number":611,"context_line":"        raise err"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FusU%3D","line":610,"updated":"2013-07-12 09:36:06.000000000","message":"s/all be failed/all have failed","commit_id":"1f1c4d927e9e9980f18536211af0ed293d4deb14"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"c3630117b75d06acb7e8cc790da5b9acd5c4e9aa","unresolved":false,"context_lines":[{"line_number":607,"context_line":"                err \u003d e"},{"line_number":608,"context_line":"        # tried all locations"},{"line_number":609,"context_line":"        LOG.error(_(\u0027Glance tried all locations to get data for image %s \u0027"},{"line_number":610,"context_line":"                    \u0027but all be failed.\u0027) % self.image.image_id)"},{"line_number":611,"context_line":"        raise err"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2Fur0%3D","line":610,"in_reply_to":"AAAAP3%2F%2FusU%3D","updated":"2013-07-12 09:37:40.000000000","message":"Done","commit_id":"1f1c4d927e9e9980f18536211af0ed293d4deb14"}],"glance/tests/unit/test_store_image.py":[{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"46741cdb066bb1d4ee468674f543f0daa749d7b9","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        self.assertEquals(image.status, \u0027pending_delete\u0027)"},{"line_number":102,"context_line":"        self.store_api.get_from_backend({}, image.locations[0])  # no exception"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def _add_image(self, context, image_id, data, len):"},{"line_number":105,"context_line":"        image_stub \u003d ImageStub(image_id, status\u003d\u0027queued\u0027, locations\u003d[])"},{"line_number":106,"context_line":"        image \u003d glance.store.ImageProxy(image_stub,"},{"line_number":107,"context_line":"                                        context, self.store_api)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fu50%3D","line":104,"updated":"2013-07-12 08:32:35.000000000","message":"can you adjust the code so that method stays in its original place?  it will make the diff much easier to read.","commit_id":"44b4871e308e6d0ea09055c0dca4250938ae03b0"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"daac83e35db25cb5f46e415d4be7acba8eda3b6c","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        self.assertEquals(image.status, \u0027pending_delete\u0027)"},{"line_number":102,"context_line":"        self.store_api.get_from_backend({}, image.locations[0])  # no exception"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def _add_image(self, context, image_id, data, len):"},{"line_number":105,"context_line":"        image_stub \u003d ImageStub(image_id, status\u003d\u0027queued\u0027, locations\u003d[])"},{"line_number":106,"context_line":"        image \u003d glance.store.ImageProxy(image_stub,"},{"line_number":107,"context_line":"                                        context, self.store_api)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fu3g%3D","line":104,"in_reply_to":"AAAAP3%2F%2Fu50%3D","updated":"2013-07-12 09:26:07.000000000","message":"Done","commit_id":"44b4871e308e6d0ea09055c0dca4250938ae03b0"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"46741cdb066bb1d4ee468674f543f0daa749d7b9","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertEqual(image.status, \u0027active\u0027)"},{"line_number":114,"context_line":"        return (image, image_stub)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def test_image_get_data(self):"},{"line_number":117,"context_line":"        image1 \u003d glance.store.ImageProxy(self.image_stub, {}, self.store_api)"},{"line_number":118,"context_line":"        self.assertEquals(image1.get_data(), \u0027XXX\u0027)"},{"line_number":119,"context_line":"        # Multiple location support"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fu40%3D","line":116,"updated":"2013-07-12 08:32:35.000000000","message":"The primary change here is that there is now a loop which checks many locations.  This test will only iterate once in that loop so the major part of this change is not really tested.\n\nHowever making that test might be more trouble than it is worth, but if an easy ways occurs to anyone it would be good!","commit_id":"44b4871e308e6d0ea09055c0dca4250938ae03b0"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"daac83e35db25cb5f46e415d4be7acba8eda3b6c","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertEqual(image.status, \u0027active\u0027)"},{"line_number":114,"context_line":"        return (image, image_stub)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def test_image_get_data(self):"},{"line_number":117,"context_line":"        image1 \u003d glance.store.ImageProxy(self.image_stub, {}, self.store_api)"},{"line_number":118,"context_line":"        self.assertEquals(image1.get_data(), \u0027XXX\u0027)"},{"line_number":119,"context_line":"        # Multiple location support"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fuxc%3D","line":116,"in_reply_to":"AAAAP3%2F%2Fu40%3D","updated":"2013-07-12 09:26:07.000000000","message":"Done","commit_id":"44b4871e308e6d0ea09055c0dca4250938ae03b0"}]}
