)]}'
{"swift/cli/relinker.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"511ed0a4b5e9b68177328b23841dd6184d7c5273","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        else:"},{"line_number":384,"context_line":"            # reset all for devices for the policy"},{"line_number":385,"context_line":"            device_progress_recon \u003d {"},{"line_number":386,"context_line":"                get_policy_string(\"progress\", self.policy): {}}"},{"line_number":387,"context_line":"        recon_cache \u003d os.path.join(self.conf[\u0027recon_cache_path\u0027],"},{"line_number":388,"context_line":"                                   RECON_RELINKER_FILE)"},{"line_number":389,"context_line":"        dump_recon_cache(device_progress_recon, recon_cache, self.logger)"}],"source_content_type":"text/x-python","patch_set":1,"id":"118b61ff_3db550ba","line":386,"updated":"2021-03-31 06:10:32.000000000","message":"Go home pep8, you\u0027re drunk\n\nI guess it meant to complain about L382?? Regardless, pretty sure it came in with the previous patch.","commit_id":"750e7632e772c6872c95f079e2fe06294cdfc5e5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"42c3e40a5b64e3998ad75137a5a058559a2a5b90","unresolved":true,"context_lines":[{"line_number":43,"context_line":"EXIT_NO_APPLICABLE_POLICY \u003d 2"},{"line_number":44,"context_line":"EXIT_ERROR \u003d 1"},{"line_number":45,"context_line":"RECON_FILE \u003d \u0027relinker.recon\u0027"},{"line_number":46,"context_line":"DEFAULT_RECON_CACHE_PATH \u003d \u0027/var/cache/swift\u0027"},{"line_number":47,"context_line":"DEFAULT_STATS_INTERVAL \u003d 300.0"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"e52ba4be_e374e9bd","line":46,"updated":"2021-06-05 00:04:12.000000000","message":"These constants shouldn\u0027t still be needed, yeah?","commit_id":"881f2da11b8d4aa7f32c0c332d4920168afd06f2"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"875561bac5f2a89d531d584e736a8c6ad1ad4ddd","unresolved":true,"context_lines":[{"line_number":43,"context_line":"EXIT_NO_APPLICABLE_POLICY \u003d 2"},{"line_number":44,"context_line":"EXIT_ERROR \u003d 1"},{"line_number":45,"context_line":"RECON_FILE \u003d \u0027relinker.recon\u0027"},{"line_number":46,"context_line":"DEFAULT_RECON_CACHE_PATH \u003d \u0027/var/cache/swift\u0027"},{"line_number":47,"context_line":"DEFAULT_STATS_INTERVAL \u003d 300.0"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"8fe7e1e0_a32d7929","line":46,"in_reply_to":"e52ba4be_e374e9bd","updated":"2021-06-06 23:29:04.000000000","message":"Good spot, rebasing snuck a few things in. ta.","commit_id":"881f2da11b8d4aa7f32c0c332d4920168afd06f2"}],"swift/common/db_auditor.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"42c3e40a5b64e3998ad75137a5a058559a2a5b90","unresolved":true,"context_lines":[{"line_number":31,"context_line":"class DatabaseAuditor(Daemon):"},{"line_number":32,"context_line":"    \"\"\"Base Database Auditor.\"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    recon_file \u003d None"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def server_type(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"8cdd60fa_d42090c2","line":34,"updated":"2021-06-05 00:04:12.000000000","message":"Maybe have an @property that raises NotImplementedError? *shrug*\n\nOh! Or:\n\n @property\n def recon_file(self):\n     return server_type_to_recon_file(self.server_type)\n\nthough at that point, maybe we just go for\n\n @property\n def rcache(self):\n     return os.path.join(\n         self.recon_cache_path,\n         server_type_to_recon_file(self.server_type))","commit_id":"881f2da11b8d4aa7f32c0c332d4920168afd06f2"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"875561bac5f2a89d531d584e736a8c6ad1ad4ddd","unresolved":true,"context_lines":[{"line_number":31,"context_line":"class DatabaseAuditor(Daemon):"},{"line_number":32,"context_line":"    \"\"\"Base Database Auditor.\"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    recon_file \u003d None"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def server_type(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"a525b8ed_4f46c31c","line":34,"in_reply_to":"8cdd60fa_d42090c2","updated":"2021-06-06 23:29:04.000000000","message":"Nice, yes!","commit_id":"881f2da11b8d4aa7f32c0c332d4920168afd06f2"}],"swift/common/recon.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"511ed0a4b5e9b68177328b23841dd6184d7c5273","unresolved":true,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"RECON_RELINKER_FILE \u003d \u0027relinker.recon\u0027"},{"line_number":17,"context_line":"RECON_OBJECT_FILE \u003d \u0027object.recon\u0027"},{"line_number":18,"context_line":"RECON_CONTAINER_FILE \u003d \u0027container.recon\u0027"},{"line_number":19,"context_line":"RECON_ACCOUNT_FILE \u003d \u0027account.recon\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fab6eab_3d5a5f41","line":16,"updated":"2021-03-31 06:10:32.000000000","message":"This makes it more obvious that the parent patch is adding a whole new recon file -- I think that\u0027s probably a good thing? I\u0027m a little torn; it feels like it belongs in object.recon (particularly since we only know how to increase part power for object rings right now) but OTOH, it\u0027s pretty far out of band from anything else...","commit_id":"750e7632e772c6872c95f079e2fe06294cdfc5e5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e1c90afd967ad9a44b19e6907ce44815c1d4ff70","unresolved":true,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"RECON_RELINKER_FILE \u003d \u0027relinker.recon\u0027"},{"line_number":17,"context_line":"RECON_OBJECT_FILE \u003d \u0027object.recon\u0027"},{"line_number":18,"context_line":"RECON_CONTAINER_FILE \u003d \u0027container.recon\u0027"},{"line_number":19,"context_line":"RECON_ACCOUNT_FILE \u003d \u0027account.recon\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ee773cb1_6f79777c","line":16,"in_reply_to":"9fab6eab_3d5a5f41","updated":"2021-04-01 04:16:22.000000000","message":"My plan was to control all recon file names in one place in case we even want to modify them.","commit_id":"750e7632e772c6872c95f079e2fe06294cdfc5e5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"511ed0a4b5e9b68177328b23841dd6184d7c5273","unresolved":true,"context_lines":[{"line_number":21,"context_line":"DEFAULT_RECON_CACHE_PATH \u003d \u0027/var/cache/swift\u0027"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def server_type_to_recon_file(server_type):"},{"line_number":25,"context_line":"    if server_type not in (\u0027account\u0027, \u0027container\u0027, \u0027object\u0027):"},{"line_number":26,"context_line":"        return \"\""},{"line_number":27,"context_line":"    return \"%s.recon\" % server_type"}],"source_content_type":"text/x-python","patch_set":1,"id":"712ce6a4_ed35c17b","line":24,"updated":"2021-03-31 06:10:32.000000000","message":"This new file is mostly just constants, so I\u0027m not sure how necessary tests are... but we should maybe cover this guy at least?","commit_id":"750e7632e772c6872c95f079e2fe06294cdfc5e5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"511ed0a4b5e9b68177328b23841dd6184d7c5273","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def server_type_to_recon_file(server_type):"},{"line_number":25,"context_line":"    if server_type not in (\u0027account\u0027, \u0027container\u0027, \u0027object\u0027):"},{"line_number":26,"context_line":"        return \"\""},{"line_number":27,"context_line":"    return \"%s.recon\" % server_type"}],"source_content_type":"text/x-python","patch_set":1,"id":"07b716e3_8598e10e","line":26,"updated":"2021-03-31 06:10:32.000000000","message":"Better as\n\n raise ValueError(...)\n\n?","commit_id":"750e7632e772c6872c95f079e2fe06294cdfc5e5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e1c90afd967ad9a44b19e6907ce44815c1d4ff70","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def server_type_to_recon_file(server_type):"},{"line_number":25,"context_line":"    if server_type not in (\u0027account\u0027, \u0027container\u0027, \u0027object\u0027):"},{"line_number":26,"context_line":"        return \"\""},{"line_number":27,"context_line":"    return \"%s.recon\" % server_type"}],"source_content_type":"text/x-python","patch_set":1,"id":"7b14e548_422b31f9","line":26,"in_reply_to":"07b716e3_8598e10e","updated":"2021-04-01 04:16:22.000000000","message":"lol, yeah that makes sense, I returned a string because it was failing a test that obivously doesn\u0027t provide a valid server_type and wanted to get it up so didn\u0027t dig in further.\n\nWill fix it.","commit_id":"750e7632e772c6872c95f079e2fe06294cdfc5e5"}],"test/unit/common/middleware/test_recon.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"511ed0a4b5e9b68177328b23841dd6184d7c5273","unresolved":true,"context_lines":[{"line_number":317,"context_line":"                              self.ring_part_shift)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    def _full_recon_path(self, recon_file):"},{"line_number":320,"context_line":"        return os.path.join(DEFAULT_RECON_CACHE_PATH, recon_file)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    @patch_policies(["},{"line_number":323,"context_line":"        StoragePolicy(0, \u0027stagecoach\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"17930632_c10e9911","line":320,"updated":"2021-03-31 06:10:32.000000000","message":"Maybe worth having this exercise server_type_to_recon_file?","commit_id":"750e7632e772c6872c95f079e2fe06294cdfc5e5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e1c90afd967ad9a44b19e6907ce44815c1d4ff70","unresolved":true,"context_lines":[{"line_number":317,"context_line":"                              self.ring_part_shift)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    def _full_recon_path(self, recon_file):"},{"line_number":320,"context_line":"        return os.path.join(DEFAULT_RECON_CACHE_PATH, recon_file)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    @patch_policies(["},{"line_number":323,"context_line":"        StoragePolicy(0, \u0027stagecoach\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"c70e2e84_6a4c3a39","line":320,"in_reply_to":"17930632_c10e9911","updated":"2021-04-01 04:16:22.000000000","message":"good idea :)","commit_id":"750e7632e772c6872c95f079e2fe06294cdfc5e5"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"ebfe7a492586806ecb07c2c31ddf64a1b11a343a","unresolved":true,"context_lines":[{"line_number":688,"context_line":"        rv \u003d self.app.get_async_info()"},{"line_number":689,"context_line":"        self.assertEqual(self.fakecache.fakeout_calls,"},{"line_number":690,"context_line":"                         [(([\u0027async_pending\u0027],"},{"line_number":691,"context_line":"                             self._full_recon_path(\u0027object\u0027)), {})])"},{"line_number":692,"context_line":"        self.assertEqual(rv, {\u0027async_pending\u0027: 5})"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    def test_get_replication_info_account(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"c0c70992_aa8c1be9","line":691,"updated":"2021-06-07 10:05:24.000000000","message":"In general I\u0027d leave the literal string in the tests so that any regression in DEFAULT_RECON_CACHE_PATH is noticed, or server_type_to_recon_file. i.e. in general make explicit assertions.\n\nIt is covered in a couple of other places (TestSharder.test_init for example). And server_type_to_recon_file is tested. So IDK if it really matters in this case.","commit_id":"881f2da11b8d4aa7f32c0c332d4920168afd06f2"}]}
