)]}'
{"swift/proxy/controllers/container.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"aca5890deaea69295e51b772d4882c0e329788ef","unresolved":true,"context_lines":[{"line_number":394,"context_line":"            shard_state \u003d \u0027unknown\u0027"},{"line_number":395,"context_line":"            try:"},{"line_number":396,"context_line":"                shard_state \u003d shard_resp.headers[\u0027x-backend-sharding-state\u0027]"},{"line_number":397,"context_line":"                shard_state \u003d ShardRange.resolve_state(shard_state)"},{"line_number":398,"context_line":"            except (AttributeError, ValueError, KeyError):"},{"line_number":399,"context_line":"                pass"},{"line_number":400,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ca2fd34d_5da1ccc3","side":"PARENT","line":397,"updated":"2021-01-22 15:13:47.000000000","message":"yeah, it seems to me this always returns a tuple","commit_id":"d429918ed08baf0584e34ed122461ce3e433342b"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"aca5890deaea69295e51b772d4882c0e329788ef","unresolved":true,"context_lines":[{"line_number":396,"context_line":"                shard_state \u003d shard_resp.headers[\u0027x-backend-sharding-state\u0027]"},{"line_number":397,"context_line":"                shard_state \u003d ShardRange.resolve_state(shard_state)"},{"line_number":398,"context_line":"            except (AttributeError, ValueError, KeyError):"},{"line_number":399,"context_line":"                pass"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"            if objs is None:"},{"line_number":402,"context_line":"                # tolerate errors"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a340ed9_bcfc4591","side":"PARENT","line":399,"updated":"2021-01-22 15:13:47.000000000","message":"wow, this is a LOT of exceptions to be handled with a \"shrug\"","commit_id":"d429918ed08baf0584e34ed122461ce3e433342b"}],"test/unit/proxy/controllers/test_container.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"aca5890deaea69295e51b772d4882c0e329788ef","unresolved":true,"context_lines":[{"line_number":1031,"context_line":"        lines \u003d [line for line in self.app.logger.get_lines_for_level(\u0027debug\u0027)"},{"line_number":1032,"context_line":"                 if line.startswith(\u0027Found 1024 objects in shard\u0027)]"},{"line_number":1033,"context_line":"        self.assertEqual(2, len(lines), lines)"},{"line_number":1034,"context_line":"        self.assertIn(\"(state\u003dsharded), total \u003d 1024\", lines[0])  # shard-\u003eroot"},{"line_number":1035,"context_line":"        self.assertIn(\"(state\u003dsharding), total \u003d 1024\", lines[1])  # shard"},{"line_number":1036,"context_line":""},{"line_number":1037,"context_line":"    def test_GET_sharded_container_shard_redirects_between_shards(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"f73d5de5_444c4a94","line":1034,"updated":"2021-01-22 15:13:47.000000000","message":"AND a test!?\n\n\tFAIL: test_GET_sharded_container_shard_redirects_to_root (test.unit.proxy.controllers.test_container.TestContainerController4Replicas)\n\t----------------------------------------------------------------------\n\tTraceback (most recent call last):\n\t  File \"/home/vagrant/swift/test/unit/proxy/controllers/test_container.py\", line 1034, in test_GET_sharded_container_shard_redirects_to_root\n\t    self.assertIn(\"(state\u003dsharded), total \u003d 1024\", lines[0])  # shard-\u003eroot\n\tAssertionError: \u0027(state\u003dsharded), total \u003d 1024\u0027 not found in \"Found 1024 objects in shard (state\u003d(70, \u0027sharded\u0027)), total \u003d 1024\"","commit_id":"0a230e5aed3150bcdbf0f9659ee1ab2f74a305eb"}]}
