)]}'
{"glance/api/v1/images.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"56850ffa2162c348d59ad40f3ce6f39cc28b29e4","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            for scheme in [\u0027s3\u0027, \u0027swift\u0027, \u0027http\u0027]:"},{"line_number":239,"context_line":"                if source.lower().startswith(scheme):"},{"line_number":240,"context_line":"                    return source"},{"line_number":241,"context_line":"            msg \u003d (_(\"external sourcing not supported for store %s\") % source)"},{"line_number":242,"context_line":"            logger.error(msg)"},{"line_number":243,"context_line":"            raise HTTPConflict(msg, request\u003dreq, content_type\u003d\"text/plain\")"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1gc%3D","line":241,"updated":"2012-02-27 23:20:18.000000000","message":"Could we capitalize External here? also, don\u0027t really need the outer parens...","commit_id":"b8ff9d07e0776e811f928f5b9bdf25c1e2d845f8"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"ed150466c6c65e484735e28bf824bb86653e13fe","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            for scheme in [\u0027s3\u0027, \u0027swift\u0027, \u0027http\u0027]:"},{"line_number":239,"context_line":"                if source.lower().startswith(scheme):"},{"line_number":240,"context_line":"                    return source"},{"line_number":241,"context_line":"            msg \u003d (_(\"external sourcing not supported for store %s\") % source)"},{"line_number":242,"context_line":"            logger.error(msg)"},{"line_number":243,"context_line":"            raise HTTPConflict(msg, request\u003dreq, content_type\u003d\"text/plain\")"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1fQ%3D","line":241,"in_reply_to":"AAAAEn%2F%2F1gc%3D","updated":"2012-02-27 23:39:05.000000000","message":"Good points, both.","commit_id":"b8ff9d07e0776e811f928f5b9bdf25c1e2d845f8"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"fb8d56a71fe61770d931a67cfe41ea48eded3bf3","unresolved":false,"context_lines":[{"line_number":240,"context_line":"                    return source"},{"line_number":241,"context_line":"            msg \u003d _(\"External sourcing not supported for store %s\") % source"},{"line_number":242,"context_line":"            logger.error(msg)"},{"line_number":243,"context_line":"            raise HTTPConflict(msg, request\u003dreq, content_type\u003d\"text/plain\")"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @staticmethod"},{"line_number":246,"context_line":"    def _copy_from(req):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAEn%2F%2F1eI%3D","line":243,"updated":"2012-02-28 00:11:34.000000000","message":"This is more of an HTTPBadRequest. Conflict implies that you could try again later, or resolve the conflict and try again. BadRequest means the user needs to change his request before resubmitting it as it will never succeed.","commit_id":"150c0220ad64525f5f638ed73c4609e2beb5b00b"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"1140b36c2f79c7f41aa35c8a027366b42aa83062","unresolved":false,"context_lines":[{"line_number":240,"context_line":"                    return source"},{"line_number":241,"context_line":"            msg \u003d _(\"External sourcing not supported for store %s\") % source"},{"line_number":242,"context_line":"            logger.error(msg)"},{"line_number":243,"context_line":"            raise HTTPConflict(msg, request\u003dreq, content_type\u003d\"text/plain\")"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @staticmethod"},{"line_number":246,"context_line":"    def _copy_from(req):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAEn%2F%2F1MU%3D","line":243,"in_reply_to":"AAAAEn%2F%2F1eI%3D","updated":"2012-02-28 11:01:42.000000000","message":"I was thinking of conflict in terms of a constraint violation, but yes you\u0027re right it does imply something that is resolvable on the client side.\n\nAlso I just noticed that glance.common.BaseClient._do_request() blindly maps 409 to an image duplication exception.\n\nSo I\u0027ve changed to 400 \"Bad Request\" as suggested.","commit_id":"150c0220ad64525f5f638ed73c4609e2beb5b00b"}],"glance/tests/unit/test_clients.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"56850ffa2162c348d59ad40f3ce6f39cc28b29e4","unresolved":false,"context_lines":[{"line_number":183,"context_line":"             \u0027deleted\u0027: False,"},{"line_number":184,"context_line":"             \u0027checksum\u0027: None,"},{"line_number":185,"context_line":"             \u0027size\u0027: 19,"},{"line_number":186,"context_line":"             \u0027location\u0027: \"http://localhost/glance-tests/2\","},{"line_number":187,"context_line":"             \u0027properties\u0027: {}}]"},{"line_number":188,"context_line":"        self.destroy_fixtures()"},{"line_number":189,"context_line":"        self.create_fixtures()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1gU%3D","line":186,"updated":"2012-02-27 23:20:18.000000000","message":"I don\u0027t see why all of the locations needed to change...?","commit_id":"b8ff9d07e0776e811f928f5b9bdf25c1e2d845f8"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"ed150466c6c65e484735e28bf824bb86653e13fe","unresolved":false,"context_lines":[{"line_number":183,"context_line":"             \u0027deleted\u0027: False,"},{"line_number":184,"context_line":"             \u0027checksum\u0027: None,"},{"line_number":185,"context_line":"             \u0027size\u0027: 19,"},{"line_number":186,"context_line":"             \u0027location\u0027: \"http://localhost/glance-tests/2\","},{"line_number":187,"context_line":"             \u0027properties\u0027: {}}]"},{"line_number":188,"context_line":"        self.destroy_fixtures()"},{"line_number":189,"context_line":"        self.create_fixtures()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1fA%3D","line":186,"in_reply_to":"AAAAEn%2F%2F1gU%3D","updated":"2012-02-27 23:39:05.000000000","message":"To avoid the failure with 409 Conflicted as the patch disallows external source identified by file:// URIs (both location and copy-from).","commit_id":"b8ff9d07e0776e811f928f5b9bdf25c1e2d845f8"}]}
