)]}'
{"swift/obj/updater.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a6ef8db3a1b8327e6f60bd67874c5c7615a10097","unresolved":false,"context_lines":[{"line_number":409,"context_line":""},{"line_number":410,"context_line":"    def process_batch_update(self, updates):"},{"line_number":411,"context_line":"        container_path \u003d updates[0][\u0027data\u0027][\u0027container_path\u0027]"},{"line_number":412,"context_line":"        assert all(x[\u0027data\u0027][\u0027container_path\u0027] \u003d\u003d container_path for x in updates)"},{"line_number":413,"context_line":"        acct, cont \u003d split_path(\u0027/\u0027 + container_path, minsegs\u003d2)"},{"line_number":414,"context_line":"        part, nodes \u003d self.get_container_ring().get_nodes(acct, cont)"},{"line_number":415,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_7e0c4d94","line":412,"updated":"2020-05-01 23:45:00.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"dd3b4913988be3387b48a86e7c89d8fe72118d5b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b9c51bd798d748ed60e01214a5873264aba3a2ca","unresolved":false,"context_lines":[{"line_number":409,"context_line":""},{"line_number":410,"context_line":"    def process_batch_update(self, updates):"},{"line_number":411,"context_line":"        container_path \u003d updates[0][\u0027data\u0027][\u0027container_path\u0027]"},{"line_number":412,"context_line":"        assert all(x[\u0027data\u0027][\u0027container_path\u0027] \u003d\u003d container_path for x in updates)"},{"line_number":413,"context_line":"        acct, cont \u003d split_path(\u0027/\u0027 + container_path, minsegs\u003d2)"},{"line_number":414,"context_line":"        part, nodes \u003d self.get_container_ring().get_nodes(acct, cont)"},{"line_number":415,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_c538173f","line":412,"in_reply_to":"1f493fa4_7e0c4d94","updated":"2021-06-15 01:00:31.000000000","message":"Done","commit_id":"dd3b4913988be3387b48a86e7c89d8fe72118d5b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f10f703b353825b08a5295ec65dfa695368f5fe6","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                    \u0027size\u0027: int(update[\u0027headers\u0027][\u0027X-Size\u0027]),"},{"line_number":424,"context_line":"                    \u0027storage_policy_index\u0027: update[\u0027headers\u0027]["},{"line_number":425,"context_line":"                        \u0027X-Backend-Storage-Policy-Index\u0027],"},{"line_number":426,"context_line":"                    \u0027content_type\u0027: update[\u0027headers\u0027][\u0027X-Content-Type\u0027],"},{"line_number":427,"context_line":"                }"},{"line_number":428,"context_line":"            elif update[\u0027op\u0027] \u003d\u003d \u0027DELETE\u0027:"},{"line_number":429,"context_line":"                return {"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_db8db3d4","line":426,"updated":"2020-05-02 00:10:55.000000000","message":"Needs to support ctype_timestamp and meta_timestamp","commit_id":"dd3b4913988be3387b48a86e7c89d8fe72118d5b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b9c51bd798d748ed60e01214a5873264aba3a2ca","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                    \u0027size\u0027: int(update[\u0027headers\u0027][\u0027X-Size\u0027]),"},{"line_number":424,"context_line":"                    \u0027storage_policy_index\u0027: update[\u0027headers\u0027]["},{"line_number":425,"context_line":"                        \u0027X-Backend-Storage-Policy-Index\u0027],"},{"line_number":426,"context_line":"                    \u0027content_type\u0027: update[\u0027headers\u0027][\u0027X-Content-Type\u0027],"},{"line_number":427,"context_line":"                }"},{"line_number":428,"context_line":"            elif update[\u0027op\u0027] \u003d\u003d \u0027DELETE\u0027:"},{"line_number":429,"context_line":"                return {"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_a5b6abdb","line":426,"in_reply_to":"1f493fa4_db8db3d4","updated":"2021-06-15 01:00:31.000000000","message":"Done","commit_id":"dd3b4913988be3387b48a86e7c89d8fe72118d5b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a6ef8db3a1b8327e6f60bd67874c5c7615a10097","unresolved":false,"context_lines":[{"line_number":451,"context_line":"            for node in nodes:"},{"line_number":452,"context_line":"                if node[\u0027id\u0027] not in successes:"},{"line_number":453,"context_line":"                    payloads[node[\u0027id\u0027]].append(record)"},{"line_number":454,"context_line":"                    in_payloads \u003d True"},{"line_number":455,"context_line":"        events \u003d [spawn(self.batch_update,"},{"line_number":456,"context_line":"                        node, part, container_path, payloads[node[\u0027id\u0027]])"},{"line_number":457,"context_line":"                  for node in nodes if payloads[node[\u0027id\u0027]]]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_5e1191ac","line":454,"updated":"2020-05-01 23:45:00.000000000","message":"pep8: F841 local variable \u0027in_payloads\u0027 is assigned to but never used","commit_id":"dd3b4913988be3387b48a86e7c89d8fe72118d5b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b9c51bd798d748ed60e01214a5873264aba3a2ca","unresolved":false,"context_lines":[{"line_number":451,"context_line":"            for node in nodes:"},{"line_number":452,"context_line":"                if node[\u0027id\u0027] not in successes:"},{"line_number":453,"context_line":"                    payloads[node[\u0027id\u0027]].append(record)"},{"line_number":454,"context_line":"                    in_payloads \u003d True"},{"line_number":455,"context_line":"        events \u003d [spawn(self.batch_update,"},{"line_number":456,"context_line":"                        node, part, container_path, payloads[node[\u0027id\u0027]])"},{"line_number":457,"context_line":"                  for node in nodes if payloads[node[\u0027id\u0027]]]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_e5339361","line":454,"in_reply_to":"1f493fa4_5e1191ac","updated":"2021-06-15 01:00:31.000000000","message":"Done","commit_id":"dd3b4913988be3387b48a86e7c89d8fe72118d5b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a6ef8db3a1b8327e6f60bd67874c5c7615a10097","unresolved":false,"context_lines":[{"line_number":585,"context_line":"        body \u003d json.dumps(payload).encode(\u0027ascii\u0027)"},{"line_number":586,"context_line":"        headers_out \u003d {"},{"line_number":587,"context_line":"            \u0027Content-Length\u0027: str(len(body)),"},{"line_number":588,"context_line":"            \u0027X-Backend-Storage-Policy-Index\u0027: payload[0][\u0027storage_policy_index\u0027],"},{"line_number":589,"context_line":"            \u0027X-Timestamp\u0027: Timestamp.now().internal,"},{"line_number":590,"context_line":"        }"},{"line_number":591,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_be25350d","line":588,"updated":"2020-05-01 23:45:00.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"dd3b4913988be3387b48a86e7c89d8fe72118d5b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b9c51bd798d748ed60e01214a5873264aba3a2ca","unresolved":false,"context_lines":[{"line_number":585,"context_line":"        body \u003d json.dumps(payload).encode(\u0027ascii\u0027)"},{"line_number":586,"context_line":"        headers_out \u003d {"},{"line_number":587,"context_line":"            \u0027Content-Length\u0027: str(len(body)),"},{"line_number":588,"context_line":"            \u0027X-Backend-Storage-Policy-Index\u0027: payload[0][\u0027storage_policy_index\u0027],"},{"line_number":589,"context_line":"            \u0027X-Timestamp\u0027: Timestamp.now().internal,"},{"line_number":590,"context_line":"        }"},{"line_number":591,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_85172fa4","line":588,"in_reply_to":"1f493fa4_be25350d","updated":"2021-06-15 01:00:31.000000000","message":"Done","commit_id":"dd3b4913988be3387b48a86e7c89d8fe72118d5b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f10f703b353825b08a5295ec65dfa695368f5fe6","unresolved":false,"context_lines":[{"line_number":595,"context_line":"                                    headers_out)"},{"line_number":596,"context_line":"            with Timeout(self.node_timeout):"},{"line_number":597,"context_line":"                conn.send(body)"},{"line_number":598,"context_line":"            with Timeout(self.node_timeout):"},{"line_number":599,"context_line":"                resp \u003d conn.getresponse()"},{"line_number":600,"context_line":"                resp.read()"},{"line_number":601,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_fb906ff0","line":598,"range":{"start_line":598,"start_character":25,"end_line":598,"end_character":42},"updated":"2020-05-02 00:10:55.000000000","message":"We probably want to bump this up (or have a separate config value) as we reasonably expect these updates to take longer. Maybe something as simple as\n\n self.node_timeout * len(payload)\n\nwould work? Might want to cap it though :-/","commit_id":"dd3b4913988be3387b48a86e7c89d8fe72118d5b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b9c51bd798d748ed60e01214a5873264aba3a2ca","unresolved":false,"context_lines":[{"line_number":595,"context_line":"                                    headers_out)"},{"line_number":596,"context_line":"            with Timeout(self.node_timeout):"},{"line_number":597,"context_line":"                conn.send(body)"},{"line_number":598,"context_line":"            with Timeout(self.node_timeout):"},{"line_number":599,"context_line":"                resp \u003d conn.getresponse()"},{"line_number":600,"context_line":"                resp.read()"},{"line_number":601,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_20c44992","line":598,"range":{"start_line":598,"start_character":25,"end_line":598,"end_character":42},"in_reply_to":"1f493fa4_fb906ff0","updated":"2021-06-15 01:00:31.000000000","message":"Done","commit_id":"dd3b4913988be3387b48a86e7c89d8fe72118d5b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b9c51bd798d748ed60e01214a5873264aba3a2ca","unresolved":true,"context_lines":[{"line_number":325,"context_line":"                    if obj_hash \u003d\u003d last_obj_hash:"},{"line_number":326,"context_line":"                        self.stats.unlinks +\u003d 1"},{"line_number":327,"context_line":"                        self.logger.increment(\u0027unlinks\u0027)"},{"line_number":328,"context_line":"                        os.unlink(update_path)"},{"line_number":329,"context_line":"                    else:"},{"line_number":330,"context_line":"                        last_obj_hash \u003d obj_hash"},{"line_number":331,"context_line":"                        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_c3af6392","line":328,"updated":"2021-06-15 01:00:31.000000000","message":"Hmm... https://review.opendev.org/#/c/726738/","commit_id":"eca39d05661778ce40feafb18eeb790196c0468e"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b9c51bd798d748ed60e01214a5873264aba3a2ca","unresolved":true,"context_lines":[{"line_number":327,"context_line":"                        self.logger.increment(\u0027unlinks\u0027)"},{"line_number":328,"context_line":"                        os.unlink(update_path)"},{"line_number":329,"context_line":"                    else:"},{"line_number":330,"context_line":"                        last_obj_hash \u003d obj_hash"},{"line_number":331,"context_line":"                        try:"},{"line_number":332,"context_line":"                            with open(update_path, \u0027rb\u0027) as fp:"},{"line_number":333,"context_line":"                                data \u003d pickle.load(fp)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_631bf71a","line":330,"updated":"2021-06-15 01:00:31.000000000","message":"We should only do this if we *don\u0027t* quarantine!","commit_id":"eca39d05661778ce40feafb18eeb790196c0468e"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b9c51bd798d748ed60e01214a5873264aba3a2ca","unresolved":true,"context_lines":[{"line_number":334,"context_line":"                            data.setdefault("},{"line_number":335,"context_line":"                                \u0027container_path\u0027,"},{"line_number":336,"context_line":"                                data[\u0027account\u0027] + \u0027/\u0027 + data[\u0027container\u0027])"},{"line_number":337,"context_line":"                        except Exception:"},{"line_number":338,"context_line":"                            self.logger.exception("},{"line_number":339,"context_line":"                                \u0027ERROR Pickle problem, quarantining %s\u0027,"},{"line_number":340,"context_line":"                                update_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_63f017cb","line":337,"updated":"2021-06-15 01:00:31.000000000","message":"Should probably tolerate \u0026 ignore ENOENTs; see https://bugs.launchpad.net/swift/+bug/1877924","commit_id":"eca39d05661778ce40feafb18eeb790196c0468e"}]}
