)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b796a7fe5410e840b793cb52590ee71ec17d55f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2758c687_38d8d880","updated":"2022-08-31 14:31:50.000000000","message":"Can we add a release note for this fix? It is an important one IMO.","commit_id":"c4ec0947b8ca34c51998eb0dac2ba4ff9debf4ef"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"3887b8252cb49ab8169ec2b70d41a141f8132c9c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a21eb14a_b994d459","updated":"2022-08-31 14:52:20.000000000","message":"LGTM, thanks!","commit_id":"e0a9ba1560bf38d07d7e03bc0f36195703884db1"}],"octavia/api/v2/controllers/member.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e2ce94b1a3c91c1af683baeb52e814fe20bb7e85","unresolved":true,"context_lines":[{"line_number":407,"context_line":"            provider_members \u003d []"},{"line_number":408,"context_line":"            # Create new members"},{"line_number":409,"context_line":"            for m in new_members:"},{"line_number":410,"context_line":"                m \u003d m.to_dict(render_unsets\u003dFalse)"},{"line_number":411,"context_line":"                m[\u0027project_id\u0027] \u003d db_pool.project_id"},{"line_number":412,"context_line":"                created_member \u003d self._graph_create(lock_session, m)"},{"line_number":413,"context_line":"                provider_member \u003d driver_utils.db_member_to_provider_member("}],"source_content_type":"text/x-python","patch_set":1,"id":"f32fe9f2_6bdd7410","line":410,"updated":"2022-08-25 23:47:42.000000000","message":"Move it down here so we don\u0027t double walk the list.","commit_id":"8646f49340f54f553ba81b5d3c2c54e16ba30ba2"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"15e3e2b1e3d5b53cc7fc3d32d8820e6ffaf61638","unresolved":false,"context_lines":[{"line_number":407,"context_line":"            provider_members \u003d []"},{"line_number":408,"context_line":"            # Create new members"},{"line_number":409,"context_line":"            for m in new_members:"},{"line_number":410,"context_line":"                m \u003d m.to_dict(render_unsets\u003dFalse)"},{"line_number":411,"context_line":"                m[\u0027project_id\u0027] \u003d db_pool.project_id"},{"line_number":412,"context_line":"                created_member \u003d self._graph_create(lock_session, m)"},{"line_number":413,"context_line":"                provider_member \u003d driver_utils.db_member_to_provider_member("}],"source_content_type":"text/x-python","patch_set":1,"id":"cb0d5a99_4c6d8824","line":410,"in_reply_to":"f32fe9f2_6bdd7410","updated":"2022-08-30 17:25:38.000000000","message":"Done","commit_id":"8646f49340f54f553ba81b5d3c2c54e16ba30ba2"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"b83f559b5db07350be9ef3f5677ddfa508b98169","unresolved":true,"context_lines":[{"line_number":386,"context_line":"            # Create new members"},{"line_number":387,"context_line":"            for m in new_members:"},{"line_number":388,"context_line":"                # NOTE(mnaser): In order to avoid hitting the Neutron API hard"},{"line_number":389,"context_line":"                # when creating new many members, we cache the"},{"line_number":390,"context_line":"                # validation results. We also validate new"},{"line_number":391,"context_line":"                # members only since subnet ID is immuatable."},{"line_number":392,"context_line":"                # If the member doesn\u0027t have a subnet, or the subnet is"}],"source_content_type":"text/x-python","patch_set":8,"id":"8e98b583_9f604c44","line":389,"range":{"start_line":389,"start_character":32,"end_line":389,"end_character":40},"updated":"2022-08-31 06:44:26.000000000","message":"many new","commit_id":"c5edd0479eb3bbf980be9bc62397d643c5005980"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"0d95e94bad4a78aa7c2874a60a97489ec9ba9ed8","unresolved":false,"context_lines":[{"line_number":386,"context_line":"            # Create new members"},{"line_number":387,"context_line":"            for m in new_members:"},{"line_number":388,"context_line":"                # NOTE(mnaser): In order to avoid hitting the Neutron API hard"},{"line_number":389,"context_line":"                # when creating new many members, we cache the"},{"line_number":390,"context_line":"                # validation results. We also validate new"},{"line_number":391,"context_line":"                # members only since subnet ID is immuatable."},{"line_number":392,"context_line":"                # If the member doesn\u0027t have a subnet, or the subnet is"}],"source_content_type":"text/x-python","patch_set":8,"id":"fe490725_60f16021","line":389,"range":{"start_line":389,"start_character":32,"end_line":389,"end_character":40},"in_reply_to":"8e98b583_9f604c44","updated":"2022-08-31 07:36:55.000000000","message":"Done","commit_id":"c5edd0479eb3bbf980be9bc62397d643c5005980"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"b83f559b5db07350be9ef3f5677ddfa508b98169","unresolved":true,"context_lines":[{"line_number":388,"context_line":"                # NOTE(mnaser): In order to avoid hitting the Neutron API hard"},{"line_number":389,"context_line":"                # when creating new many members, we cache the"},{"line_number":390,"context_line":"                # validation results. We also validate new"},{"line_number":391,"context_line":"                # members only since subnet ID is immuatable."},{"line_number":392,"context_line":"                # If the member doesn\u0027t have a subnet, or the subnet is"},{"line_number":393,"context_line":"                # already valid, move on. Run validate and add it to"},{"line_number":394,"context_line":"                # cache otherwise."}],"source_content_type":"text/x-python","patch_set":8,"id":"8acdacdf_99b270c2","line":391,"range":{"start_line":391,"start_character":50,"end_line":391,"end_character":60},"updated":"2022-08-31 06:44:26.000000000","message":"immutable","commit_id":"c5edd0479eb3bbf980be9bc62397d643c5005980"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"0d95e94bad4a78aa7c2874a60a97489ec9ba9ed8","unresolved":false,"context_lines":[{"line_number":388,"context_line":"                # NOTE(mnaser): In order to avoid hitting the Neutron API hard"},{"line_number":389,"context_line":"                # when creating new many members, we cache the"},{"line_number":390,"context_line":"                # validation results. We also validate new"},{"line_number":391,"context_line":"                # members only since subnet ID is immuatable."},{"line_number":392,"context_line":"                # If the member doesn\u0027t have a subnet, or the subnet is"},{"line_number":393,"context_line":"                # already valid, move on. Run validate and add it to"},{"line_number":394,"context_line":"                # cache otherwise."}],"source_content_type":"text/x-python","patch_set":8,"id":"0910e61d_991dfb04","line":391,"range":{"start_line":391,"start_character":50,"end_line":391,"end_character":60},"in_reply_to":"8acdacdf_99b270c2","updated":"2022-08-31 07:36:55.000000000","message":"Done","commit_id":"c5edd0479eb3bbf980be9bc62397d643c5005980"}],"octavia/tests/functional/api/v2/test_member.py":[{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"b83f559b5db07350be9ef3f5677ddfa508b98169","unresolved":true,"context_lines":[{"line_number":918,"context_line":"        member1 \u003d {\u0027address\u0027: \u0027192.0.2.1\u0027, \u0027protocol_port\u0027: 80,"},{"line_number":919,"context_line":"                   \u0027project_id\u0027: self.project_id, \u0027subnet_id\u0027: fake_subnet_id}"},{"line_number":920,"context_line":""},{"line_number":921,"context_line":"        # We are only concerned about the batch update, so clear out the"},{"line_number":922,"context_line":"        # create members calls above."},{"line_number":923,"context_line":"        mock_provider.reset_mock()"},{"line_number":924,"context_line":""},{"line_number":925,"context_line":"        req_dict \u003d [member1]"},{"line_number":926,"context_line":"        body \u003d {self.root_tag_list: req_dict}"}],"source_content_type":"text/x-python","patch_set":8,"id":"79e442cf_b04b0704","line":923,"range":{"start_line":921,"start_character":8,"end_line":923,"end_character":34},"updated":"2022-08-31 06:44:26.000000000","message":"This shouldn\u0027t be needed because mock_provider wasn\u0027t used in this test before.","commit_id":"c5edd0479eb3bbf980be9bc62397d643c5005980"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"0d95e94bad4a78aa7c2874a60a97489ec9ba9ed8","unresolved":false,"context_lines":[{"line_number":918,"context_line":"        member1 \u003d {\u0027address\u0027: \u0027192.0.2.1\u0027, \u0027protocol_port\u0027: 80,"},{"line_number":919,"context_line":"                   \u0027project_id\u0027: self.project_id, \u0027subnet_id\u0027: fake_subnet_id}"},{"line_number":920,"context_line":""},{"line_number":921,"context_line":"        # We are only concerned about the batch update, so clear out the"},{"line_number":922,"context_line":"        # create members calls above."},{"line_number":923,"context_line":"        mock_provider.reset_mock()"},{"line_number":924,"context_line":""},{"line_number":925,"context_line":"        req_dict \u003d [member1]"},{"line_number":926,"context_line":"        body \u003d {self.root_tag_list: req_dict}"}],"source_content_type":"text/x-python","patch_set":8,"id":"729c3226_6b54917f","line":923,"range":{"start_line":921,"start_character":8,"end_line":923,"end_character":34},"in_reply_to":"79e442cf_b04b0704","updated":"2022-08-31 07:36:55.000000000","message":"Done","commit_id":"c5edd0479eb3bbf980be9bc62397d643c5005980"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"b83f559b5db07350be9ef3f5677ddfa508b98169","unresolved":true,"context_lines":[{"line_number":929,"context_line":"                        \"subnet_exists\") as m_subnet_exists:"},{"line_number":930,"context_line":"            m_subnet_exists.return_value \u003d False"},{"line_number":931,"context_line":"            self.put(path, body, status\u003d404)"},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"    @mock.patch(\u0027octavia.api.drivers.driver_factory.get_driver\u0027)"},{"line_number":934,"context_line":"    @mock.patch(\u0027octavia.api.drivers.utils.call_provider\u0027)"},{"line_number":935,"context_line":"    def test_delete_batch_members(self, mock_provider, mock_get_driver):"}],"source_content_type":"text/x-python","patch_set":8,"id":"921a4575_dc545146","line":932,"updated":"2022-08-31 06:44:26.000000000","message":"Where is the assertion?","commit_id":"c5edd0479eb3bbf980be9bc62397d643c5005980"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"0d95e94bad4a78aa7c2874a60a97489ec9ba9ed8","unresolved":false,"context_lines":[{"line_number":929,"context_line":"                        \"subnet_exists\") as m_subnet_exists:"},{"line_number":930,"context_line":"            m_subnet_exists.return_value \u003d False"},{"line_number":931,"context_line":"            self.put(path, body, status\u003d404)"},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"    @mock.patch(\u0027octavia.api.drivers.driver_factory.get_driver\u0027)"},{"line_number":934,"context_line":"    @mock.patch(\u0027octavia.api.drivers.utils.call_provider\u0027)"},{"line_number":935,"context_line":"    def test_delete_batch_members(self, mock_provider, mock_get_driver):"}],"source_content_type":"text/x-python","patch_set":8,"id":"65487745_949d1f39","line":932,"in_reply_to":"921a4575_dc545146","updated":"2022-08-31 07:36:55.000000000","message":"status is 404 is our assertion here","commit_id":"c5edd0479eb3bbf980be9bc62397d643c5005980"}]}
