)]}'
{"swift/container/server.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f5aadcc7737940c1df41776a058cf22c3551351d","unresolved":false,"context_lines":[{"line_number":455,"context_line":""},{"line_number":456,"context_line":"        # When using the \"since\" parameter, the records may include additional"},{"line_number":457,"context_line":"        # values, i.e. \"deleted\", \"storage_policy_index\", and \"ROWID\""},{"line_number":458,"context_line":"        if len(record) \u003e 5:"},{"line_number":459,"context_line":"            deleted, policy_index, rowid \u003d record[5:]"},{"line_number":460,"context_line":"            response[\u0027deleted\u0027] \u003d deleted"},{"line_number":461,"context_line":"            response[\u0027policy_index\u0027] \u003d policy_index"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_1e22f1b9","line":458,"updated":"2016-04-11 23:59:05.000000000","message":"can you plumb a kwarg into this method so this is explicit - or maybe better to use a different update_data_record method altogether?\n\nit\u0027s also duplicating/propagating/coupling the magic integer 5","commit_id":"85657ff28fa3856087b10bf3e7643b64c8aba9e8"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"78044525b7b7eeb1933e5f74cee18fc0e5651654","unresolved":false,"context_lines":[{"line_number":455,"context_line":""},{"line_number":456,"context_line":"        # When using the \"since\" parameter, the records may include additional"},{"line_number":457,"context_line":"        # values, i.e. \"deleted\", \"storage_policy_index\", and \"ROWID\""},{"line_number":458,"context_line":"        if len(record) \u003e 5:"},{"line_number":459,"context_line":"            deleted, policy_index, rowid \u003d record[5:]"},{"line_number":460,"context_line":"            response[\u0027deleted\u0027] \u003d deleted"},{"line_number":461,"context_line":"            response[\u0027policy_index\u0027] \u003d policy_index"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_647ef4af","line":458,"in_reply_to":"5a18252c_1e22f1b9","updated":"2016-04-12 01:15:05.000000000","message":"I\u0027ll refactor this given your followup comments as well. There is no reason for us to be committed to the same format as the public API and I\u0027d prefer to rework this to always return json in a separate method.","commit_id":"85657ff28fa3856087b10bf3e7643b64c8aba9e8"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f5aadcc7737940c1df41776a058cf22c3551351d","unresolved":false,"context_lines":[{"line_number":479,"context_line":"        limit \u003d constraints.CONTAINER_LISTING_LIMIT"},{"line_number":480,"context_line":"        given_limit \u003d get_param(req, \u0027limit\u0027)"},{"line_number":481,"context_line":"        reverse \u003d config_true_value(get_param(req, \u0027reverse\u0027))"},{"line_number":482,"context_line":"        since \u003d get_param(req, \u0027since\u0027)"},{"line_number":483,"context_line":"        if given_limit and given_limit.isdigit():"},{"line_number":484,"context_line":"            limit \u003d int(given_limit)"},{"line_number":485,"context_line":"            if limit \u003e constraints.CONTAINER_LISTING_LIMIT:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_0909192d","line":482,"updated":"2016-04-11 23:59:05.000000000","message":"maybe we could guard this with a check for an X-Backend- header so as not to expose it to clients directly without a (future TBD) middleware in the proxy that would\n\na) enable the feature and expose it via /info\n\nb) add the X-Backend header so the container will allow the qs param","commit_id":"85657ff28fa3856087b10bf3e7643b64c8aba9e8"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"78044525b7b7eeb1933e5f74cee18fc0e5651654","unresolved":false,"context_lines":[{"line_number":479,"context_line":"        limit \u003d constraints.CONTAINER_LISTING_LIMIT"},{"line_number":480,"context_line":"        given_limit \u003d get_param(req, \u0027limit\u0027)"},{"line_number":481,"context_line":"        reverse \u003d config_true_value(get_param(req, \u0027reverse\u0027))"},{"line_number":482,"context_line":"        since \u003d get_param(req, \u0027since\u0027)"},{"line_number":483,"context_line":"        if given_limit and given_limit.isdigit():"},{"line_number":484,"context_line":"            limit \u003d int(given_limit)"},{"line_number":485,"context_line":"            if limit \u003e constraints.CONTAINER_LISTING_LIMIT:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_c449c890","line":482,"in_reply_to":"5a18252c_0909192d","updated":"2016-04-12 01:15:05.000000000","message":"I will need to read more about the X-Backend headers. I suspect these are stripped off by the proxy node, so we have guarantees they won\u0027t hit the container nodes? Certainly can add the header check here.","commit_id":"85657ff28fa3856087b10bf3e7643b64c8aba9e8"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f5aadcc7737940c1df41776a058cf22c3551351d","unresolved":false,"context_lines":[{"line_number":498,"context_line":"        if is_deleted:"},{"line_number":499,"context_line":"            return HTTPNotFound(request\u003dreq, headers\u003dresp_headers)"},{"line_number":500,"context_line":"        # If \"since\" was specified, the prefix, delimiter, path, marker, and"},{"line_number":501,"context_line":"        # reverse are ignored."},{"line_number":502,"context_line":"        if since:"},{"line_number":503,"context_line":"            container_list \u003d broker.get_items_since(since, limit)"},{"line_number":504,"context_line":"            if container_list:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_2948552d","line":501,"updated":"2016-04-11 23:59:05.000000000","message":"might be easier to describe this as a whitelist of since \u0026 limit or else we\u0027ll want to update the comment it if another param gets added","commit_id":"85657ff28fa3856087b10bf3e7643b64c8aba9e8"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"78044525b7b7eeb1933e5f74cee18fc0e5651654","unresolved":false,"context_lines":[{"line_number":498,"context_line":"        if is_deleted:"},{"line_number":499,"context_line":"            return HTTPNotFound(request\u003dreq, headers\u003dresp_headers)"},{"line_number":500,"context_line":"        # If \"since\" was specified, the prefix, delimiter, path, marker, and"},{"line_number":501,"context_line":"        # reverse are ignored."},{"line_number":502,"context_line":"        if since:"},{"line_number":503,"context_line":"            container_list \u003d broker.get_items_since(since, limit)"},{"line_number":504,"context_line":"            if container_list:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_a44e4c94","line":501,"in_reply_to":"5a18252c_2948552d","updated":"2016-04-12 01:15:05.000000000","message":"Done","commit_id":"85657ff28fa3856087b10bf3e7643b64c8aba9e8"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f5aadcc7737940c1df41776a058cf22c3551351d","unresolved":false,"context_lines":[{"line_number":507,"context_line":"                                   entry[\u0027etag\u0027], entry[\u0027deleted\u0027],"},{"line_number":508,"context_line":"                                   entry[\u0027storage_policy_index\u0027],"},{"line_number":509,"context_line":"                                   entry[\u0027ROWID\u0027])"},{"line_number":510,"context_line":"                                  for entry in container_list]"},{"line_number":511,"context_line":"        else:"},{"line_number":512,"context_line":"            container_list \u003d broker.list_objects_iter("},{"line_number":513,"context_line":"                limit, marker, end_marker, prefix, delimiter, path,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_7e068521","line":510,"updated":"2016-04-11 23:59:05.000000000","message":"making a duplicate of the entire page of results here in memory is just to massage it into the form that the create_listing method is used to?  Does that mean this API supports XML too - or that\u0027s just a bug waiting to happen?\n\nidk, looks legit\n\n\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e\n\u003ccontainer name\u003d\"test\"\u003e\n    \u003cobject\u003e\n        \u003cname\u003etest\u003c/name\u003e\n        \u003chash\u003e70c1db56f301c9e337b0099bd4174b28\u003c/hash\u003e\n        \u003cbytes\u003e8\u003c/bytes\u003e\n        \u003ccontent_type\u003eapplication/octet-stream\u003c/content_type\u003e\n        \u003clast_modified\u003e2016-04-11T23:42:11.602810\u003c/last_modified\u003e\n        \u003cdeleted\u003e0\u003c/deleted\u003e\n        \u003cpolicy_index\u003e0\u003c/policy_index\u003e\n        \u003crowid\u003e1\u003c/rowid\u003e\n    \u003c/object\u003e\n\u003c/container\u003e","commit_id":"85657ff28fa3856087b10bf3e7643b64c8aba9e8"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"78044525b7b7eeb1933e5f74cee18fc0e5651654","unresolved":false,"context_lines":[{"line_number":507,"context_line":"                                   entry[\u0027etag\u0027], entry[\u0027deleted\u0027],"},{"line_number":508,"context_line":"                                   entry[\u0027storage_policy_index\u0027],"},{"line_number":509,"context_line":"                                   entry[\u0027ROWID\u0027])"},{"line_number":510,"context_line":"                                  for entry in container_list]"},{"line_number":511,"context_line":"        else:"},{"line_number":512,"context_line":"            container_list \u003d broker.list_objects_iter("},{"line_number":513,"context_line":"                limit, marker, end_marker, prefix, delimiter, path,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_84587058","line":510,"in_reply_to":"5a18252c_7e068521","updated":"2016-04-12 01:15:05.000000000","message":"Crazy, right? :)\n\nHowever, you bring up a good point, as this will be an internal API, there is no reason to be beholden to the existing implementation.","commit_id":"85657ff28fa3856087b10bf3e7643b64c8aba9e8"}]}
