)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"cc11c65f3b188feee88915603dfe506615bffd9f","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Matthew Vernon \u003cmvernon@wikimedia.org\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-11-23 11:10:43 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"recon: only count each host once"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"`swift-recon -d` asks each server:port pair about its disks, which"},{"line_number":10,"context_line":"means if you have servers_per_port enabled it will multiply-count the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"72db3c4d_858b97af","line":7,"updated":"2021-11-25 23:20:09.000000000","message":"Subject line probably ought to call out that it\u0027s only for disk usage -- there are (unfortunately) lots of other bits of recon that ought to get de-duped, too.","commit_id":"73d592cec60fdaab8aa9d027fee51bacbd465609"},{"author":{"_account_id":34175,"name":"Matthew Vernon","email":"mvernon@wikimedia.org","username":"mvernon"},"change_message_id":"4e4b3aee702f2dc4b36a7f5801caa0384392ae16","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Matthew Vernon \u003cmvernon@wikimedia.org\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-11-23 11:10:43 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"recon: only count each host once"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"`swift-recon -d` asks each server:port pair about its disks, which"},{"line_number":10,"context_line":"means if you have servers_per_port enabled it will multiply-count the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3c6a3ff1_75b59ff1","line":7,"in_reply_to":"72db3c4d_858b97af","updated":"2021-11-26 11:38:47.000000000","message":"Done","commit_id":"73d592cec60fdaab8aa9d027fee51bacbd465609"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":34175,"name":"Matthew Vernon","email":"mvernon@wikimedia.org","username":"mvernon"},"change_message_id":"4e4b3aee702f2dc4b36a7f5801caa0384392ae16","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8cf554a7_3b4b7967","updated":"2021-11-26 11:38:47.000000000","message":"Hi,\n\nThanks for your feedback. I\u0027ve clarified the subject line, and now filter hosts before sending out the queries, ensuring we only poll each host once.\n\nThe filtering is commented, and I think clear. You could make it more explicit (and slower, since it\u0027ll be quadratic rather than almost-linear) with code like\n```\n        filtered_list \u003d []\n        hosts_seen \u003d []\n        for t in hosts:\n            if t[0] in hosts_seen:\n                continue\n            hosts_seen.append(t[0])\n            filtered_list.append(t)\n        filtered_hosts \u003d set(filtered_list)\n\n```\n...but I think the concise version is better :-)\n\nRegards,\n\nMatthew","commit_id":"3cc143e4966eee5bbe1252d78a645c1a1da9efd3"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a260f349be3df67e0efe2bb2ddf2cc1ac30d0791","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"32d73d65_79e99578","updated":"2022-01-06 16:05:51.000000000","message":"Thanks! Sorry for the delay.","commit_id":"1942262dbfcfb278be6498cfb0524bb603faf03f"}],"swift/cli/recon.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"cc11c65f3b188feee88915603dfe506615bffd9f","unresolved":true,"context_lines":[{"line_number":900,"context_line":"                      self.timeout)"},{"line_number":901,"context_line":"        print(\"[%s] Checking disk usage now\" % self._ptime())"},{"line_number":902,"context_line":"        for url, response, status, ts_start, ts_end in self.pool.imap("},{"line_number":903,"context_line":"                recon.scout, hosts):"},{"line_number":904,"context_line":"            if status \u003d\u003d 200:"},{"line_number":905,"context_line":"                hostusage \u003d []"},{"line_number":906,"context_line":"                host \u003d urlparse(url).netloc.split(\u0027:\u0027)[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"93cba201_dc753c5e","line":903,"range":{"start_line":903,"start_character":29,"end_line":903,"end_character":34},"updated":"2021-11-25 23:20:09.000000000","message":"I think we ought to present a filtered view of hosts -- as it is, we still make the extra requests, just ignore the results. Depending on your hardware, that could be a 10-100x request multiplier, just to have the results get discarded.","commit_id":"73d592cec60fdaab8aa9d027fee51bacbd465609"},{"author":{"_account_id":34175,"name":"Matthew Vernon","email":"mvernon@wikimedia.org","username":"mvernon"},"change_message_id":"4e4b3aee702f2dc4b36a7f5801caa0384392ae16","unresolved":false,"context_lines":[{"line_number":900,"context_line":"                      self.timeout)"},{"line_number":901,"context_line":"        print(\"[%s] Checking disk usage now\" % self._ptime())"},{"line_number":902,"context_line":"        for url, response, status, ts_start, ts_end in self.pool.imap("},{"line_number":903,"context_line":"                recon.scout, hosts):"},{"line_number":904,"context_line":"            if status \u003d\u003d 200:"},{"line_number":905,"context_line":"                hostusage \u003d []"},{"line_number":906,"context_line":"                host \u003d urlparse(url).netloc.split(\u0027:\u0027)[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"6a12d9e5_9e769af9","line":903,"range":{"start_line":903,"start_character":29,"end_line":903,"end_character":34},"in_reply_to":"93cba201_dc753c5e","updated":"2021-11-26 11:38:47.000000000","message":"Done","commit_id":"73d592cec60fdaab8aa9d027fee51bacbd465609"}]}
