)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"a4d7d419fe281683d0e71691cdb3d9889bccf6a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9c485a9e_9e488dd9","updated":"2024-07-05 09:44:43.000000000","message":"lgtm, just needs a rebase, I think","commit_id":"3640dd85ae979c03bccdc4429b7c03bd1bf7f416"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"06649d8a936cccd7369a9c80439a32bd38176ef1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b89e0f9b_f08d0f40","updated":"2024-08-16 20:59:57.000000000","message":"Hey, Chuan! Thank you for working on this change. I believe we would benefit of some unit tests in the share_instance_sizes_sum_by_host in the sqlalchemy/api.py file to ensure it is behaving as we expect :)","commit_id":"978e14d02ffc8421bc5a2b503fcc5ac0d72d928e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f193a424c48834b6dca959b02d6a9af029fa5716","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"435760e4_4b8cd36d","updated":"2024-09-12 18:06:16.000000000","message":"Hi Chuan, \n\nThank you for this bug fix; please see comments inline regarding the test case/s","commit_id":"978e14d02ffc8421bc5a2b503fcc5ac0d72d928e"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"20b5509499843bec546baf240ea0624419411bdc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c0da7ddd_bc2d84b0","updated":"2024-09-12 15:08:55.000000000","message":"LGTM, thanks for implementing this optimization","commit_id":"978e14d02ffc8421bc5a2b503fcc5ac0d72d928e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"52c26029b392fbc53b3d2375f9dea8947e18371c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"cff0f23e_b57b9e9d","updated":"2024-09-12 14:35:40.000000000","message":"LGTM..!","commit_id":"978e14d02ffc8421bc5a2b503fcc5ac0d72d928e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e6f6962e16dcf01507b722e6afe321343269fc7a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ac4a0cea_5aedeb6d","updated":"2024-07-11 14:35:10.000000000","message":"recheck\n\nlvm replication test failed; sporadic snapshot activation issue in the LVM driver","commit_id":"978e14d02ffc8421bc5a2b503fcc5ac0d72d928e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9c43f61ac2ae01a86e3e320a37dab49f75a96587","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d9495ace_b4ff1d16","updated":"2024-10-10 16:06:21.000000000","message":"LGTM ..!","commit_id":"3b53d57afa9b878c3d268a008606d2b193108888"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b1b450417904482d15d1247cd1751d1a2afeca42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"f62f0fb2_b04c1091","updated":"2025-09-18 18:09:32.000000000","message":"LGTM, thanks for the fix Chuan!","commit_id":"bc7b71639b2cf0d93a02619008b237c8e5940988"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"2ae3117713b93a982de515d131fb56e50e8e3bff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6e30a3c4_5d8e1bb6","updated":"2025-01-20 14:28:41.000000000","message":"rebase on master","commit_id":"bc7b71639b2cf0d93a02619008b237c8e5940988"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"a19b70b5804eca69c1f6e6c389888d00793b5916","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"c9b6912e_e3dd9efb","updated":"2025-08-07 15:21:14.000000000","message":"recheck\nCI failed due to an issue in the grenade job that has been fixed. Let\u0027s get a clean run.","commit_id":"bc7b71639b2cf0d93a02619008b237c8e5940988"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b21f788e797e72676b1dfbfb7cc93a6439332c08","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"92ce2612_1cdb2f8f","updated":"2025-08-19 14:24:42.000000000","message":"recheck\nKnown issue with the dummy job, let\u0027s try to get a clean run","commit_id":"bc7b71639b2cf0d93a02619008b237c8e5940988"}],"manila/share/drivers/netapp/dataontap/client/client_cmode.py":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"a4d7d419fe281683d0e71691cdb3d9889bccf6a1","unresolved":true,"context_lines":[{"line_number":2054,"context_line":"                    }"},{"line_number":2055,"context_line":"                }"},{"line_number":2056,"context_line":"            }"},{"line_number":2057,"context_line":"            result \u003d None"},{"line_number":2058,"context_line":"            # Catch the exception in case kerberos is not configured with LIF."},{"line_number":2059,"context_line":"            try:"},{"line_number":2060,"context_line":"                result \u003d self.send_request(\u0027kerberos-config-get\u0027, api_args)"},{"line_number":2061,"context_line":"            except netapp_api.NaApiError as e:"},{"line_number":2062,"context_line":"                with excutils.save_and_reraise_exception() as exc_context:"},{"line_number":2063,"context_line":"                    if \"entry doesn\u0027t exist\" in e.message:"},{"line_number":2064,"context_line":"                        exc_context.reraise \u003d False"},{"line_number":2065,"context_line":"                        return False"},{"line_number":2066,"context_line":""},{"line_number":2067,"context_line":"            attributes \u003d result.get_child_by_name(\u0027attributes\u0027)"},{"line_number":2068,"context_line":"            kerberos_info \u003d attributes.get_child_by_name("}],"source_content_type":"text/x-python","patch_set":5,"id":"2f644e07_ca57ba33","line":2065,"range":{"start_line":2057,"start_character":12,"end_line":2065,"end_character":36},"updated":"2024-07-05 09:44:43.000000000","message":"That does not belong here, please rebase","commit_id":"3640dd85ae979c03bccdc4429b7c03bd1bf7f416"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"032e304e521123a6106e4d944a68083fe96ab248","unresolved":false,"context_lines":[{"line_number":2054,"context_line":"                    }"},{"line_number":2055,"context_line":"                }"},{"line_number":2056,"context_line":"            }"},{"line_number":2057,"context_line":"            result \u003d None"},{"line_number":2058,"context_line":"            # Catch the exception in case kerberos is not configured with LIF."},{"line_number":2059,"context_line":"            try:"},{"line_number":2060,"context_line":"                result \u003d self.send_request(\u0027kerberos-config-get\u0027, api_args)"},{"line_number":2061,"context_line":"            except netapp_api.NaApiError as e:"},{"line_number":2062,"context_line":"                with excutils.save_and_reraise_exception() as exc_context:"},{"line_number":2063,"context_line":"                    if \"entry doesn\u0027t exist\" in e.message:"},{"line_number":2064,"context_line":"                        exc_context.reraise \u003d False"},{"line_number":2065,"context_line":"                        return False"},{"line_number":2066,"context_line":""},{"line_number":2067,"context_line":"            attributes \u003d result.get_child_by_name(\u0027attributes\u0027)"},{"line_number":2068,"context_line":"            kerberos_info \u003d attributes.get_child_by_name("}],"source_content_type":"text/x-python","patch_set":5,"id":"028e1dc7_76cb76f7","line":2065,"range":{"start_line":2057,"start_character":12,"end_line":2065,"end_character":36},"in_reply_to":"2f644e07_ca57ba33","updated":"2024-07-09 12:58:40.000000000","message":"Done","commit_id":"3640dd85ae979c03bccdc4429b7c03bd1bf7f416"}],"manila/tests/db/sqlalchemy/test_api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f193a424c48834b6dca959b02d6a9af029fa5716","unresolved":true,"context_lines":[{"line_number":554,"context_line":"        else:"},{"line_number":555,"context_line":"            self.assertNotIn(\u0027share_proto\u0027, instance)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def test_share_instance_get_all_by_host_not_found_exception(self):"},{"line_number":558,"context_line":"        db_utils.create_share()"},{"line_number":559,"context_line":"        self.mock_object(db_api, \u0027_share_get\u0027, mock.Mock("},{"line_number":560,"context_line":"                         side_effect\u003dexception.NotFound))"},{"line_number":561,"context_line":"        instances \u003d db_api.share_instance_get_all_by_host("},{"line_number":562,"context_line":"            self.ctxt, \u0027fake_host\u0027, True)"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"        self.assertEqual(0, len(instances))"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"    def test_share_instance_get_all_by_share_group(self):"},{"line_number":567,"context_line":"        group \u003d db_utils.create_share_group()"}],"source_content_type":"text/x-python","patch_set":6,"id":"63706ea2_fa9a6395","side":"PARENT","line":564,"range":{"start_line":557,"start_character":0,"end_line":564,"end_character":43},"updated":"2024-09-12 18:06:16.000000000","message":"why are we dropping this test case?\n\nwe could instead use one or more additional test cases around the new DB methods introduced (share_instance_sizes_sum_by_host, _set_instances_share_data_batch)","commit_id":"e982eae40a21da26727a4d55a17a3b03f716d046"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"dcf96156cc2c86b4ddcde870fe0c548ab73ca4fa","unresolved":true,"context_lines":[{"line_number":554,"context_line":"        else:"},{"line_number":555,"context_line":"            self.assertNotIn(\u0027share_proto\u0027, instance)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def test_share_instance_get_all_by_host_not_found_exception(self):"},{"line_number":558,"context_line":"        db_utils.create_share()"},{"line_number":559,"context_line":"        self.mock_object(db_api, \u0027_share_get\u0027, mock.Mock("},{"line_number":560,"context_line":"                         side_effect\u003dexception.NotFound))"},{"line_number":561,"context_line":"        instances \u003d db_api.share_instance_get_all_by_host("},{"line_number":562,"context_line":"            self.ctxt, \u0027fake_host\u0027, True)"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"        self.assertEqual(0, len(instances))"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"    def test_share_instance_get_all_by_share_group(self):"},{"line_number":567,"context_line":"        group \u003d db_utils.create_share_group()"}],"source_content_type":"text/x-python","patch_set":6,"id":"87f34afc_373018c4","side":"PARENT","line":564,"range":{"start_line":557,"start_character":0,"end_line":564,"end_character":43},"in_reply_to":"22004c7d_0e99310d","updated":"2024-09-30 21:35:43.000000000","message":"Ah; true, thanks for explaining.. but, don\u0027t you think we could use some unit testing for `share_instance_sizes_sum_by_host` and `_set_instances_share_data_batch`","commit_id":"e982eae40a21da26727a4d55a17a3b03f716d046"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"2ae3117713b93a982de515d131fb56e50e8e3bff","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        else:"},{"line_number":555,"context_line":"            self.assertNotIn(\u0027share_proto\u0027, instance)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def test_share_instance_get_all_by_host_not_found_exception(self):"},{"line_number":558,"context_line":"        db_utils.create_share()"},{"line_number":559,"context_line":"        self.mock_object(db_api, \u0027_share_get\u0027, mock.Mock("},{"line_number":560,"context_line":"                         side_effect\u003dexception.NotFound))"},{"line_number":561,"context_line":"        instances \u003d db_api.share_instance_get_all_by_host("},{"line_number":562,"context_line":"            self.ctxt, \u0027fake_host\u0027, True)"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"        self.assertEqual(0, len(instances))"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"    def test_share_instance_get_all_by_share_group(self):"},{"line_number":567,"context_line":"        group \u003d db_utils.create_share_group()"}],"source_content_type":"text/x-python","patch_set":6,"id":"908138ab_c6a92171","side":"PARENT","line":564,"range":{"start_line":557,"start_character":0,"end_line":564,"end_character":43},"in_reply_to":"3933961f_de7e6366","updated":"2025-01-20 14:28:41.000000000","message":"Done","commit_id":"e982eae40a21da26727a4d55a17a3b03f716d046"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"45dc8d26fcaaef85761f1939f5990dbfb228f9ed","unresolved":true,"context_lines":[{"line_number":554,"context_line":"        else:"},{"line_number":555,"context_line":"            self.assertNotIn(\u0027share_proto\u0027, instance)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def test_share_instance_get_all_by_host_not_found_exception(self):"},{"line_number":558,"context_line":"        db_utils.create_share()"},{"line_number":559,"context_line":"        self.mock_object(db_api, \u0027_share_get\u0027, mock.Mock("},{"line_number":560,"context_line":"                         side_effect\u003dexception.NotFound))"},{"line_number":561,"context_line":"        instances \u003d db_api.share_instance_get_all_by_host("},{"line_number":562,"context_line":"            self.ctxt, \u0027fake_host\u0027, True)"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"        self.assertEqual(0, len(instances))"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"    def test_share_instance_get_all_by_share_group(self):"},{"line_number":567,"context_line":"        group \u003d db_utils.create_share_group()"}],"source_content_type":"text/x-python","patch_set":6,"id":"22004c7d_0e99310d","side":"PARENT","line":564,"range":{"start_line":557,"start_character":0,"end_line":564,"end_character":43},"in_reply_to":"63706ea2_fa9a6395","updated":"2024-09-30 09:18:32.000000000","message":"we don\u0027t expect NotFound error from _set_instances_share_data_batch. In that function, we load all share instances in one DB call and iterate over them. The share that has no share instances is skipped naturally because it is not visited in the loop.","commit_id":"e982eae40a21da26727a4d55a17a3b03f716d046"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"f236bb52a1bdb3eac45fe59b9f50c868b26b8b53","unresolved":true,"context_lines":[{"line_number":554,"context_line":"        else:"},{"line_number":555,"context_line":"            self.assertNotIn(\u0027share_proto\u0027, instance)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def test_share_instance_get_all_by_host_not_found_exception(self):"},{"line_number":558,"context_line":"        db_utils.create_share()"},{"line_number":559,"context_line":"        self.mock_object(db_api, \u0027_share_get\u0027, mock.Mock("},{"line_number":560,"context_line":"                         side_effect\u003dexception.NotFound))"},{"line_number":561,"context_line":"        instances \u003d db_api.share_instance_get_all_by_host("},{"line_number":562,"context_line":"            self.ctxt, \u0027fake_host\u0027, True)"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"        self.assertEqual(0, len(instances))"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"    def test_share_instance_get_all_by_share_group(self):"},{"line_number":567,"context_line":"        group \u003d db_utils.create_share_group()"}],"source_content_type":"text/x-python","patch_set":6,"id":"3933961f_de7e6366","side":"PARENT","line":564,"range":{"start_line":557,"start_character":0,"end_line":564,"end_character":43},"in_reply_to":"87f34afc_373018c4","updated":"2024-10-01 10:24:30.000000000","message":"yes, adding a test when instance is not created","commit_id":"e982eae40a21da26727a4d55a17a3b03f716d046"}]}
