)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1f4ef081e253f5322f96c44f60854f33d0262a27","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The loading and creation of the Memcache ring in the middleware is"},{"line_number":10,"context_line":"rather interesting. It not only reads the config file, but also may look"},{"line_number":11,"context_line":"for a `/etc/swift/memcache.conf`. Further, we are know are looking at using"},{"line_number":12,"context_line":"the MemcacheRing client in more places."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"So this patch moves the config reading from the middleware and into a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"c3816ae2_7b86cd78","line":11,"updated":"2021-12-08 15:26:00.000000000","message":"i think this line is a couple chars too long - it wraps\nfunny\non the main page","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"0e85fa106a77718c0c9739838549503f6a0f1999","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The loading and creation of the Memcache ring in the middleware is"},{"line_number":10,"context_line":"rather interesting. It not only reads the config file, but also may look"},{"line_number":11,"context_line":"for a `/etc/swift/memcache.conf`. Further, we are know are looking at using"},{"line_number":12,"context_line":"the MemcacheRing client in more places."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"So this patch moves the config reading from the middleware and into a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"6de0b8b6_a2f07627","line":11,"in_reply_to":"c3816ae2_7b86cd78","updated":"2021-12-08 21:42:36.000000000","message":"Done","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1f4ef081e253f5322f96c44f60854f33d0262a27","unresolved":true,"context_lines":[{"line_number":12,"context_line":"the MemcacheRing client in more places."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"So this patch moves the config reading from the middleware and into a"},{"line_number":15,"context_line":"`load_memcache` static helper method in swift/common/memcached.py."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I028722facfbe3ff8092b6bdcc931887a169cc49a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"e5a71a68_a2ee73ef","line":15,"updated":"2021-12-08 15:26:00.000000000","message":"I wouldn\u0027t call the function a \"static method\" to avoid confusion with @staticmethod","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"0e85fa106a77718c0c9739838549503f6a0f1999","unresolved":false,"context_lines":[{"line_number":12,"context_line":"the MemcacheRing client in more places."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"So this patch moves the config reading from the middleware and into a"},{"line_number":15,"context_line":"`load_memcache` static helper method in swift/common/memcached.py."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I028722facfbe3ff8092b6bdcc931887a169cc49a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"6f9844f9_19175a68","line":15,"in_reply_to":"e5a71a68_a2ee73ef","updated":"2021-12-08 21:42:36.000000000","message":"Done","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"2a8113088f71069315c8514d872a8708e88480d2","unresolved":true,"context_lines":[{"line_number":14,"context_line":"So this patch moves the config reading from the middleware and"},{"line_number":15,"context_line":"into a `load_memcache` helper method in swift/common/memcached.py."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Drive-by: cleanup unused stuff in middleware test module"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I028722facfbe3ff8092b6bdcc931887a169cc49a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"f1cccd06_b9276b1c","line":17,"updated":"2022-10-11 15:40:21.000000000","message":"which un-used stuff?  I thought most of the config loading tests just *moved* to a different test module under common?","commit_id":"5e761a2cdf6076bf5b85467a2f45df2c7a6a81c1"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1f4ef081e253f5322f96c44f60854f33d0262a27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"17037309_502ef5ed","updated":"2021-12-08 15:26:00.000000000","message":"I did some cleanup in a follow up:\n\nhttps://review.opendev.org/c/openstack/swift/+/821088\n\nPlease squash anything you like.  It\u0027s possible the signature change doesn\u0027t make sense in the context of the patch series; but the red lines in the test module would be nice to have here.  I think the commit message for this change could use a respin.  But it\u0027s all pretty astetic; the mechanics of this change are a solid extraction refactor; much simpler - nice work.","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"0e85fa106a77718c0c9739838549503f6a0f1999","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bf2033b6_496207f0","updated":"2021-12-08 21:42:36.000000000","message":"New patch incoming","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"998f31a9e89ff23fb810bf085c287c307551654f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"43e2e240_be32af34","updated":"2022-01-12 05:35:11.000000000","message":"recheck","commit_id":"2d958439eca5a69060475be0ea225776b830c3f0"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"57aadd982fed48d70a1e64cf9a80ab802c639802","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"01e60196_326ca6b4","updated":"2022-09-22 17:40:12.000000000","message":"recheck","commit_id":"9972a919e5b23b2d734fda0086773e332d2f0b40"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3860dfffae32807bf8c8ed044de5b606c1c037d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"c8b98001_471ca344","updated":"2022-09-28 10:06:17.000000000","message":"cc","commit_id":"d0c1b8f4a0cab3772a337c27c4562cf5566fc014"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"2a8113088f71069315c8514d872a8708e88480d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"3eba9ce3_cda78415","updated":"2022-10-11 15:40:21.000000000","message":"still looks pretty good to me!","commit_id":"5e761a2cdf6076bf5b85467a2f45df2c7a6a81c1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"bf3afd631e7a89deba8b8c429cdbd2b8b6b65e12","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"ddc48084_1ada17d4","updated":"2022-11-02 16:45:23.000000000","message":"recheck\n\nprobe test failure should have been fixed by https://review.opendev.org/c/openstack/swift/+/862758","commit_id":"a8516e15108893301f586143de902153646ba9fd"}],"swift/common/memcached.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1f4ef081e253f5322f96c44f60854f33d0262a27","unresolved":true,"context_lines":[{"line_number":545,"context_line":""},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"def load_memcache(namespace, conf):"},{"line_number":548,"context_line":"    namespace.memcache_servers \u003d conf.get(\u0027memcache_servers\u0027)"},{"line_number":549,"context_line":"    serialization_format \u003d conf.get(\u0027memcache_serialization_support\u0027)"},{"line_number":550,"context_line":"    try:"},{"line_number":551,"context_line":"        # Originally, while we documented using memcache_max_connections"}],"source_content_type":"text/x-python","patch_set":1,"id":"7056f21c_70d2d469","line":548,"updated":"2021-12-08 15:26:00.000000000","message":"this function would benifit from a doc string - I think the namespace object in particular is a little difficult to describe\n\nit looks like namespace is here mainly for handling of two attributes created in this context (memcache_servers and tls_context) AND passing through the logger.\n\nbut, both are normalized and then pushed through to the MemcacheRing and chopped up in different ways - I don\u0027t think they\u0027re ever referenced back in the middlware module.\n\nIf they don\u0027t show up referenced later we could simplify this signature","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"0e85fa106a77718c0c9739838549503f6a0f1999","unresolved":false,"context_lines":[{"line_number":545,"context_line":""},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"def load_memcache(namespace, conf):"},{"line_number":548,"context_line":"    namespace.memcache_servers \u003d conf.get(\u0027memcache_servers\u0027)"},{"line_number":549,"context_line":"    serialization_format \u003d conf.get(\u0027memcache_serialization_support\u0027)"},{"line_number":550,"context_line":"    try:"},{"line_number":551,"context_line":"        # Originally, while we documented using memcache_max_connections"}],"source_content_type":"text/x-python","patch_set":1,"id":"be4a2499_5fe838ca","line":548,"in_reply_to":"7056f21c_70d2d469","updated":"2021-12-08 21:42:36.000000000","message":"Yeah, let\u0027s get rid of namespace. Thanks for looking into it. First cut was to just refactor, so didn\u0027t want to chage too much until I could see how much extra I\u0027d need to change.. turns out not too much looking at your follow up.\n\nI guess I got excited and moved on instead of cleaning this up. Thanks!","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"}],"swift/common/middleware/memcache.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"14a611ea5d789831a5bff9d198dd99d031cbe0e3","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":"from swift.common.memcached import load_memcache"},{"line_number":17,"context_line":"from swift.common.utils import get_logger"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7783d3dc_5effb7ee","line":16,"updated":"2022-10-19 16:37:38.000000000","message":"+1000, I\u0027m sure I\u0027ve written code that just instantiated a MemcacheMiddleware with a non-app rather than reimplement this mess -- having it all tucked away in a helper in swift.common.memcached makes *so* much more sense.","commit_id":"883430eda6eb65834be18fd5adaa87127fedca64"}],"test/unit/common/middleware/test_memcache.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1f4ef081e253f5322f96c44f60854f33d0262a27","unresolved":true,"context_lines":[{"line_number":277,"context_line":"        self.assertEqual(app.memcache._allow_unpickle, True)"},{"line_number":278,"context_line":"        self.assertEqual("},{"line_number":279,"context_line":"            app.memcache._client_cache[\u00276.7.8.9:10\u0027].max_size, 42)"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    def test_filter_factory(self):"},{"line_number":282,"context_line":"        factory \u003d memcache.filter_factory({\u0027max_connections\u0027: \u00273\u0027},"},{"line_number":283,"context_line":"                                          memcache_servers\u003d\u002710.10.10.10:10\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a29855a6_680b7736","side":"PARENT","line":280,"updated":"2021-12-08 15:26:00.000000000","message":"ok, it looks like all these tests moved","commit_id":"8dc679ea0c2e71acf2522ba280316a8c82e44d85"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1f4ef081e253f5322f96c44f60854f33d0262a27","unresolved":true,"context_lines":[{"line_number":43,"context_line":"class EmptyConfigParser(object):"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def read(self, path):"},{"line_number":46,"context_line":"        return False"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def get_config_parser(memcache_servers\u003d\u00271.2.3.4:5\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"891df3bf_fd279370","line":46,"updated":"2021-12-08 15:26:00.000000000","message":"this stuff isn\u0027t used anymore in this module","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"0e85fa106a77718c0c9739838549503f6a0f1999","unresolved":false,"context_lines":[{"line_number":43,"context_line":"class EmptyConfigParser(object):"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def read(self, path):"},{"line_number":46,"context_line":"        return False"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def get_config_parser(memcache_servers\u003d\u00271.2.3.4:5\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"621a4dba_ab2fd0e0","line":46,"in_reply_to":"891df3bf_fd279370","updated":"2021-12-08 21:42:36.000000000","message":"Thanks for removing this in your follow up, I\u0027m about to sqaush it in.","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"14a611ea5d789831a5bff9d198dd99d031cbe0e3","unresolved":true,"context_lines":[{"line_number":54,"context_line":"        thefilter \u003d factory(\u0027myapp\u0027)"},{"line_number":55,"context_line":"        self.assertEqual(thefilter.app, \u0027myapp\u0027)"},{"line_number":56,"context_line":"        self.assertEqual(thefilter.memcache.memcache_servers,"},{"line_number":57,"context_line":"                         [\u002710.10.10.10:10\u0027])"},{"line_number":58,"context_line":"        self.assertEqual("},{"line_number":59,"context_line":"            thefilter.memcache._client_cache[\u002710.10.10.10:10\u0027].max_size, 3)"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"ca8de53f_81e78ed7","line":57,"updated":"2022-10-19 16:37:38.000000000","message":"Oooh -- subtle. I think it\u0027s fine, though.","commit_id":"883430eda6eb65834be18fd5adaa87127fedca64"}],"test/unit/common/test_memcached.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1f4ef081e253f5322f96c44f60854f33d0262a27","unresolved":true,"context_lines":[{"line_number":1193,"context_line":"        self.assertEqual("},{"line_number":1194,"context_line":"            memcache._client_cache[\u00276.7.8.9:10\u0027].max_size, 42)"},{"line_number":1195,"context_line":""},{"line_number":1196,"context_line":""},{"line_number":1197,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":1198,"context_line":"    unittest.main()"}],"source_content_type":"text/x-python","patch_set":1,"id":"84863a7a_8cd0c38b","line":1196,"updated":"2021-12-08 15:26:00.000000000","message":"i don\u0027t think we added any new tests - this looks like a faithful pure translation, KUDOS","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"0e85fa106a77718c0c9739838549503f6a0f1999","unresolved":true,"context_lines":[{"line_number":1193,"context_line":"        self.assertEqual("},{"line_number":1194,"context_line":"            memcache._client_cache[\u00276.7.8.9:10\u0027].max_size, 42)"},{"line_number":1195,"context_line":""},{"line_number":1196,"context_line":""},{"line_number":1197,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":1198,"context_line":"    unittest.main()"}],"source_content_type":"text/x-python","patch_set":1,"id":"75af851d_7910d77a","line":1196,"in_reply_to":"84863a7a_8cd0c38b","updated":"2021-12-08 21:42:36.000000000","message":"Yup, wanted to make the refactor clean, just move and make it more useful not add anything new.","commit_id":"6fd8d6f11da615bc8d7f51a58548d32c89c6f1e5"}]}
