)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"37dbcfdf8b8342c5ea46d43511fc495369306d34","unresolved":false,"context_lines":[{"line_number":26,"context_line":"client-data-path network; this maintains backwards compatibility for"},{"line_number":27,"context_line":"external tools written against them."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"UpgradeImpact"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Some background daemons find work by querying Swift rather than walking"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bf51134e_885ed842","line":29,"updated":"2020-07-23 17:20:21.000000000","message":"Oh, right -- this needs to be fleshed out more. Rolling upgrades make some pretty noisy logs if you\u0027ve got\n\n replication_server \u003d true\n\nin your configs. Presumably, just for A/C layer, given the parent patch and how ssync on master is broken if you try it.","commit_id":"0ecc775c5452f8867a4b6c179e8a6bb84f5ecaf8"}],"swift/account/reaper.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"6c12f23742af59a7e72fccfb9c5b2e6a560f3162","unresolved":false,"context_lines":[{"line_number":498,"context_line":"                             \u0027X-Container-Device\u0027: cnode[\u0027device\u0027],"},{"line_number":499,"context_line":"                             \u0027X-Backend-Storage-Policy-Index\u0027: policy_index,"},{"line_number":500,"context_line":"                             \u0027X-Timestamp\u0027: timestamp.internal,"},{"line_number":501,"context_line":"                             USE_REPLICATION_NETWORK_HEADER: \u0027true\u0027})"},{"line_number":502,"context_line":"                successes +\u003d 1"},{"line_number":503,"context_line":"                self.stats_return_codes[2] \u003d \\"},{"line_number":504,"context_line":"                    self.stats_return_codes.get(2, 0) + 1"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_afb07444","line":501,"updated":"2020-06-29 20:21:20.000000000","message":"i\u0027m so pumped about this!","commit_id":"652ac1bd080e798f04d9e117030546a8b8cd1a07"}],"swift/common/direct_client.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"6c12f23742af59a7e72fccfb9c5b2e6a560f3162","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"def direct_get_account(node, part, account, marker\u003dNone, limit\u003dNone,"},{"line_number":210,"context_line":"                       prefix\u003dNone, delimiter\u003dNone, conn_timeout\u003d5,"},{"line_number":211,"context_line":"                       response_timeout\u003d15, end_marker\u003dNone, reverse\u003dNone):"},{"line_number":212,"context_line":"    \"\"\""},{"line_number":213,"context_line":"    Get listings directly from the account server."},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_4fcd58b5","line":211,"updated":"2020-06-29 20:21:20.000000000","message":"afaict this is the only remaining method that doesn\u0027t let callers choose to use the replication network","commit_id":"652ac1bd080e798f04d9e117030546a8b8cd1a07"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"61207471112659a175dc5d52e561831b3808dffd","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"def direct_get_account(node, part, account, marker\u003dNone, limit\u003dNone,"},{"line_number":210,"context_line":"                       prefix\u003dNone, delimiter\u003dNone, conn_timeout\u003d5,"},{"line_number":211,"context_line":"                       response_timeout\u003d15, end_marker\u003dNone, reverse\u003dNone):"},{"line_number":212,"context_line":"    \"\"\""},{"line_number":213,"context_line":"    Get listings directly from the account server."},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_2f1c6476","line":211,"in_reply_to":"bf51134e_4fcd58b5","updated":"2020-07-23 17:16:10.000000000","message":"Good catch! Not sure how I missed it -- maybe the fact that it didn\u0027t call gen_headers()? Which is probably another bug...","commit_id":"652ac1bd080e798f04d9e117030546a8b8cd1a07"}],"swift/container/reconciler.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"a371b5d0cc44ba486e039fcbafe88888520ca697","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        \u0027X-Etag\u0027: obj_timestamp,"},{"line_number":226,"context_line":"        \u0027X-Timestamp\u0027: x_timestamp,"},{"line_number":227,"context_line":"        \u0027X-Content-Type\u0027: q_op_type,"},{"line_number":228,"context_line":"        USE_REPLICATION_NETWORK_HEADER: \u0027true\u0027,"},{"line_number":229,"context_line":"    }"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def _check_success(*args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_eb856b08","line":228,"updated":"2020-06-25 16:43:14.000000000","message":"I think this is the right thing to do, but not if we have a configurable option","commit_id":"9fae38a8bf3866584008f5eff7f0190fe08fec09"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"151c155d46ce76720c8de993c37fcb2a4e9ab38c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from swift.common.internal_client import InternalClient, UnexpectedResponse"},{"line_number":30,"context_line":"from swift.common.request_helpers import MISPLACED_OBJECTS_ACCOUNT, \\"},{"line_number":31,"context_line":"    USE_REPLICATION_NETWORK_HEADER"},{"line_number":32,"context_line":"from swift.common.utils import get_logger, split_path, majority_size, \\"},{"line_number":33,"context_line":"    FileLikeIter, Timestamp, last_modified_date_to_timestamp, \\"},{"line_number":34,"context_line":"    LRUCache, decode_timestamps, config_true_value"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_0c5d4014","line":32,"updated":"2020-06-27 00:35:39.000000000","message":"pep8: F401 \u0027swift.common.utils.config_true_value\u0027 imported but unused","commit_id":"a8b8bccf046920b61bd525f65c82264b1e9070a5"}],"swift/container/sharder.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"64f35e5497afb85d5dde842fa58328b127ffd03d","unresolved":false,"context_lines":[{"line_number":601,"context_line":"    def _put_container(self, node, part, account, container, headers, body):"},{"line_number":602,"context_line":"        node \u003d node.copy()"},{"line_number":603,"context_line":"        node[\u0027ip\u0027] \u003d node[\u0027replication_ip\u0027]"},{"line_number":604,"context_line":"        node[\u0027port\u0027] \u003d node[\u0027replication_port\u0027]"},{"line_number":605,"context_line":"        try:"},{"line_number":606,"context_line":"            direct_put_container(node, part, account, container,"},{"line_number":607,"context_line":"                                 conn_timeout\u003dself.conn_timeout,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_47040318","line":604,"updated":"2020-06-16 01:43:32.000000000","message":"could we do something in direct client\u0027s _make_req that looks for a x-backend header or something?  I wouldn\u0027t be opposed to an explicit **kwarg that gets carried all the way down or even just *always using replication interfaces for direct requests* (e.g. reconciler has the same bug)","commit_id":"69f663a3aa19af9b767bdcb569745ae751eb23de"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"49990221a8e6c15641f6f8cee703fe576b8d372c","unresolved":false,"context_lines":[{"line_number":601,"context_line":"    def _put_container(self, node, part, account, container, headers, body):"},{"line_number":602,"context_line":"        node \u003d node.copy()"},{"line_number":603,"context_line":"        node[\u0027ip\u0027] \u003d node[\u0027replication_ip\u0027]"},{"line_number":604,"context_line":"        node[\u0027port\u0027] \u003d node[\u0027replication_port\u0027]"},{"line_number":605,"context_line":"        try:"},{"line_number":606,"context_line":"            direct_put_container(node, part, account, container,"},{"line_number":607,"context_line":"                                 conn_timeout\u003dself.conn_timeout,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_71f0d3ca","line":604,"in_reply_to":"bf51134e_47040318","updated":"2020-06-16 18:30:53.000000000","message":"It\u0027s turning into a bit of a yak -- definitely think it\u0027s a good way to go, but I think I\u0027ll have it as a follow-up for now.\n\nI should maybe look at what it\u0027d be like to get separate client and replication servers going on VSAIO... little worried about memory footprint, though.","commit_id":"69f663a3aa19af9b767bdcb569745ae751eb23de"}],"swift/obj/expirer.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"6c12f23742af59a7e72fccfb9c5b2e6a560f3162","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    HTTP_PRECONDITION_FAILED"},{"line_number":35,"context_line":"from swift.common.swob import wsgi_quote, str_to_wsgi"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"from swift.container.reconciler import direct_delete_container_entry"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"MAX_OBJECTS_TO_CACHE \u003d 100000"},{"line_number":40,"context_line":"ASYNC_DELETE_TYPE \u003d \u0027application/async-deleted\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_6ff13c01","line":37,"updated":"2020-06-29 20:21:20.000000000","message":"this method always sets the replication-network header","commit_id":"652ac1bd080e798f04d9e117030546a8b8cd1a07"}],"swift/proxy/controllers/base.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"6c12f23742af59a7e72fccfb9c5b2e6a560f3162","unresolved":false,"context_lines":[{"line_number":1271,"context_line":"        try:"},{"line_number":1272,"context_line":"            with ConnectionTimeout(self.app.conn_timeout):"},{"line_number":1273,"context_line":"                conn \u003d http_connect("},{"line_number":1274,"context_line":"                    ip, port, node[\u0027device\u0027],"},{"line_number":1275,"context_line":"                    self.partition, self.req_method, self.path,"},{"line_number":1276,"context_line":"                    headers\u003dreq_headers,"},{"line_number":1277,"context_line":"                    query_string\u003dself.req_query_string)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_6fdbfc4d","line":1274,"updated":"2020-06-29 20:21:20.000000000","message":"yeah, i\u0027m going to need to rebase waterfall-ec","commit_id":"652ac1bd080e798f04d9e117030546a8b8cd1a07"}],"test/unit/__init__.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"64f35e5497afb85d5dde842fa58328b127ffd03d","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                \u0027ip\u0027: ip,"},{"line_number":267,"context_line":"                \u0027replication_ip\u0027: repl_ip,"},{"line_number":268,"context_line":"                \u0027port\u0027: port,"},{"line_number":269,"context_line":"                \u0027replication_port\u0027: repl_port,"},{"line_number":270,"context_line":"                \u0027device\u0027: self.device_char,"},{"line_number":271,"context_line":"                \u0027zone\u0027: x % 3,"},{"line_number":272,"context_line":"                \u0027region\u0027: x % 2,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_472b6393","line":269,"updated":"2020-06-16 01:43:32.000000000","message":"this seems ok","commit_id":"69f663a3aa19af9b767bdcb569745ae751eb23de"}]}
