)]}'
{"swift/common/middleware/recon.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f9832eb04f7e723dcd3e32bea11c4cd5dfb3dfd3","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                continue"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"            try:"},{"line_number":212,"context_line":"                mounted \u003d bool(check_mount(self.devices, entry))"},{"line_number":213,"context_line":"            except OSError as err:"},{"line_number":214,"context_line":"                mounted \u003d str(err)"},{"line_number":215,"context_line":"            mpoint \u003d {\u0027device\u0027: entry, \u0027mounted\u0027: mounted}"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_8d5ae480","line":212,"updated":"2017-09-01 17:42:37.000000000","message":"i guess for legacy purposes I could have done this *in* check_mount...\n\nHonestly I\u0027m not sure this shouldn\u0027t just use check_device\n\n/me shurgs","commit_id":"163fb4d52a85e0467c8c6b616e2cd9faa1faa41b"}],"swift/container/server.py":[{"author":{"_account_id":23449,"name":"Pavel Kvasnička","email":"pavel.kvasnicka@firma.seznam.cz","username":"PavelK"},"change_message_id":"33a90d55d8c9f01e43f64d6a43797abc0583776e","unresolved":false,"context_lines":[{"line_number":262,"context_line":"            return check_mount(self.root, drive)"},{"line_number":263,"context_line":"        else:"},{"line_number":264,"context_line":"            return check_dir(self.root, drive)"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    @public"},{"line_number":267,"context_line":"    @timing_stats()"},{"line_number":268,"context_line":"    def DELETE(self, req):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_4c48e785","line":265,"updated":"2017-04-20 14:33:00.000000000","message":"Matt noticed in review #448480:\n\nBecasue this check_mount is being defined twice, maybe it\u0027s a good candidate for pulling up into swift/common/base_storage_server.py","commit_id":"cb4f751593b132c03b82745657bdca2805cf0783"}],"swift/obj/diskfile.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f9832eb04f7e723dcd3e32bea11c4cd5dfb3dfd3","unresolved":false,"context_lines":[{"line_number":1195,"context_line":"            else:"},{"line_number":1196,"context_line":"                mount_check \u003d False"},{"line_number":1197,"context_line":"            return check_drive(self.devices, device, mount_check)"},{"line_number":1198,"context_line":"        return join(self.devices, device)"},{"line_number":1199,"context_line":""},{"line_number":1200,"context_line":"    @contextmanager"},{"line_number":1201,"context_line":"    def replication_lock(self, device):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_0d4ef4c0","line":1198,"updated":"2017-09-01 17:42:37.000000000","message":"this might have looked better as a guard return:\n\n    if mount_check is False:\n        # explicitly forbidden from doing a syscall, just give back the path\n        return os.path.join(self.devices, device)\n    ...","commit_id":"163fb4d52a85e0467c8c6b616e2cd9faa1faa41b"}],"test/unit/__init__.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f9832eb04f7e723dcd3e32bea11c4cd5dfb3dfd3","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        eventlet_debug.hub_exceptions(orig_state)"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"class MockTrue(object):"},{"line_number":713,"context_line":"    \"\"\""},{"line_number":714,"context_line":"    Instances of MockTrue evaluate like True"},{"line_number":715,"context_line":"    Any attr accessed on an instance of MockTrue will return a MockTrue"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_8dcf8428","side":"PARENT","line":712,"updated":"2017-09-01 17:42:37.000000000","message":"hahahah - good riddance you stupid class!","commit_id":"add2a94cd84a5091592b14525733d6bdf4c7e0cf"}],"test/unit/account/test_server.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f9832eb04f7e723dcd3e32bea11c4cd5dfb3dfd3","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                                environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027REPLICATE\u0027},"},{"line_number":169,"context_line":"                                headers\u003d{})"},{"line_number":170,"context_line":"            resp \u003d req.get_response(self.account_controller)"},{"line_number":171,"context_line":"        self.assertEqual(resp.status_int, 507)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def test_REPLICATE_rsync_then_merge_works(self):"},{"line_number":174,"context_line":"        def fake_rsync_then_merge(self, drive, db_file, args):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_0dfcb43c","side":"PARENT","line":171,"updated":"2017-09-01 17:42:37.000000000","message":"I waffled quite a bit loosing this DAMP tests for each method... but the *lacking* method coverage in object.test_server convinced me that the \"for method in allowed\" was justified even if debatably too DRY for unittests.","commit_id":"add2a94cd84a5091592b14525733d6bdf4c7e0cf"}],"test/unit/container/test_server.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f9832eb04f7e723dcd3e32bea11c4cd5dfb3dfd3","unresolved":false,"context_lines":[{"line_number":63,"context_line":"class TestContainerController(unittest.TestCase):"},{"line_number":64,"context_line":"    \"\"\"Test swift.container.server.ContainerController\"\"\""},{"line_number":65,"context_line":"    def setUp(self):"},{"line_number":66,"context_line":"        \"\"\"Set up for testing swift.object_server.ObjectController\"\"\""},{"line_number":67,"context_line":"        self.testdir \u003d os.path.join(mkdtemp(),"},{"line_number":68,"context_line":"                                    \u0027tmp_test_object_server_ObjectController\u0027)"},{"line_number":69,"context_line":"        mkdirs(self.testdir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_ad98001b","side":"PARENT","line":66,"updated":"2017-09-01 17:42:37.000000000","message":"lolwut?","commit_id":"add2a94cd84a5091592b14525733d6bdf4c7e0cf"}],"test/unit/obj/test_auditor.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f9832eb04f7e723dcd3e32bea11c4cd5dfb3dfd3","unresolved":false,"context_lines":[{"line_number":906,"context_line":"            self.disk_file.delete(ts_tomb)"},{"line_number":907,"context_line":"            # this get_hashes call will truncate the invalid hashes entry"},{"line_number":908,"context_line":"            self.disk_file.manager.get_hashes("},{"line_number":909,"context_line":"                \u0027sda\u0027, \u00270\u0027, [], self.disk_file.policy)"},{"line_number":910,"context_line":"        suffix \u003d basename(dirname(self.disk_file._datadir))"},{"line_number":911,"context_line":"        part_dir \u003d dirname(dirname(self.disk_file._datadir))"},{"line_number":912,"context_line":"        # sanity checks..."}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_edf8484a","line":909,"updated":"2017-09-01 17:42:37.000000000","message":"test bugs!","commit_id":"163fb4d52a85e0467c8c6b616e2cd9faa1faa41b"}],"test/unit/obj/test_diskfile.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f9832eb04f7e723dcd3e32bea11c4cd5dfb3dfd3","unresolved":false,"context_lines":[{"line_number":5850,"context_line":"        suffix_dir \u003d os.path.dirname(df._datadir)"},{"line_number":5851,"context_line":"        for i in itertools.count():"},{"line_number":5852,"context_line":"            df2 \u003d df._manager.get_diskfile("},{"line_number":5853,"context_line":"                os.path.basename(df._device_path),"},{"line_number":5854,"context_line":"                df._datadir.split(\u0027/\u0027)[-3],"},{"line_number":5855,"context_line":"                df._account,"},{"line_number":5856,"context_line":"                df._container,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_8d9d440c","line":5853,"updated":"2017-09-01 17:42:37.000000000","message":"test bugs!","commit_id":"163fb4d52a85e0467c8c6b616e2cd9faa1faa41b"}],"test/unit/obj/test_server.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f9832eb04f7e723dcd3e32bea11c4cd5dfb3dfd3","unresolved":false,"context_lines":[{"line_number":6239,"context_line":"                                environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027REPLICATE\u0027},"},{"line_number":6240,"context_line":"                                headers\u003d{})"},{"line_number":6241,"context_line":"            resp \u003d req.get_response(self.object_controller)"},{"line_number":6242,"context_line":"        self.assertEqual(resp.status_int, 507)"},{"line_number":6243,"context_line":""},{"line_number":6244,"context_line":"    def test_REPLICATE_reclaims_tombstones(self):"},{"line_number":6245,"context_line":"        conf \u003d {\u0027devices\u0027: self.testdir, \u0027mount_check\u0027: False,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_adc120e7","side":"PARENT","line":6242,"updated":"2017-09-01 17:42:37.000000000","message":"this module was missing 507 checks for other methods...","commit_id":"add2a94cd84a5091592b14525733d6bdf4c7e0cf"}]}
