)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0b5b9a9d0f46aa4a546d4e1a86e9b3599ae379b2","unresolved":true,"context_lines":[{"line_number":15,"context_line":"with (i.e. from the already limited list) in advance and pass this set"},{"line_number":16,"context_line":"of existing uuids into the function formatting the server group. This is"},{"line_number":17,"context_line":"more efficient, because we only do one large query instead of up to 1000"},{"line_number":18,"context_line":"times the number of cells."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I3459ce7a8bec9a9e6f3a3b496a3e441078b86af0"},{"line_number":21,"context_line":"Signed-off-by: Johannes Kulik \u003cjohannes.kulik@sap.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bfa73a71_4382e583","line":18,"updated":"2025-09-06 03:36:21.000000000","message":"this sounds very reasonable, do you have any number or gudinace on howmuch of a speed up operators should expect? do you think we should hightlight this change in a release note?\n\nbasicly we do not need a release note for every bugfix or improment im just wondering if you think this is a significant enough improvement that we should advertise it to operators.","commit_id":"5962b8e84305cbfd5b030412144440adf80d134b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ff96c698e80e07151c20009136e9154448e7274b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"with (i.e. from the already limited list) in advance and pass this set"},{"line_number":16,"context_line":"of existing uuids into the function formatting the server group. This is"},{"line_number":17,"context_line":"more efficient, because we only do one large query instead of up to 1000"},{"line_number":18,"context_line":"times the number of cells."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I3459ce7a8bec9a9e6f3a3b496a3e441078b86af0"},{"line_number":21,"context_line":"Signed-off-by: Johannes Kulik \u003cjohannes.kulik@sap.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1731f832_bc16cdb8","line":18,"in_reply_to":"159be7df_dced1a54","updated":"2025-11-03 11:31:53.000000000","message":"Acknowledged","commit_id":"5962b8e84305cbfd5b030412144440adf80d134b"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"0aa5873e19e122fca8a5669358162f63bb485361","unresolved":true,"context_lines":[{"line_number":15,"context_line":"with (i.e. from the already limited list) in advance and pass this set"},{"line_number":16,"context_line":"of existing uuids into the function formatting the server group. This is"},{"line_number":17,"context_line":"more efficient, because we only do one large query instead of up to 1000"},{"line_number":18,"context_line":"times the number of cells."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I3459ce7a8bec9a9e6f3a3b496a3e441078b86af0"},{"line_number":21,"context_line":"Signed-off-by: Johannes Kulik \u003cjohannes.kulik@sap.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"159be7df_dced1a54","line":18,"in_reply_to":"bfa73a71_4382e583","updated":"2025-09-09 09:44:42.000000000","message":"I think this isn\u0027t the most impressive change. The second one we\u0027re planning to provide should help much more. As pointed out in my comment above, we see 25% improvements in query-time (~400ms) for ~550 server-groups.","commit_id":"5962b8e84305cbfd5b030412144440adf80d134b"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"19613771dfdec77f3b79dc733fdafff843d1f430","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"595b86e4_185fb6aa","updated":"2025-09-05 11:13:55.000000000","message":"In a short test in our QA environment with 2 cells and ~550 server-groups, a `os server-group list --all-projects` improved from ~1.6s to ~1.2s.","commit_id":"5962b8e84305cbfd5b030412144440adf80d134b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52b8809fef2dfb0b323db3c4ede930ff6cf5a14c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"03947d97_1d27de09","updated":"2025-11-03 10:08:38.000000000","message":"Make sense. I have two requests:\n* please add bugfix release notes\n* fix my suggestion inline","commit_id":"dc9744b7c71cd6f32cd05278b04a11ff92511316"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"231f51d0b7e850352bba53478fd7de4ca09ba1f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e5e3c8b6_14491818","updated":"2025-11-03 10:47:40.000000000","message":"Added a bugfix releasenote and used `is not None`.","commit_id":"710ffbb0c5151f4428f10d6c5748fd1d20caad83"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"0b8b08da2de0e1f26adfd03228b90813094a8a4d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"207074ed_e0619b02","updated":"2025-11-05 06:13:02.000000000","message":"recheck cinder_tempest_plugin.scenario.test_volume_encrypted.TestEncryptedCinderVolumes.test_boot_cloned_encrypted_volume seems still unrelated","commit_id":"710ffbb0c5151f4428f10d6c5748fd1d20caad83"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"9266c2f6e9db7e1b9d49e5cca504c1687ddfc6fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d88771a3_9a668145","updated":"2025-11-03 13:24:06.000000000","message":"recheck unrelated volume creation error","commit_id":"710ffbb0c5151f4428f10d6c5748fd1d20caad83"}],"nova/api/openstack/compute/server_groups.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7cd20e9e89a6ccd415a963d666466082f841b292","unresolved":true,"context_lines":[{"line_number":119,"context_line":"            if not_deleted_inst_uuids:"},{"line_number":120,"context_line":"                # short-cut if we already pre-built a list of not deleted"},{"line_number":121,"context_line":"                # instances to be more efficient"},{"line_number":122,"context_line":"                members \u003d list(set(group.members) \u0026 not_deleted_inst_uuids)"},{"line_number":123,"context_line":"            else:"},{"line_number":124,"context_line":"                members \u003d _get_not_deleted(context, group.members)"},{"line_number":125,"context_line":"        server_group[\u0027members\u0027] \u003d members"}],"source_content_type":"text/x-python","patch_set":1,"id":"d87ec933_105240df","line":122,"updated":"2025-09-06 03:41:01.000000000","message":"we do not have test coverage of takeing this new path\n\nhttps://1edf6f27a6899c77bafc-fae58b9e5b5334364b7bbd906acbdb71.ssl.cf2.rackcdn.com/openstack/e62c6323cf1f4ac49f741dd63a9e3f57/cover/z_2d5900f95a3d934c_server_groups_py.html#t122\n\nhence the +1\n\nwe should add a test that simulates this case where there is at least 1 server group wit a mix of deleted and non deleted members","commit_id":"5962b8e84305cbfd5b030412144440adf80d134b"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"0aa5873e19e122fca8a5669358162f63bb485361","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            if not_deleted_inst_uuids:"},{"line_number":120,"context_line":"                # short-cut if we already pre-built a list of not deleted"},{"line_number":121,"context_line":"                # instances to be more efficient"},{"line_number":122,"context_line":"                members \u003d list(set(group.members) \u0026 not_deleted_inst_uuids)"},{"line_number":123,"context_line":"            else:"},{"line_number":124,"context_line":"                members \u003d _get_not_deleted(context, group.members)"},{"line_number":125,"context_line":"        server_group[\u0027members\u0027] \u003d members"}],"source_content_type":"text/x-python","patch_set":1,"id":"97f839df_89f8b3f3","line":122,"in_reply_to":"d87ec933_105240df","updated":"2025-09-09 09:44:42.000000000","message":"Done","commit_id":"5962b8e84305cbfd5b030412144440adf80d134b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0b5b9a9d0f46aa4a546d4e1a86e9b3599ae379b2","unresolved":true,"context_lines":[{"line_number":197,"context_line":"                    context, project_id)"},{"line_number":198,"context_line":"        limited_list \u003d common.limited(sgs.objects, req)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        all_members \u003d list(itertools.chain.from_iterable(sg.members"},{"line_number":201,"context_line":"                                                         for sg in limited_list"},{"line_number":202,"context_line":"                                                         if sg.members))"},{"line_number":203,"context_line":"        not_deleted \u003d set(_get_not_deleted(context, all_members))"},{"line_number":204,"context_line":"        result \u003d [self._format_server_group(context, group, req, not_deleted)"},{"line_number":205,"context_line":"                  for group in limited_list]"}],"source_content_type":"text/x-python","patch_set":1,"id":"6247b42d_d9a7dbff","line":202,"range":{"start_line":200,"start_character":8,"end_line":202,"end_character":72},"updated":"2025-09-06 03:36:21.000000000","message":"nit: style issues should never on there own raise to a -1 unless there are excessively many but  our normal convetinon is more like this\n\n```suggestion\n        all_members \u003d list(itertools.chain.from_iterable(\n            sg.members for sg in limited_list if sg.members))\n```\nwe tend to try and recover as much horizontal space as reasonable without wasting vertical space to keep things compact and more readable.\n\nthere is no need to respin just for this but if you do push another revision it would be nice to reflow this.","commit_id":"5962b8e84305cbfd5b030412144440adf80d134b"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"0aa5873e19e122fca8a5669358162f63bb485361","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                    context, project_id)"},{"line_number":198,"context_line":"        limited_list \u003d common.limited(sgs.objects, req)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        all_members \u003d list(itertools.chain.from_iterable(sg.members"},{"line_number":201,"context_line":"                                                         for sg in limited_list"},{"line_number":202,"context_line":"                                                         if sg.members))"},{"line_number":203,"context_line":"        not_deleted \u003d set(_get_not_deleted(context, all_members))"},{"line_number":204,"context_line":"        result \u003d [self._format_server_group(context, group, req, not_deleted)"},{"line_number":205,"context_line":"                  for group in limited_list]"}],"source_content_type":"text/x-python","patch_set":1,"id":"953e39ab_2a153412","line":202,"range":{"start_line":200,"start_character":8,"end_line":202,"end_character":72},"in_reply_to":"6247b42d_d9a7dbff","updated":"2025-09-09 09:44:42.000000000","message":"Done","commit_id":"5962b8e84305cbfd5b030412144440adf80d134b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0b5b9a9d0f46aa4a546d4e1a86e9b3599ae379b2","unresolved":true,"context_lines":[{"line_number":200,"context_line":"        all_members \u003d list(itertools.chain.from_iterable(sg.members"},{"line_number":201,"context_line":"                                                         for sg in limited_list"},{"line_number":202,"context_line":"                                                         if sg.members))"},{"line_number":203,"context_line":"        not_deleted \u003d set(_get_not_deleted(context, all_members))"},{"line_number":204,"context_line":"        result \u003d [self._format_server_group(context, group, req, not_deleted)"},{"line_number":205,"context_line":"                  for group in limited_list]"},{"line_number":206,"context_line":"        return {\u0027server_groups\u0027: result}"}],"source_content_type":"text/x-python","patch_set":1,"id":"e6ea29bd_12f42308","line":203,"updated":"2025-09-06 03:36:21.000000000","message":"ah i see that clever.\n\ni was initially concerned about how you were going to get the non deleted instances when i read the commit message.\n\ni.e. were you just going to do a separate query to list all deleted instances ectra.\n\nusing the meber list to prefilert and then only looking up the non deleted members solve my inital concern.\n\nbasicly i wanted to confirm that we would not be loading instance uuid for instance that do not belong to the current user/project.","commit_id":"5962b8e84305cbfd5b030412144440adf80d134b"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"0aa5873e19e122fca8a5669358162f63bb485361","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        all_members \u003d list(itertools.chain.from_iterable(sg.members"},{"line_number":201,"context_line":"                                                         for sg in limited_list"},{"line_number":202,"context_line":"                                                         if sg.members))"},{"line_number":203,"context_line":"        not_deleted \u003d set(_get_not_deleted(context, all_members))"},{"line_number":204,"context_line":"        result \u003d [self._format_server_group(context, group, req, not_deleted)"},{"line_number":205,"context_line":"                  for group in limited_list]"},{"line_number":206,"context_line":"        return {\u0027server_groups\u0027: result}"}],"source_content_type":"text/x-python","patch_set":1,"id":"49f1ddc7_b9e5c92f","line":203,"in_reply_to":"e6ea29bd_12f42308","updated":"2025-09-09 09:44:42.000000000","message":"\u003e ah i see that clever.\n\nthank you :)","commit_id":"5962b8e84305cbfd5b030412144440adf80d134b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52b8809fef2dfb0b323db3c4ede930ff6cf5a14c","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        members \u003d []"},{"line_number":117,"context_line":"        if group.members:"},{"line_number":118,"context_line":"            # Display the instances that are not deleted."},{"line_number":119,"context_line":"            if not_deleted_inst_uuids:"},{"line_number":120,"context_line":"                # short-cut if we already pre-built a list of not deleted"},{"line_number":121,"context_line":"                # instances to be more efficient"},{"line_number":122,"context_line":"                members \u003d list(set(group.members) \u0026 not_deleted_inst_uuids)"}],"source_content_type":"text/x-python","patch_set":2,"id":"472db7f7_16bc4603","line":119,"updated":"2025-11-03 10:08:38.000000000","message":"Use `is None` otherwise an empty set passed in as not_deleted_inst_uuids will trigger the fallback query unnecessarily","commit_id":"dc9744b7c71cd6f32cd05278b04a11ff92511316"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"231f51d0b7e850352bba53478fd7de4ca09ba1f2","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        members \u003d []"},{"line_number":117,"context_line":"        if group.members:"},{"line_number":118,"context_line":"            # Display the instances that are not deleted."},{"line_number":119,"context_line":"            if not_deleted_inst_uuids:"},{"line_number":120,"context_line":"                # short-cut if we already pre-built a list of not deleted"},{"line_number":121,"context_line":"                # instances to be more efficient"},{"line_number":122,"context_line":"                members \u003d list(set(group.members) \u0026 not_deleted_inst_uuids)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7cb8eb1d_c07d6411","line":119,"in_reply_to":"472db7f7_16bc4603","updated":"2025-11-03 10:47:40.000000000","message":"Done","commit_id":"dc9744b7c71cd6f32cd05278b04a11ff92511316"}]}
