)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"change_message_id":"1528d4df94d02c18e9ade23d5d35d0488b31ce29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"530a98e3_91c68401","updated":"2021-12-15 21:47:34.000000000","message":"LGTM","commit_id":"9b222db12e6643f1c50680e2e576b96bbb25c7bb"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"00301c5b4054853e3f0993475508ff7208637629","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f79af1b2_92157a29","updated":"2021-12-15 21:50:07.000000000","message":"LGTM, should have a releasenote however since this is technically adding a user-facing change/feature.","commit_id":"9b222db12e6643f1c50680e2e576b96bbb25c7bb"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"882ec44042165c4a93ca121dc0af293d8b421e98","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d3d820ff_1865cffa","updated":"2022-01-10 14:10:25.000000000","message":"recheck","commit_id":"1eaf1be37e66e10c2f0b93a534df156a6b5d6089"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"06e995381ee4e06ff505e926f0ae5af595f7dc82","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"78a5e05f_39f6933f","updated":"2022-01-21 16:21:17.000000000","message":"A documentation change that describes the behavior and how to fix this, possibly with a load balancer, rather than with keystone doing the load balancing would be very welcome. If this gets merged, the behavior would still be suboptimal if one server is doing because 1/n of the requests will time out.","commit_id":"537949124ded3ed97ceabd6b01107a2f897dd2ab"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"c9d467968226689ccde0ab51e8fe1f2f54303ed2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"93f0568f_7bf9de42","in_reply_to":"78a5e05f_39f6933f","updated":"2022-08-08 12:36:29.000000000","message":"I added this to the documentation.","commit_id":"537949124ded3ed97ceabd6b01107a2f897dd2ab"}],"keystone/conf/ldap.py":[{"author":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"change_message_id":"aa6ff456a71e511738b827208fa134749c63305e","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"randomize_urls \u003d cfg.BoolOpt("},{"line_number":28,"context_line":"    \u0027randomize_urls\u0027,"},{"line_number":29,"context_line":"    default\u003dTrue,"},{"line_number":30,"context_line":"    help\u003dutils.fmt(\"\"\""},{"line_number":31,"context_line":"Randomize the order of URLs in each keystone process. This makes the failure"},{"line_number":32,"context_line":"behavior more gradual, since if the first server is down, a process/thread"}],"source_content_type":"text/x-python","patch_set":1,"id":"ab154bb4_4536f64d","line":29,"range":{"start_line":29,"start_character":12,"end_line":29,"end_character":16},"updated":"2021-12-10 15:49:09.000000000","message":"It would be better to keep the current behavior as the default (so set this to False).","commit_id":"ac8d1dbf48507428888fb8f25f8ee3fbb0d535c4"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"cdc4ea1a3f14e5466dd8225c31bfa30637c721cb","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"randomize_urls \u003d cfg.BoolOpt("},{"line_number":28,"context_line":"    \u0027randomize_urls\u0027,"},{"line_number":29,"context_line":"    default\u003dTrue,"},{"line_number":30,"context_line":"    help\u003dutils.fmt(\"\"\""},{"line_number":31,"context_line":"Randomize the order of URLs in each keystone process. This makes the failure"},{"line_number":32,"context_line":"behavior more gradual, since if the first server is down, a process/thread"}],"source_content_type":"text/x-python","patch_set":1,"id":"f3e088b0_c4ada962","line":29,"range":{"start_line":29,"start_character":12,"end_line":29,"end_character":16},"in_reply_to":"ab154bb4_4536f64d","updated":"2022-08-08 12:36:51.000000000","message":"Done","commit_id":"ac8d1dbf48507428888fb8f25f8ee3fbb0d535c4"},{"author":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"change_message_id":"c55ee2b4e43e91bac4e86bef19ffc79cd3273d8d","unresolved":true,"context_lines":[{"line_number":31,"context_line":"Randomize the order of URLs in each keystone process. This makes the failure"},{"line_number":32,"context_line":"behavior more gradual, since if the first server is down, a process/thread"},{"line_number":33,"context_line":"will wait for the specified timeout before attempting a connection to a"},{"line_number":34,"context_line":"server further down the list. This defaults to True, since keystone uses"},{"line_number":35,"context_line":"LDAP for read-only access."},{"line_number":36,"context_line":"\"\"\"))"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa516ad_1b0cb84b","line":34,"range":{"start_line":34,"start_character":47,"end_line":34,"end_character":51},"updated":"2022-01-14 18:29:32.000000000","message":"This description is not consistent with the default value.","commit_id":"1eaf1be37e66e10c2f0b93a534df156a6b5d6089"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"71d6a69c540b1a986b1ea33c9009b5525b8798ca","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Randomize the order of URLs in each keystone process. This makes the failure"},{"line_number":32,"context_line":"behavior more gradual, since if the first server is down, a process/thread"},{"line_number":33,"context_line":"will wait for the specified timeout before attempting a connection to a"},{"line_number":34,"context_line":"server further down the list. This defaults to True, since keystone uses"},{"line_number":35,"context_line":"LDAP for read-only access."},{"line_number":36,"context_line":"\"\"\"))"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"f8d8c9cc_93ee588c","line":34,"range":{"start_line":34,"start_character":47,"end_line":34,"end_character":51},"in_reply_to":"3fa516ad_1b0cb84b","updated":"2022-01-18 10:42:34.000000000","message":"Done","commit_id":"1eaf1be37e66e10c2f0b93a534df156a6b5d6089"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"a7832f129944a1cdbc430795a46daa479ef31f3a","unresolved":true,"context_lines":[{"line_number":32,"context_line":"behavior more gradual, since if the first server is down, a process/thread"},{"line_number":33,"context_line":"will wait for the specified timeout before attempting a connection to a"},{"line_number":34,"context_line":"server further down the list. This defaults to False, for backward"},{"line_number":35,"context_line":"comaptibility."},{"line_number":36,"context_line":"\"\"\"))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"17263c95_e959bbed","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":13},"updated":"2022-01-21 16:15:52.000000000","message":"nit: compatability","commit_id":"537949124ded3ed97ceabd6b01107a2f897dd2ab"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"c9d467968226689ccde0ab51e8fe1f2f54303ed2","unresolved":false,"context_lines":[{"line_number":32,"context_line":"behavior more gradual, since if the first server is down, a process/thread"},{"line_number":33,"context_line":"will wait for the specified timeout before attempting a connection to a"},{"line_number":34,"context_line":"server further down the list. This defaults to False, for backward"},{"line_number":35,"context_line":"comaptibility."},{"line_number":36,"context_line":"\"\"\"))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"14adc79b_489d2dd3","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":13},"in_reply_to":"17263c95_e959bbed","updated":"2022-08-08 12:36:29.000000000","message":"Done","commit_id":"537949124ded3ed97ceabd6b01107a2f897dd2ab"}],"keystone/tests/unit/identity/backends/test_ldap_common.py":[{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"06e995381ee4e06ff505e926f0ae5af595f7dc82","unresolved":true,"context_lines":[{"line_number":255,"context_line":"        ldap_connection \u003d base_ldap.get_connection()"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        def url_set(url):"},{"line_number":258,"context_line":"            return set(re.split(r\u0027[\\s,]+\u0027, url))"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        self.assertEqual(url_set(urls),"},{"line_number":261,"context_line":"                         url_set(ldap_connection.conn.conn_pool.uri))"}],"source_content_type":"text/x-python","patch_set":4,"id":"41e228c4_28218513","line":258,"updated":"2022-01-21 16:21:17.000000000","message":"This isn\u0027t really testing that the list is split the correct way, or that the list is randomized. Since it is the say regular expression doing the splitting both in the code and in the test.","commit_id":"537949124ded3ed97ceabd6b01107a2f897dd2ab"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"c9d467968226689ccde0ab51e8fe1f2f54303ed2","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        ldap_connection \u003d base_ldap.get_connection()"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        def url_set(url):"},{"line_number":258,"context_line":"            return set(re.split(r\u0027[\\s,]+\u0027, url))"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        self.assertEqual(url_set(urls),"},{"line_number":261,"context_line":"                         url_set(ldap_connection.conn.conn_pool.uri))"}],"source_content_type":"text/x-python","patch_set":4,"id":"f2b07f8b_ced41c2e","line":258,"in_reply_to":"41e228c4_28218513","updated":"2022-08-08 12:36:29.000000000","message":"Done","commit_id":"537949124ded3ed97ceabd6b01107a2f897dd2ab"}]}
