)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"61708e8601c4ea88e13a7f8df7acf3abd3f5653e","unresolved":false,"context_lines":[{"line_number":12,"context_line":"2.Display_name,status,share_type_id,project_id and so on"},{"line_number":13,"context_line":"  should filter out before pagination query,"},{"line_number":14,"context_line":"  rather than filter out in the result of pagination query."},{"line_number":15,"context_line":"3.Fuzzy matching of diaplay_name should use database."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I6ddd919bbd5180593cc52bf986912f65a2dab3a7"},{"line_number":18,"context_line":"Closes-Bug: #1860061"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1fa4df85_79f7dd5a","line":15,"range":{"start_line":15,"start_character":20,"end_line":15,"end_character":27},"updated":"2020-03-20 07:54:19.000000000","message":"typo: diaplay -\u003e display","commit_id":"ec6b7e45ffa5c458bbfa5b241a38ba74bdce45c8"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e9ffeec7df974dd397749645e104ff108768a4bb","unresolved":false,"context_lines":[{"line_number":12,"context_line":"2.Display_name,status,share_type_id,project_id and so on"},{"line_number":13,"context_line":"  should filter out before pagination query,"},{"line_number":14,"context_line":"  rather than filter out in the result of pagination query."},{"line_number":15,"context_line":"3.Fuzzy matching of diaplay_name should use database."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I6ddd919bbd5180593cc52bf986912f65a2dab3a7"},{"line_number":18,"context_line":"Closes-Bug: #1860061"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"df33271e_d1673025","line":15,"range":{"start_line":15,"start_character":20,"end_line":15,"end_character":27},"in_reply_to":"1fa4df85_79f7dd5a","updated":"2020-03-24 06:25:48.000000000","message":"Done","commit_id":"ec6b7e45ffa5c458bbfa5b241a38ba74bdce45c8"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"1.In this bugfix(https://review.opendev.org/#/c/688542/),"},{"line_number":10,"context_line":"  totalcount returned by pagination query is param \u0027limit\u0027"},{"line_number":11,"context_line":"  (should be total count of satisfy conditions)."},{"line_number":12,"context_line":"2.Display_name,status,share_type_id,project_id and so on"},{"line_number":13,"context_line":"  should filter out before pagination query,"},{"line_number":14,"context_line":"  rather than filter out in the result of pagination query."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"df33271e_95ce8f60","line":11,"range":{"start_line":11,"start_character":12,"end_line":11,"end_character":13},"updated":"2020-04-02 14:06:00.000000000","message":"nit: the","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"1.In this bugfix(https://review.opendev.org/#/c/688542/),"},{"line_number":10,"context_line":"  totalcount returned by pagination query is param \u0027limit\u0027"},{"line_number":11,"context_line":"  (should be total count of satisfy conditions)."},{"line_number":12,"context_line":"2.Display_name,status,share_type_id,project_id and so on"},{"line_number":13,"context_line":"  should filter out before pagination query,"},{"line_number":14,"context_line":"  rather than filter out in the result of pagination query."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"df33271e_35b4e3d0","line":11,"range":{"start_line":11,"start_character":28,"end_line":11,"end_character":35},"updated":"2020-04-02 14:06:00.000000000","message":"nit: the satisfied","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"1.In this bugfix(https://review.opendev.org/#/c/688542/),"},{"line_number":10,"context_line":"  totalcount returned by pagination query is param \u0027limit\u0027"},{"line_number":11,"context_line":"  (should be total count of satisfy conditions)."},{"line_number":12,"context_line":"2.Display_name,status,share_type_id,project_id and so on"},{"line_number":13,"context_line":"  should filter out before pagination query,"},{"line_number":14,"context_line":"  rather than filter out in the result of pagination query."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1f493fa4_8ea8e71f","line":11,"range":{"start_line":11,"start_character":28,"end_line":11,"end_character":35},"in_reply_to":"df33271e_35b4e3d0","updated":"2020-04-26 07:02:33.000000000","message":"Done","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":9,"context_line":"1.In this bugfix(https://review.opendev.org/#/c/688542/),"},{"line_number":10,"context_line":"  totalcount returned by pagination query is param \u0027limit\u0027"},{"line_number":11,"context_line":"  (should be total count of satisfy conditions)."},{"line_number":12,"context_line":"2.Display_name,status,share_type_id,project_id and so on"},{"line_number":13,"context_line":"  should filter out before pagination query,"},{"line_number":14,"context_line":"  rather than filter out in the result of pagination query."},{"line_number":15,"context_line":"3.Fuzzy matching of display_name should use database."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"df33271e_1509df94","line":12,"range":{"start_line":12,"start_character":2,"end_line":12,"end_character":46},"updated":"2020-04-02 14:06:00.000000000","message":"nit: please add blank spaces between the items and surround each one with `. One example: ``display_name``","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"1.In this bugfix(https://review.opendev.org/#/c/688542/),"},{"line_number":10,"context_line":"  totalcount returned by pagination query is param \u0027limit\u0027"},{"line_number":11,"context_line":"  (should be total count of satisfy conditions)."},{"line_number":12,"context_line":"2.Display_name,status,share_type_id,project_id and so on"},{"line_number":13,"context_line":"  should filter out before pagination query,"},{"line_number":14,"context_line":"  rather than filter out in the result of pagination query."},{"line_number":15,"context_line":"3.Fuzzy matching of display_name should use database."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1f493fa4_ee624b16","line":12,"range":{"start_line":12,"start_character":2,"end_line":12,"end_character":46},"in_reply_to":"df33271e_1509df94","updated":"2020-04-26 07:02:33.000000000","message":"Done","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  totalcount returned by pagination query is param \u0027limit\u0027"},{"line_number":11,"context_line":"  (should be total count of satisfy conditions)."},{"line_number":12,"context_line":"2.Display_name,status,share_type_id,project_id and so on"},{"line_number":13,"context_line":"  should filter out before pagination query,"},{"line_number":14,"context_line":"  rather than filter out in the result of pagination query."},{"line_number":15,"context_line":"3.Fuzzy matching of display_name should use database."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"df33271e_35022370","line":13,"range":{"start_line":13,"start_character":9,"end_line":13,"end_character":15},"updated":"2020-04-02 14:06:00.000000000","message":"be filtered","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  totalcount returned by pagination query is param \u0027limit\u0027"},{"line_number":11,"context_line":"  (should be total count of satisfy conditions)."},{"line_number":12,"context_line":"2.Display_name,status,share_type_id,project_id and so on"},{"line_number":13,"context_line":"  should filter out before pagination query,"},{"line_number":14,"context_line":"  rather than filter out in the result of pagination query."},{"line_number":15,"context_line":"3.Fuzzy matching of display_name should use database."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1f493fa4_ce678f25","line":13,"range":{"start_line":13,"start_character":9,"end_line":13,"end_character":15},"in_reply_to":"df33271e_35022370","updated":"2020-04-26 07:02:33.000000000","message":"Done","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"}],"manila/api/v1/shares.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        common.remove_invalid_options("},{"line_number":169,"context_line":"            context, search_opts, self._get_share_search_options())"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        search_opts_copy \u003d copy.deepcopy(search_opts)"},{"line_number":172,"context_line":"        shares \u003d self.share_api.get_all("},{"line_number":173,"context_line":"            context, search_opts\u003dsearch_opts, sort_key\u003dsort_key,"},{"line_number":174,"context_line":"            sort_dir\u003dsort_dir)"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_0187fbb7","line":171,"range":{"start_line":171,"start_character":8,"end_line":171,"end_character":53},"updated":"2020-09-23 20:56:34.000000000","message":"when a count isn\u0027t requested; we can avoid it during those times:\n\n\n  if show_count:\n      search_opts_copy \u003d copy.deepcopy(search_opts)\n\n\nbut, do we need the extra query at all?","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        common.remove_invalid_options("},{"line_number":169,"context_line":"            context, search_opts, self._get_share_search_options())"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        search_opts_copy \u003d copy.deepcopy(search_opts)"},{"line_number":172,"context_line":"        shares \u003d self.share_api.get_all("},{"line_number":173,"context_line":"            context, search_opts\u003dsearch_opts, sort_key\u003dsort_key,"},{"line_number":174,"context_line":"            sort_dir\u003dsort_dir)"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_977d096f","line":171,"range":{"start_line":171,"start_character":8,"end_line":171,"end_character":53},"in_reply_to":"9f560f44_0187fbb7","updated":"2020-09-23 22:25:07.000000000","message":"Removed...","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            context, search_opts\u003dsearch_opts, sort_key\u003dsort_key,"},{"line_number":174,"context_line":"            sort_dir\u003dsort_dir)"},{"line_number":175,"context_line":"        total_count \u003d None"},{"line_number":176,"context_line":"        if show_count:"},{"line_number":177,"context_line":"            total_count \u003d self.share_api.calculate_shares_count("},{"line_number":178,"context_line":"                context, search_opts_copy)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        if is_detail:"},{"line_number":181,"context_line":"            shares \u003d self._view_builder.detail_list(req, shares, total_count)"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_5479af90","line":178,"range":{"start_line":176,"start_character":0,"end_line":178,"end_character":42},"updated":"2020-09-23 20:56:34.000000000","message":"I don\u0027t believe this needs to be changed - it\u0027s wasteful to make two queries - one to get a list of shares and another to get the count.","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            context, search_opts\u003dsearch_opts, sort_key\u003dsort_key,"},{"line_number":174,"context_line":"            sort_dir\u003dsort_dir)"},{"line_number":175,"context_line":"        total_count \u003d None"},{"line_number":176,"context_line":"        if show_count:"},{"line_number":177,"context_line":"            total_count \u003d self.share_api.calculate_shares_count("},{"line_number":178,"context_line":"                context, search_opts_copy)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        if is_detail:"},{"line_number":181,"context_line":"            shares \u003d self._view_builder.detail_list(req, shares, total_count)"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_d792e19e","line":178,"range":{"start_line":176,"start_character":0,"end_line":178,"end_character":42},"in_reply_to":"9f560f44_5479af90","updated":"2020-09-23 22:25:07.000000000","message":"Makes total sense. Removed.","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            \u0027is_public\u0027, \u0027metadata\u0027, \u0027extra_specs\u0027, \u0027sort_key\u0027, \u0027sort_dir\u0027,"},{"line_number":196,"context_line":"            \u0027share_group_id\u0027, \u0027share_group_snapshot_id\u0027, \u0027export_location_id\u0027,"},{"line_number":197,"context_line":"            \u0027export_location_path\u0027, \u0027display_name~\u0027, \u0027display_description~\u0027,"},{"line_number":198,"context_line":"            \u0027display_description\u0027, \u0027limit\u0027, \u0027offset\u0027, \u0027host\u0027, \u0027share_proto\u0027"},{"line_number":199,"context_line":"        )"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_21a31f45","line":198,"range":{"start_line":198,"start_character":54,"end_line":198,"end_character":61},"updated":"2020-09-23 20:56:34.000000000","message":"\"host\" is an invalid search option for non admin users.","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            \u0027is_public\u0027, \u0027metadata\u0027, \u0027extra_specs\u0027, \u0027sort_key\u0027, \u0027sort_dir\u0027,"},{"line_number":196,"context_line":"            \u0027share_group_id\u0027, \u0027share_group_snapshot_id\u0027, \u0027export_location_id\u0027,"},{"line_number":197,"context_line":"            \u0027export_location_path\u0027, \u0027display_name~\u0027, \u0027display_description~\u0027,"},{"line_number":198,"context_line":"            \u0027display_description\u0027, \u0027limit\u0027, \u0027offset\u0027, \u0027host\u0027, \u0027share_proto\u0027"},{"line_number":199,"context_line":"        )"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_1789f96d","line":198,"range":{"start_line":198,"start_character":54,"end_line":198,"end_character":61},"in_reply_to":"9f560f44_21a31f45","updated":"2020-09-23 22:25:07.000000000","message":"Done","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":367,"context_line":"                else:"},{"line_number":368,"context_line":"                    share_type \u003d share_types.get_share_type("},{"line_number":369,"context_line":"                        context, req_share_type)"},{"line_number":370,"context_line":"            except (exception.ShareTypeNotFound,"},{"line_number":371,"context_line":"                    exception.ShareTypeNotFoundByName):"},{"line_number":372,"context_line":"                msg \u003d _(\"Share type not found.\")"},{"line_number":373,"context_line":"                raise exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":374,"context_line":"        elif not snapshot:"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_81614b14","line":371,"range":{"start_line":370,"start_character":12,"end_line":371,"end_character":54},"updated":"2020-09-23 20:56:34.000000000","message":"is this related to this bug fix?","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":367,"context_line":"                else:"},{"line_number":368,"context_line":"                    share_type \u003d share_types.get_share_type("},{"line_number":369,"context_line":"                        context, req_share_type)"},{"line_number":370,"context_line":"            except (exception.ShareTypeNotFound,"},{"line_number":371,"context_line":"                    exception.ShareTypeNotFoundByName):"},{"line_number":372,"context_line":"                msg \u003d _(\"Share type not found.\")"},{"line_number":373,"context_line":"                raise exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":374,"context_line":"        elif not snapshot:"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_37e19d2c","line":371,"range":{"start_line":370,"start_character":12,"end_line":371,"end_character":54},"in_reply_to":"9f560f44_81614b14","updated":"2020-09-23 22:25:07.000000000","message":"Nope... Just seems like a bad rebase...","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"82fa26ddab236499531c759a75d4dd9ccd4428a6","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            sort_dir\u003dsort_dir)"},{"line_number":173,"context_line":"        total_count \u003d None"},{"line_number":174,"context_line":"        if show_count:"},{"line_number":175,"context_line":"            total_count \u003d len(shares)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        if is_detail:"},{"line_number":178,"context_line":"            shares \u003d self._view_builder.detail_list(req, shares, total_count)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_8827a863","line":175,"range":{"start_line":175,"start_character":12,"end_line":175,"end_character":37},"updated":"2020-09-24 02:00:27.000000000","message":"Now we come back to that.\nlen(shares) is the argument \u0027limit\u0027.\nThe second queries is not efficient, but it\u0027s the real \u0027total_count\u0027 that satisfied the conditions. \nIf we want to more efficient, I think need to modify \u0027self.share_api.get_all\u0027 and let it return total_count and shares.","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"5a87fd4a35303a8f597265fe83dcfaeb8df5782a","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            sort_dir\u003dsort_dir)"},{"line_number":173,"context_line":"        total_count \u003d None"},{"line_number":174,"context_line":"        if show_count:"},{"line_number":175,"context_line":"            total_count \u003d len(shares)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        if is_detail:"},{"line_number":178,"context_line":"            shares \u003d self._view_builder.detail_list(req, shares, total_count)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_a3cbaf1a","line":175,"range":{"start_line":175,"start_character":12,"end_line":175,"end_character":37},"in_reply_to":"9f560f44_23d5dfe6","updated":"2020-09-24 03:19:30.000000000","message":"I agree with you. Previous, it was two sessiones and two queries, it\u0027s wasteful.\nNow wo can user one session return total_count and shares.","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"0368520d4c1e19ebaf1a463c774f24ea21ef7bf8","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            sort_dir\u003dsort_dir)"},{"line_number":173,"context_line":"        total_count \u003d None"},{"line_number":174,"context_line":"        if show_count:"},{"line_number":175,"context_line":"            total_count \u003d len(shares)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        if is_detail:"},{"line_number":178,"context_line":"            shares \u003d self._view_builder.detail_list(req, shares, total_count)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_d86209ad","line":175,"range":{"start_line":175,"start_character":12,"end_line":175,"end_character":37},"in_reply_to":"9f560f44_43c1f3e3","updated":"2020-09-24 07:45:19.000000000","message":"Done","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efe7137ecbd175299bb33d55b936c8a3afa8a85e","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            sort_dir\u003dsort_dir)"},{"line_number":173,"context_line":"        total_count \u003d None"},{"line_number":174,"context_line":"        if show_count:"},{"line_number":175,"context_line":"            total_count \u003d len(shares)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        if is_detail:"},{"line_number":178,"context_line":"            shares \u003d self._view_builder.detail_list(req, shares, total_count)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_c81fe06d","line":175,"range":{"start_line":175,"start_character":12,"end_line":175,"end_character":37},"in_reply_to":"9f560f44_684a1483","updated":"2020-09-24 02:43:37.000000000","message":"I suppose it still wouldn\u0027t work, considering that the limit is being applied in the database level, so when the results are returned, the results were already limited and it wouldn\u0027t be the same amount of items that matched the query. Then, here, limit and len(shares) are the same value.","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"8cb725506be885c921267ad34767d4815a6548fc","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            sort_dir\u003dsort_dir)"},{"line_number":173,"context_line":"        total_count \u003d None"},{"line_number":174,"context_line":"        if show_count:"},{"line_number":175,"context_line":"            total_count \u003d len(shares)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        if is_detail:"},{"line_number":178,"context_line":"            shares \u003d self._view_builder.detail_list(req, shares, total_count)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_a3c60f9b","line":175,"range":{"start_line":175,"start_character":12,"end_line":175,"end_character":37},"in_reply_to":"9f560f44_684a1483","updated":"2020-09-24 02:53:35.000000000","message":"I think we should revert the code. Whatever total_count \u003d limit or len(shares), it\u0027s not right.\nFor example:\n If limit\u003d10, the shares satisfied the conditions is 500, the shares returned is also 10(maybe less, such as satisfied the conditions is 495, limit\u003d10,offset\u003d490,len(shares)\u003d5)\n \nHowever, what we want is 500 or 495. Web ui can use totalcount to make pagination.","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1746f048f5690ea53485dac728eeb28757a23309","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            sort_dir\u003dsort_dir)"},{"line_number":173,"context_line":"        total_count \u003d None"},{"line_number":174,"context_line":"        if show_count:"},{"line_number":175,"context_line":"            total_count \u003d len(shares)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        if is_detail:"},{"line_number":178,"context_line":"            shares \u003d self._view_builder.detail_list(req, shares, total_count)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_43c1f3e3","line":175,"range":{"start_line":175,"start_character":12,"end_line":175,"end_character":37},"in_reply_to":"9f560f44_83e94b80","updated":"2020-09-24 03:24:35.000000000","message":"True, it\u0027s still two queries, but one session. Please feel free to update this change. I\u0027m still tracking this for the Victoria cycle RC1 due tomorrow. If we can\u0027t get this in, though, we can surely work on it and back port this change. So, certainly no rush..","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c00eb93ef058692dda3783468754a2b7791068b9","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            sort_dir\u003dsort_dir)"},{"line_number":173,"context_line":"        total_count \u003d None"},{"line_number":174,"context_line":"        if show_count:"},{"line_number":175,"context_line":"            total_count \u003d len(shares)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        if is_detail:"},{"line_number":178,"context_line":"            shares \u003d self._view_builder.detail_list(req, shares, total_count)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_684a1483","line":175,"range":{"start_line":175,"start_character":12,"end_line":175,"end_character":37},"in_reply_to":"9f560f44_8827a863","updated":"2020-09-24 02:36:36.000000000","message":"you\u0027re right, we could use:\n\n  total_count \u003d limit or len(shares)\n\n\nHow does that sound?","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c4bc88a5a6acef7af7ab34e3a68b7c6b903318d4","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            sort_dir\u003dsort_dir)"},{"line_number":173,"context_line":"        total_count \u003d None"},{"line_number":174,"context_line":"        if show_count:"},{"line_number":175,"context_line":"            total_count \u003d len(shares)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        if is_detail:"},{"line_number":178,"context_line":"            shares \u003d self._view_builder.detail_list(req, shares, total_count)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_23d5dfe6","line":175,"range":{"start_line":175,"start_character":12,"end_line":175,"end_character":37},"in_reply_to":"9f560f44_a3c60f9b","updated":"2020-09-24 03:06:45.000000000","message":"I see - \n\nIs it possible to then send this \"show_count\" to the database API, and, \n\n-\u003e If \"show_count\" is desired: construct a query without limit and offset, and get the count using sqlalchemy\u0027s func.count; I like the optimization you had earlier, MaAoyu (the one with with_entities(func.count()).scalar())\n-\u003e then apply limit and offset if requested, and return both count and the results from the DB layer\n\nHow does this sound?\n\nI\u0027m trying to avoid two round trips to the DB - wrap both of these in the same session, and save time.","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"6aba1598c9b93e5f8531935231b51808838a688d","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            sort_dir\u003dsort_dir)"},{"line_number":173,"context_line":"        total_count \u003d None"},{"line_number":174,"context_line":"        if show_count:"},{"line_number":175,"context_line":"            total_count \u003d len(shares)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        if is_detail:"},{"line_number":178,"context_line":"            shares \u003d self._view_builder.detail_list(req, shares, total_count)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_83e94b80","line":175,"range":{"start_line":175,"start_character":12,"end_line":175,"end_character":37},"in_reply_to":"9f560f44_a3cbaf1a","updated":"2020-09-24 03:21:53.000000000","message":"Now we can use one session return total_count and shares.But it\u0027s always two queries.","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":32531,"name":"Dina Saparbaeva","email":"dinas27@outlook.com","username":"disap"},"change_message_id":"762a76c79def224074325668a7906c6feb278a0f","unresolved":true,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        total_count \u003d None"},{"line_number":168,"context_line":"        if show_count:"},{"line_number":169,"context_line":"            count, shares \u003d self.share_api.get_all_with_count("},{"line_number":170,"context_line":"                context, search_opts\u003dsearch_opts, sort_key\u003dsort_key,"},{"line_number":171,"context_line":"                sort_dir\u003dsort_dir)"},{"line_number":172,"context_line":"            total_count \u003d count"}],"source_content_type":"text/x-python","patch_set":37,"id":"0b34cb9d_674dae62","line":169,"updated":"2021-01-21 16:45:07.000000000","message":"Hi Carlos! One question: I was working on on implementing \"with_count\" in manila-ui,https://review.opendev.org/c/openstack/manila-ui/+/770249 and wondering if your patch is merged, will I be needing to rework it. Because currently count is returned like the following:\n([\u003cShare: 1e07ec13-ea0e-4541-a06e-346ee2639fc4\u003e, \u003cShare: f91e8913-5e6a-4bd0-9fa5-fff15b6f648a\u003e, \u003cShare: 2e4d62e0-df52-4a05-a1f2-74080d25b12a\u003e], 3), will it be still returned like this or it will become something like ([\u003cShare: 1e07ec13-ea0e-4541-a06e-346ee2639fc4\u003e, \u003cShare: f91e8913-5e6a-4bd0-9fa5-fff15b6f648a\u003e, \u003cShare: 2e4d62e0-df52-4a05-a1f2-74080d25b12a\u003e], {\u0027count\u0027:3})? Thanks :)","commit_id":"1526b6f11f498921aa64d90b714a2c93bdbf681d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8c929328de4a65407df99ea042b9d07275a81304","unresolved":true,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        total_count \u003d None"},{"line_number":168,"context_line":"        if show_count:"},{"line_number":169,"context_line":"            count, shares \u003d self.share_api.get_all_with_count("},{"line_number":170,"context_line":"                context, search_opts\u003dsearch_opts, sort_key\u003dsort_key,"},{"line_number":171,"context_line":"                sort_dir\u003dsort_dir)"},{"line_number":172,"context_line":"            total_count \u003d count"}],"source_content_type":"text/x-python","patch_set":37,"id":"dabdd6fc_e04ba654","line":169,"in_reply_to":"0b34cb9d_674dae62","updated":"2021-01-22 11:27:49.000000000","message":"Hi, Dina! That\u0027s an important thing you\u0027re concerned about :)\nAs the return of this method hasn\u0027t changed, the return should be exacly the same as it is nowadays, considering that this change focuses on moving the count calculation to the database layer, before applying the filters.\nSo the return of this method is still generated by the view builder below, using the total count that should have the correct value now :)","commit_id":"1526b6f11f498921aa64d90b714a2c93bdbf681d"}],"manila/db/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":991,"context_line":"                                                 server_details)"},{"line_number":992,"context_line":""},{"line_number":993,"context_line":""},{"line_number":994,"context_line":"def share_servers_host_update(context, current_host, new_host):"},{"line_number":995,"context_line":"    \"\"\"Update the host attr of all share servers that are on current_host.\"\"\""},{"line_number":996,"context_line":"    return IMPL.share_servers_host_update(context, current_host, new_host)"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":""},{"line_number":999,"context_line":"##################"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_749953ce","line":996,"range":{"start_line":994,"start_character":0,"end_line":996,"end_character":74},"updated":"2020-09-23 20:56:34.000000000","message":"looks like a rebase issue - this method was removed.","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":991,"context_line":"                                                 server_details)"},{"line_number":992,"context_line":""},{"line_number":993,"context_line":""},{"line_number":994,"context_line":"def share_servers_host_update(context, current_host, new_host):"},{"line_number":995,"context_line":"    \"\"\"Update the host attr of all share servers that are on current_host.\"\"\""},{"line_number":996,"context_line":"    return IMPL.share_servers_host_update(context, current_host, new_host)"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":""},{"line_number":999,"context_line":"##################"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_17b73923","line":996,"range":{"start_line":994,"start_character":0,"end_line":996,"end_character":74},"in_reply_to":"9f560f44_749953ce","updated":"2020-09-23 22:25:07.000000000","message":"Done","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":1126,"context_line":"####################"},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"def calculate_shares_count(context, filters):"},{"line_number":1130,"context_line":"    return IMPL.calculate_shares_count(context, filters)"},{"line_number":1131,"context_line":""},{"line_number":1132,"context_line":""},{"line_number":1133,"context_line":"def share_group_get(context, share_group_id):"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_7735d5a7","line":1130,"range":{"start_line":1129,"start_character":0,"end_line":1130,"end_character":56},"updated":"2020-09-23 22:25:07.000000000","message":"Removed, since there will be no need to have an additional query to calculate the amount of shares.","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"61708e8601c4ea88e13a7f8df7acf3abd3f5653e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import datetime"},{"line_number":23,"context_line":"from functools import wraps"},{"line_number":24,"context_line":"import ipaddress"},{"line_number":25,"context_line":"import sqlalchemy"},{"line_number":26,"context_line":"import sys"},{"line_number":27,"context_line":"import warnings"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_d9fcd173","line":25,"range":{"start_line":25,"start_character":7,"end_line":25,"end_character":17},"updated":"2020-03-20 07:54:19.000000000","message":"just looking at the pattern below, I think\n`from sqlalchemy import asc\nfrom sqlalchemy import desc` would be sufficient","commit_id":"ec6b7e45ffa5c458bbfa5b241a38ba74bdce45c8"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e9ffeec7df974dd397749645e104ff108768a4bb","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import datetime"},{"line_number":23,"context_line":"from functools import wraps"},{"line_number":24,"context_line":"import ipaddress"},{"line_number":25,"context_line":"import sqlalchemy"},{"line_number":26,"context_line":"import sys"},{"line_number":27,"context_line":"import warnings"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_917da8b3","line":25,"range":{"start_line":25,"start_character":7,"end_line":25,"end_character":17},"in_reply_to":"1fa4df85_d9fcd173","updated":"2020-03-24 06:25:48.000000000","message":"Done","commit_id":"ec6b7e45ffa5c458bbfa5b241a38ba74bdce45c8"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"61708e8601c4ea88e13a7f8df7acf3abd3f5653e","unresolved":false,"context_lines":[{"line_number":1771,"context_line":"        \u0027mysql\u0027: \u0027REGEXP\u0027,"},{"line_number":1772,"context_line":"        \u0027sqlite\u0027: \u0027REGEXP\u0027"},{"line_number":1773,"context_line":"    }"},{"line_number":1774,"context_line":"    db_string \u003d CONF.database.connection.split(\u0027:\u0027)[0].split(\u0027+\u0027)[0]"},{"line_number":1775,"context_line":"    db_regexp_op \u003d regexp_op_map.get(db_string, \u0027LIKE\u0027)"},{"line_number":1776,"context_line":"    filters_tmp \u003d copy.deepcopy(filters)"},{"line_number":1777,"context_line":"    for filter_name in filters_tmp.keys():"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_b9d8f5ee","line":1774,"updated":"2020-03-20 07:54:19.000000000","message":"maybe you could use something like `get_engine().url.get_dialect().name` ?","commit_id":"ec6b7e45ffa5c458bbfa5b241a38ba74bdce45c8"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e9ffeec7df974dd397749645e104ff108768a4bb","unresolved":false,"context_lines":[{"line_number":1771,"context_line":"        \u0027mysql\u0027: \u0027REGEXP\u0027,"},{"line_number":1772,"context_line":"        \u0027sqlite\u0027: \u0027REGEXP\u0027"},{"line_number":1773,"context_line":"    }"},{"line_number":1774,"context_line":"    db_string \u003d CONF.database.connection.split(\u0027:\u0027)[0].split(\u0027+\u0027)[0]"},{"line_number":1775,"context_line":"    db_regexp_op \u003d regexp_op_map.get(db_string, \u0027LIKE\u0027)"},{"line_number":1776,"context_line":"    filters_tmp \u003d copy.deepcopy(filters)"},{"line_number":1777,"context_line":"    for filter_name in filters_tmp.keys():"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_0caa1bd3","line":1774,"in_reply_to":"1fa4df85_b9d8f5ee","updated":"2020-03-24 06:25:48.000000000","message":"thank you for your review, Maurice Escher.\nYes, your implementation is more elegant,I will change this","commit_id":"ec6b7e45ffa5c458bbfa5b241a38ba74bdce45c8"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"            sort_key_attr \u003d getattr(model, current_sort_key)"},{"line_number":221,"context_line":"            query \u003d query.order_by(sort_dir_func(sort_key_attr))"},{"line_number":222,"context_line":"    else:"},{"line_number":223,"context_line":"        sort_attr \u003d getattr(model, sort_key)"},{"line_number":224,"context_line":"        sort_method \u003d getattr(sort_attr, sort_dir.lower())"},{"line_number":225,"context_line":"        query \u003d query.order_by(sort_method())"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_2eef52e9","line":222,"updated":"2020-04-02 14:06:00.000000000","message":"this condition is never being covered by unit tests. if applicable, could you please add more unit tests","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ae3a9b6f17db2a0bea912177f3e013ce64306930","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"            sort_key_attr \u003d getattr(model, current_sort_key)"},{"line_number":221,"context_line":"            query \u003d query.order_by(sort_dir_func(sort_key_attr))"},{"line_number":222,"context_line":"    else:"},{"line_number":223,"context_line":"        sort_attr \u003d getattr(model, sort_key)"},{"line_number":224,"context_line":"        sort_method \u003d getattr(sort_attr, sort_dir.lower())"},{"line_number":225,"context_line":"        query \u003d query.order_by(sort_method())"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_2adb1a7c","line":222,"in_reply_to":"1f493fa4_0b42b210","updated":"2020-04-27 11:40:13.000000000","message":"ack","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"8a0d420d721846440f8e86b822cdefc202d90523","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"            sort_key_attr \u003d getattr(model, current_sort_key)"},{"line_number":221,"context_line":"            query \u003d query.order_by(sort_dir_func(sort_key_attr))"},{"line_number":222,"context_line":"    else:"},{"line_number":223,"context_line":"        sort_attr \u003d getattr(model, sort_key)"},{"line_number":224,"context_line":"        sort_method \u003d getattr(sort_attr, sort_dir.lower())"},{"line_number":225,"context_line":"        query \u003d query.order_by(sort_method())"}],"source_content_type":"text/x-python","patch_set":13,"id":"ff570b3c_bb6abee9","line":222,"in_reply_to":"1f493fa4_2adb1a7c","updated":"2020-05-19 09:03:15.000000000","message":"done, manila.tests.db.sqlalchemy.test_api.ShareDatabaseAPITestCase.test_share_get_all_sort_by_share_fields","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"            sort_key_attr \u003d getattr(model, current_sort_key)"},{"line_number":221,"context_line":"            query \u003d query.order_by(sort_dir_func(sort_key_attr))"},{"line_number":222,"context_line":"    else:"},{"line_number":223,"context_line":"        sort_attr \u003d getattr(model, sort_key)"},{"line_number":224,"context_line":"        sort_method \u003d getattr(sort_attr, sort_dir.lower())"},{"line_number":225,"context_line":"        query \u003d query.order_by(sort_method())"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_0b42b210","line":222,"in_reply_to":"df33271e_2eef52e9","updated":"2020-04-26 07:02:33.000000000","message":"I will add more tests next set.","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":1787,"context_line":"                    query \u003d query.filter(column_attr.op(db_regexp_op)("},{"line_number":1788,"context_line":"                        \u0027%\u0027 + str(filters[filter_name]) + \u0027%\u0027))"},{"line_number":1789,"context_line":"                else:"},{"line_number":1790,"context_line":"                    if db_regexp_op \u003d\u003d \u0027~\u0027 and CONF.ignore_case \\"},{"line_number":1791,"context_line":"                            and filter_name \u003d\u003d \u0027display_name\u0027:"},{"line_number":1792,"context_line":"                        tmp_db_regexp_op \u003d \u0027~*\u0027"},{"line_number":1793,"context_line":"                    else:"},{"line_number":1794,"context_line":"                        tmp_db_regexp_op \u003d db_regexp_op"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_7f046b15","line":1791,"range":{"start_line":1790,"start_character":23,"end_line":1791,"end_character":61},"updated":"2020-04-02 14:06:00.000000000","message":"please surround this statement with ()","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":1787,"context_line":"                    query \u003d query.filter(column_attr.op(db_regexp_op)("},{"line_number":1788,"context_line":"                        \u0027%\u0027 + str(filters[filter_name]) + \u0027%\u0027))"},{"line_number":1789,"context_line":"                else:"},{"line_number":1790,"context_line":"                    if db_regexp_op \u003d\u003d \u0027~\u0027 and CONF.ignore_case \\"},{"line_number":1791,"context_line":"                            and filter_name \u003d\u003d \u0027display_name\u0027:"},{"line_number":1792,"context_line":"                        tmp_db_regexp_op \u003d \u0027~*\u0027"},{"line_number":1793,"context_line":"                    else:"},{"line_number":1794,"context_line":"                        tmp_db_regexp_op \u003d db_regexp_op"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_d9e117d3","line":1791,"range":{"start_line":1790,"start_character":23,"end_line":1791,"end_character":61},"in_reply_to":"df33271e_7f046b15","updated":"2020-04-26 07:02:33.000000000","message":"Done","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":1838,"context_line":"    else:"},{"line_number":1839,"context_line":"        display_description \u003d filters.get(\u0027display_description~\u0027)"},{"line_number":1840,"context_line":"        if display_description:"},{"line_number":1841,"context_line":"            filters[\u0027display_description\u0027] \u003d \\"},{"line_number":1842,"context_line":"                filters.pop(\u0027display_description~\u0027, None)"},{"line_number":1843,"context_line":"            paramers_fuzzy_matching \u003d [\u0027display_description\u0027]"},{"line_number":1844,"context_line":"            query \u003d regex_filter(query, models.Share, filters,"},{"line_number":1845,"context_line":"                                 paramers_fuzzy_matching)"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_1a0bc329","line":1842,"range":{"start_line":1841,"start_character":45,"end_line":1842,"end_character":57},"updated":"2020-04-02 14:06:00.000000000","message":"please surround this with ()","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":1838,"context_line":"    else:"},{"line_number":1839,"context_line":"        display_description \u003d filters.get(\u0027display_description~\u0027)"},{"line_number":1840,"context_line":"        if display_description:"},{"line_number":1841,"context_line":"            filters[\u0027display_description\u0027] \u003d \\"},{"line_number":1842,"context_line":"                filters.pop(\u0027display_description~\u0027, None)"},{"line_number":1843,"context_line":"            paramers_fuzzy_matching \u003d [\u0027display_description\u0027]"},{"line_number":1844,"context_line":"            query \u003d regex_filter(query, models.Share, filters,"},{"line_number":1845,"context_line":"                                 paramers_fuzzy_matching)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_193a5f35","line":1842,"range":{"start_line":1841,"start_character":45,"end_line":1842,"end_character":57},"in_reply_to":"df33271e_1a0bc329","updated":"2020-04-26 07:02:33.000000000","message":"Done","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":1845,"context_line":"                                 paramers_fuzzy_matching)"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"    status \u003d filters.get(\u0027status\u0027)"},{"line_number":1848,"context_line":"    share_type_id \u003d filters.get(\u0027share_type_id\u0027)"},{"line_number":1849,"context_line":"    if status:"},{"line_number":1850,"context_line":"        query \u003d query.filter("},{"line_number":1851,"context_line":"            models.ShareInstance.status \u003d\u003d status)"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_5f1a4716","line":1848,"updated":"2020-04-02 14:06:00.000000000","message":"this share_type_id declaration may looks better moved to the line 1851, before the share_type_id if statement to keep the current pattern.","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":1845,"context_line":"                                 paramers_fuzzy_matching)"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"    status \u003d filters.get(\u0027status\u0027)"},{"line_number":1848,"context_line":"    share_type_id \u003d filters.get(\u0027share_type_id\u0027)"},{"line_number":1849,"context_line":"    if status:"},{"line_number":1850,"context_line":"        query \u003d query.filter("},{"line_number":1851,"context_line":"            models.ShareInstance.status \u003d\u003d status)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_395c7b7d","line":1848,"in_reply_to":"df33271e_5f1a4716","updated":"2020-04-26 07:02:33.000000000","message":"Done","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":2035,"context_line":"def share_get_all(context, filters\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":2036,"context_line":"    query \u003d _share_get_all_with_filters("},{"line_number":2037,"context_line":"        context,"},{"line_number":2038,"context_line":"        project_id\u003dfilters.pop(\u0027project_id\u0027, None) if filters else None,"},{"line_number":2039,"context_line":"        filters\u003dfilters, sort_key\u003dsort_key, sort_dir\u003dsort_dir)"},{"line_number":2040,"context_line":"    return query"},{"line_number":2041,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_9f168fa7","line":2038,"range":{"start_line":2038,"start_character":19,"end_line":2038,"end_character":71},"updated":"2020-04-02 14:06:00.000000000","message":"this may look better as:\nproject_id \u003d filters.pop(\u0027project_id\u0027, None) if filters else None\nand then you would send the variable value instead of the whole statement","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":2035,"context_line":"def share_get_all(context, filters\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":2036,"context_line":"    query \u003d _share_get_all_with_filters("},{"line_number":2037,"context_line":"        context,"},{"line_number":2038,"context_line":"        project_id\u003dfilters.pop(\u0027project_id\u0027, None) if filters else None,"},{"line_number":2039,"context_line":"        filters\u003dfilters, sort_key\u003dsort_key, sort_dir\u003dsort_dir)"},{"line_number":2040,"context_line":"    return query"},{"line_number":2041,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_59aea72e","line":2038,"range":{"start_line":2038,"start_character":19,"end_line":2038,"end_character":71},"in_reply_to":"df33271e_9f168fa7","updated":"2020-04-26 07:02:33.000000000","message":"Done","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":5451,"context_line":""},{"line_number":5452,"context_line":"    session \u003d get_session()"},{"line_number":5453,"context_line":"    query \u003d ("},{"line_number":5454,"context_line":"        _share_get_query(context, session\u003dsession).join("},{"line_number":5455,"context_line":"            models.ShareInstance,"},{"line_number":5456,"context_line":"            models.ShareInstance.share_id \u003d\u003d models.Share.id"},{"line_number":5457,"context_line":"        )"},{"line_number":5458,"context_line":"    )"},{"line_number":5459,"context_line":""},{"line_number":5460,"context_line":"    if filters:"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_0efc0eb3","line":5457,"range":{"start_line":5454,"start_character":9,"end_line":5457,"end_character":9},"updated":"2020-04-02 14:06:00.000000000","message":"I found a bug on this. In this scenario, you\u0027re performing a join based on the ShareInstance\u0027s share_id.\nIn manila, a share replica is a share instance which contains the replica_state field set to a value different from None, and it also contains a share_id field. So in this case, you\u0027re only filtering by the share_id and allowing share replicas to be included in the final count value. I have performed some tests in my environment. I have added the steps to reproduce and the results I got in [1].\n\n[1] http://paste.openstack.org/show/791532/","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ae3a9b6f17db2a0bea912177f3e013ce64306930","unresolved":false,"context_lines":[{"line_number":5451,"context_line":""},{"line_number":5452,"context_line":"    session \u003d get_session()"},{"line_number":5453,"context_line":"    query \u003d ("},{"line_number":5454,"context_line":"        _share_get_query(context, session\u003dsession).join("},{"line_number":5455,"context_line":"            models.ShareInstance,"},{"line_number":5456,"context_line":"            models.ShareInstance.share_id \u003d\u003d models.Share.id"},{"line_number":5457,"context_line":"        )"},{"line_number":5458,"context_line":"    )"},{"line_number":5459,"context_line":""},{"line_number":5460,"context_line":"    if filters:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_aaef2a1c","line":5457,"range":{"start_line":5454,"start_character":9,"end_line":5457,"end_character":9},"in_reply_to":"1f493fa4_4b74ba68","updated":"2020-04-27 11:40:13.000000000","message":"You could for example filter out by the replica_state field. The conditions would be: shares that has as replica_state empty or active.","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"8a0d420d721846440f8e86b822cdefc202d90523","unresolved":false,"context_lines":[{"line_number":5451,"context_line":""},{"line_number":5452,"context_line":"    session \u003d get_session()"},{"line_number":5453,"context_line":"    query \u003d ("},{"line_number":5454,"context_line":"        _share_get_query(context, session\u003dsession).join("},{"line_number":5455,"context_line":"            models.ShareInstance,"},{"line_number":5456,"context_line":"            models.ShareInstance.share_id \u003d\u003d models.Share.id"},{"line_number":5457,"context_line":"        )"},{"line_number":5458,"context_line":"    )"},{"line_number":5459,"context_line":""},{"line_number":5460,"context_line":"    if filters:"}],"source_content_type":"text/x-python","patch_set":13,"id":"ff570b3c_de716078","line":5457,"range":{"start_line":5454,"start_character":9,"end_line":5457,"end_character":9},"in_reply_to":"1f493fa4_aaef2a1c","updated":"2020-05-19 09:03:15.000000000","message":"thanks, I don\u0027t know much about replica, so I revisited the source code, and found that just need to correct count.\nfunc.count(distinct(models.Share.id))\nDo you have any suggestions?","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":5451,"context_line":""},{"line_number":5452,"context_line":"    session \u003d get_session()"},{"line_number":5453,"context_line":"    query \u003d ("},{"line_number":5454,"context_line":"        _share_get_query(context, session\u003dsession).join("},{"line_number":5455,"context_line":"            models.ShareInstance,"},{"line_number":5456,"context_line":"            models.ShareInstance.share_id \u003d\u003d models.Share.id"},{"line_number":5457,"context_line":"        )"},{"line_number":5458,"context_line":"    )"},{"line_number":5459,"context_line":""},{"line_number":5460,"context_line":"    if filters:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_4b74ba68","line":5457,"range":{"start_line":5454,"start_character":9,"end_line":5457,"end_character":9},"in_reply_to":"df33271e_0efc0eb3","updated":"2020-04-26 07:02:33.000000000","message":"In this scenario,it\u0027s more like get_all_share_instances? But \u0027status\u0027 is in the share_instances. How can we filter the share with \u0027status\u0027? \nget_all_shares or get_all_share_instance? Should we separate?","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"cb41e196f37c745b0d39e5631dc00d15f376b741","unresolved":false,"context_lines":[{"line_number":5451,"context_line":""},{"line_number":5452,"context_line":"    session \u003d get_session()"},{"line_number":5453,"context_line":"    query \u003d ("},{"line_number":5454,"context_line":"        _share_get_query(context, session\u003dsession).join("},{"line_number":5455,"context_line":"            models.ShareInstance,"},{"line_number":5456,"context_line":"            models.ShareInstance.share_id \u003d\u003d models.Share.id"},{"line_number":5457,"context_line":"        )"},{"line_number":5458,"context_line":"    )"},{"line_number":5459,"context_line":""},{"line_number":5460,"context_line":"    if filters:"}],"source_content_type":"text/x-python","patch_set":13,"id":"ff570b3c_88677f4d","line":5457,"range":{"start_line":5454,"start_character":9,"end_line":5457,"end_character":9},"in_reply_to":"ff570b3c_de716078","updated":"2020-05-20 19:09:11.000000000","message":"I think that might work as well :)\nWill try it in my env!","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":5457,"context_line":"        )"},{"line_number":5458,"context_line":"    )"},{"line_number":5459,"context_line":""},{"line_number":5460,"context_line":"    if filters:"},{"line_number":5461,"context_line":"        is_public \u003d filters.pop(\u0027is_public\u0027, False)"},{"line_number":5462,"context_line":"        is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":5463,"context_line":"        project_id \u003d filters.pop(\u0027project_id\u0027, None)"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_6e8cba35","line":5460,"range":{"start_line":5460,"start_character":4,"end_line":5460,"end_character":15},"updated":"2020-04-02 14:06:00.000000000","message":"This condition is not being covered by unit tests. Could you please add unit tests for this?","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"8a0d420d721846440f8e86b822cdefc202d90523","unresolved":false,"context_lines":[{"line_number":5457,"context_line":"        )"},{"line_number":5458,"context_line":"    )"},{"line_number":5459,"context_line":""},{"line_number":5460,"context_line":"    if filters:"},{"line_number":5461,"context_line":"        is_public \u003d filters.pop(\u0027is_public\u0027, False)"},{"line_number":5462,"context_line":"        is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":5463,"context_line":"        project_id \u003d filters.pop(\u0027project_id\u0027, None)"}],"source_content_type":"text/x-python","patch_set":13,"id":"ff570b3c_7eead40e","line":5460,"range":{"start_line":5460,"start_character":4,"end_line":5460,"end_character":15},"in_reply_to":"1f493fa4_eaf5b2ee","updated":"2020-05-19 09:03:15.000000000","message":"done,manila.tests.db.sqlalchemy.test_api.ShareDatabaseAPITestCase.test_calculate_shares_count_by_filter","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ae3a9b6f17db2a0bea912177f3e013ce64306930","unresolved":false,"context_lines":[{"line_number":5457,"context_line":"        )"},{"line_number":5458,"context_line":"    )"},{"line_number":5459,"context_line":""},{"line_number":5460,"context_line":"    if filters:"},{"line_number":5461,"context_line":"        is_public \u003d filters.pop(\u0027is_public\u0027, False)"},{"line_number":5462,"context_line":"        is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":5463,"context_line":"        project_id \u003d filters.pop(\u0027project_id\u0027, None)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_eaf5b2ee","line":5460,"range":{"start_line":5460,"start_character":4,"end_line":5460,"end_character":15},"in_reply_to":"1f493fa4_eb44a61d","updated":"2020-04-27 11:40:13.000000000","message":"ack","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":5457,"context_line":"        )"},{"line_number":5458,"context_line":"    )"},{"line_number":5459,"context_line":""},{"line_number":5460,"context_line":"    if filters:"},{"line_number":5461,"context_line":"        is_public \u003d filters.pop(\u0027is_public\u0027, False)"},{"line_number":5462,"context_line":"        is_public \u003d strutils.bool_from_string(is_public, strict\u003dTrue)"},{"line_number":5463,"context_line":"        project_id \u003d filters.pop(\u0027project_id\u0027, None)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_eb44a61d","line":5460,"range":{"start_line":5460,"start_character":4,"end_line":5460,"end_character":15},"in_reply_to":"df33271e_6e8cba35","updated":"2020-04-26 07:02:33.000000000","message":"I will add more tests next set.","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"002dbd9c989cd8a46c981e7d8359a07c6c58d90f","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                    \"sort_key\": sort_key, \"sort_dir\": sort_dir}"},{"line_number":209,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    if sort_key is not \u0027id\u0027:"},{"line_number":212,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":213,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"},{"line_number":214,"context_line":"        for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f493fa4_944596b6","line":211,"updated":"2020-04-22 09:34:13.000000000","message":"pep8: F632 use \u003d\u003d/!\u003d to compare str, bytes, and int literals","commit_id":"ec68f338960a88f11da198ab1215b7ed5ae09087"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f630d1f3779c70e66962f4fc5e69a839af0552ac","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                    \"sort_key\": sort_key, \"sort_dir\": sort_dir}"},{"line_number":209,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    if sort_key is not \u0027id\u0027:"},{"line_number":212,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":213,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"},{"line_number":214,"context_line":"        for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f493fa4_860359b8","line":211,"updated":"2020-04-26 09:07:02.000000000","message":"pep8: F632 use \u003d\u003d/!\u003d to compare str, bytes, and int literals","commit_id":"a81f4b31525b5016fe27abf530ced6aaef44b7e9"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a20d1bff82c92c370acebe8dca312698c6dae16c","unresolved":false,"context_lines":[{"line_number":48,"context_line":"from sqlalchemy.orm import joinedload"},{"line_number":49,"context_line":"from sqlalchemy.sql.expression import literal"},{"line_number":50,"context_line":"from sqlalchemy.sql.expression import true"},{"line_number":51,"context_line":"from sqlalchemy.sql import distinct"},{"line_number":52,"context_line":"from sqlalchemy.sql import func"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"from manila.common import constants"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff570b3c_54a7efbd","line":51,"updated":"2020-05-19 10:56:43.000000000","message":"pep8: H306: imports not in alphabetical order (sqlalchemy.sql.expression.true, sqlalchemy.sql.distinct)","commit_id":"f395db955849045799403182d9b44d82fddce255"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a20d1bff82c92c370acebe8dca312698c6dae16c","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                    \"sort_key\": sort_key, \"sort_dir\": sort_dir}"},{"line_number":210,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    if sort_key is not \u0027id\u0027:"},{"line_number":213,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":214,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"},{"line_number":215,"context_line":"        for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff570b3c_b4a80b8c","line":212,"updated":"2020-05-19 10:56:43.000000000","message":"pep8: F632 use \u003d\u003d/!\u003d to compare str, bytes, and int literals","commit_id":"f395db955849045799403182d9b44d82fddce255"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"4953a8927037714df2fce649e6970e8652f0553d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"from sqlalchemy.orm import subqueryload"},{"line_number":50,"context_line":"from sqlalchemy.sql.expression import literal"},{"line_number":51,"context_line":"from sqlalchemy.sql.expression import true"},{"line_number":52,"context_line":"from sqlalchemy.sql import distinct"},{"line_number":53,"context_line":"from sqlalchemy.sql import func"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"from manila.common import constants"}],"source_content_type":"text/x-python","patch_set":17,"id":"ff570b3c_49fbbfbf","line":52,"updated":"2020-05-20 03:45:17.000000000","message":"pep8: H306: imports not in alphabetical order (sqlalchemy.sql.expression.true, sqlalchemy.sql.distinct)","commit_id":"81f48fd6fc39bd15cbe7451d11e7661922a12be1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"cb41e196f37c745b0d39e5631dc00d15f376b741","unresolved":false,"context_lines":[{"line_number":49,"context_line":"from sqlalchemy.orm import subqueryload"},{"line_number":50,"context_line":"from sqlalchemy.sql.expression import literal"},{"line_number":51,"context_line":"from sqlalchemy.sql.expression import true"},{"line_number":52,"context_line":"from sqlalchemy.sql import distinct"},{"line_number":53,"context_line":"from sqlalchemy.sql import func"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"from manila.common import constants"}],"source_content_type":"text/x-python","patch_set":17,"id":"ff570b3c_c8d217d1","line":52,"in_reply_to":"ff570b3c_49fbbfbf","updated":"2020-05-20 19:09:11.000000000","message":"++... This should be fixed in order to have pep8 job working.","commit_id":"81f48fd6fc39bd15cbe7451d11e7661922a12be1"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"5cadddc98333e2517e186cebac457f8491250bd7","unresolved":false,"context_lines":[{"line_number":49,"context_line":"from sqlalchemy.orm import subqueryload"},{"line_number":50,"context_line":"from sqlalchemy.sql.expression import literal"},{"line_number":51,"context_line":"from sqlalchemy.sql.expression import true"},{"line_number":52,"context_line":"from sqlalchemy.sql import distinct"},{"line_number":53,"context_line":"from sqlalchemy.sql import func"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"from manila.common import constants"}],"source_content_type":"text/x-python","patch_set":17,"id":"ff570b3c_2e063821","line":52,"in_reply_to":"ff570b3c_c8d217d1","updated":"2020-05-21 00:35:58.000000000","message":"Done","commit_id":"81f48fd6fc39bd15cbe7451d11e7661922a12be1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9c0d45b172fc47505a857a83ad03f3388f7e93d2","unresolved":false,"context_lines":[{"line_number":1853,"context_line":"                        \u0027%\u0027 + str(filters[filter_name]) + \u0027%\u0027))"},{"line_number":1854,"context_line":"                else:"},{"line_number":1855,"context_line":"                    if (db_regexp_op \u003d\u003d \u0027~\u0027 and CONF.ignore_case"},{"line_number":1856,"context_line":"                            and filter_name \u003d\u003d \u0027display_name\u0027):"},{"line_number":1857,"context_line":"                        tmp_db_regexp_op \u003d \u0027~*\u0027"},{"line_number":1858,"context_line":"                    else:"},{"line_number":1859,"context_line":"                        tmp_db_regexp_op \u003d db_regexp_op"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_ab7ea615","line":1856,"range":{"start_line":1856,"start_character":32,"end_line":1856,"end_character":62},"updated":"2020-09-11 12:38:27.000000000","message":"or filter_name \u003d\u003d \u0027display_description\u0027","commit_id":"cc63d9dc8c100c504948dfaefd1463693344a3b1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"988e9a710ed0a752c5ad1ca586fcb8d466e4a03b","unresolved":false,"context_lines":[{"line_number":1853,"context_line":"                        \u0027%\u0027 + str(filters[filter_name]) + \u0027%\u0027))"},{"line_number":1854,"context_line":"                else:"},{"line_number":1855,"context_line":"                    if (db_regexp_op \u003d\u003d \u0027~\u0027 and CONF.ignore_case"},{"line_number":1856,"context_line":"                            and filter_name \u003d\u003d \u0027display_name\u0027):"},{"line_number":1857,"context_line":"                        tmp_db_regexp_op \u003d \u0027~*\u0027"},{"line_number":1858,"context_line":"                    else:"},{"line_number":1859,"context_line":"                        tmp_db_regexp_op \u003d db_regexp_op"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_173967ce","line":1856,"range":{"start_line":1856,"start_character":32,"end_line":1856,"end_character":62},"in_reply_to":"9f560f44_32949d8c","updated":"2020-09-17 12:36:39.000000000","message":"If the display description to be searched is specified as \"display_description~\", this regex filter is going to be called as well.","commit_id":"cc63d9dc8c100c504948dfaefd1463693344a3b1"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"72bf8e70d7293926987b1743fca680e398c364c3","unresolved":false,"context_lines":[{"line_number":1853,"context_line":"                        \u0027%\u0027 + str(filters[filter_name]) + \u0027%\u0027))"},{"line_number":1854,"context_line":"                else:"},{"line_number":1855,"context_line":"                    if (db_regexp_op \u003d\u003d \u0027~\u0027 and CONF.ignore_case"},{"line_number":1856,"context_line":"                            and filter_name \u003d\u003d \u0027display_name\u0027):"},{"line_number":1857,"context_line":"                        tmp_db_regexp_op \u003d \u0027~*\u0027"},{"line_number":1858,"context_line":"                    else:"},{"line_number":1859,"context_line":"                        tmp_db_regexp_op \u003d db_regexp_op"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_32949d8c","line":1856,"range":{"start_line":1856,"start_character":32,"end_line":1856,"end_character":62},"in_reply_to":"9f560f44_ab7ea615","updated":"2020-09-16 02:41:42.000000000","message":"I don\u0027t understand why or.","commit_id":"cc63d9dc8c100c504948dfaefd1463693344a3b1"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"5d4f14aa953e26be3a168f8ea83c295f6a61aeff","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    if sort_key !\u003d \u0027id\u0027:"},{"line_number":215,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":216,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"},{"line_number":217,"context_line":"        for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):"},{"line_number":218,"context_line":"            sort_dir_func \u003d {"},{"line_number":219,"context_line":"                \u0027asc\u0027: asc,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_1e8a80ba","line":216,"updated":"2020-09-11 18:20:39.000000000","message":"sort_dir can only take one value, this doesn\u0027t seem right","commit_id":"da878dc4d4b8f7ca54e495a676961cc2cf446848"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fce1c0ab213d58711cfa7833548ceeaaf123e314","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    if sort_key !\u003d \u0027id\u0027:"},{"line_number":215,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":216,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"},{"line_number":217,"context_line":"        for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):"},{"line_number":218,"context_line":"            sort_dir_func \u003d {"},{"line_number":219,"context_line":"                \u0027asc\u0027: asc,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_f2d51c49","line":216,"in_reply_to":"9f560f44_1e8a80ba","updated":"2020-09-14 22:25:06.000000000","message":"In this case it was repeating just to satisfy the need to have the same value for the zip function below.\nDon\u0027t know if we should keep the code like this, since when we are not ordering by ID, we order first by the desired sort_key and then by the ID. Don\u0027t really know the need for this change. I\u0027ve tested without it and it is working fine.\nAlso, if we decide to keep both sorts, I think we could go with a simplified approach.\nI\u0027ll revert it to the original state.","commit_id":"da878dc4d4b8f7ca54e495a676961cc2cf446848"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"72bf8e70d7293926987b1743fca680e398c364c3","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    if sort_key !\u003d \u0027id\u0027:"},{"line_number":215,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":216,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"},{"line_number":217,"context_line":"        for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):"},{"line_number":218,"context_line":"            sort_dir_func \u003d {"},{"line_number":219,"context_line":"                \u0027asc\u0027: asc,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_7273b517","line":216,"in_reply_to":"9f560f44_7c4ef66e","updated":"2020-09-16 02:41:42.000000000","message":"Hi, Victoria! If without this code, we wouldn\u0027t be sorting by ID and leading to the situation Maurice mentioned.","commit_id":"da878dc4d4b8f7ca54e495a676961cc2cf446848"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"4657b476535ee95fe01fe9fd65ea1b69d5bfa582","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    if sort_key !\u003d \u0027id\u0027:"},{"line_number":215,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":216,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"},{"line_number":217,"context_line":"        for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):"},{"line_number":218,"context_line":"            sort_dir_func \u003d {"},{"line_number":219,"context_line":"                \u0027asc\u0027: asc,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_7c4ef66e","line":216,"in_reply_to":"9f560f44_9eaca7a0","updated":"2020-09-15 13:00:17.000000000","message":"Thanks for the explanation Carlos, it confused me a bit.\n\nMaurice, for what I understand, even without this code, we would be ordering first by sort_key and then by ID.","commit_id":"da878dc4d4b8f7ca54e495a676961cc2cf446848"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"90c39902fcf48d283cb48a0eb0a60746f67cf1a7","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    if sort_key !\u003d \u0027id\u0027:"},{"line_number":215,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":216,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"},{"line_number":217,"context_line":"        for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):"},{"line_number":218,"context_line":"            sort_dir_func \u003d {"},{"line_number":219,"context_line":"                \u0027asc\u0027: asc,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_9eaca7a0","line":216,"in_reply_to":"9f560f44_f2d51c49","updated":"2020-09-15 05:57:47.000000000","message":"Hi, I don\u0027t have the full picture, but imho it is really good to have the additional sort by ID in this case to get deterministic results. The attribute sorted by sort_key can have the same value for multiple items. Without the ordering by ID this could lead to flapping return lists. Which are not desirable, especially in paginated calls as items can be lost, because they could flap between two pages, or be returned twice.","commit_id":"da878dc4d4b8f7ca54e495a676961cc2cf446848"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"988e9a710ed0a752c5ad1ca586fcb8d466e4a03b","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                \"and sort direction is \u0027%(sort_dir)s\u0027.\") % {"},{"line_number":211,"context_line":"                    \"sort_key\": sort_key, \"sort_dir\": sort_dir}"},{"line_number":212,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    if sort_key !\u003d \u0027id\u0027:"},{"line_number":215,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":216,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"}],"source_content_type":"text/x-python","patch_set":27,"id":"9f560f44_97e9f71a","line":213,"updated":"2020-09-17 12:36:39.000000000","message":"Could you please add a note for the code below?","commit_id":"7a10456d62a93ca6f34f9bce5a718a875fbce004"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"fae513d6ccca1d7a3d1a62bdea7337022c402b0d","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                \"and sort direction is \u0027%(sort_dir)s\u0027.\") % {"},{"line_number":211,"context_line":"                    \"sort_key\": sort_key, \"sort_dir\": sort_dir}"},{"line_number":212,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    if sort_key !\u003d \u0027id\u0027:"},{"line_number":215,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":216,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"}],"source_content_type":"text/x-python","patch_set":27,"id":"9f560f44_13668dbc","line":213,"in_reply_to":"9f560f44_97e9f71a","updated":"2020-09-18 02:48:53.000000000","message":"Done","commit_id":"7a10456d62a93ca6f34f9bce5a718a875fbce004"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"988e9a710ed0a752c5ad1ca586fcb8d466e4a03b","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                \"and sort direction is \u0027%(sort_dir)s\u0027.\") % {"},{"line_number":211,"context_line":"                    \"sort_key\": sort_key, \"sort_dir\": sort_dir}"},{"line_number":212,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    if sort_key !\u003d \u0027id\u0027:"},{"line_number":215,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":216,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"},{"line_number":217,"context_line":"        for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):"},{"line_number":218,"context_line":"            sort_dir_func \u003d {"},{"line_number":219,"context_line":"                \u0027asc\u0027: asc,"},{"line_number":220,"context_line":"                \u0027desc\u0027: desc,"},{"line_number":221,"context_line":"            }[current_sort_dir]"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"            sort_key_attr \u003d getattr(model, current_sort_key)"},{"line_number":224,"context_line":"            query \u003d query.order_by(sort_dir_func(sort_key_attr))"},{"line_number":225,"context_line":"    else:"},{"line_number":226,"context_line":"        sort_attr \u003d getattr(model, sort_key)"},{"line_number":227,"context_line":"        sort_method \u003d getattr(sort_attr, sort_dir.lower())"},{"line_number":228,"context_line":"        query \u003d query.order_by(sort_method())"},{"line_number":229,"context_line":"    return query"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"9f560f44_176207da","line":228,"range":{"start_line":213,"start_character":0,"end_line":228,"end_character":45},"updated":"2020-09-17 12:36:39.000000000","message":"I understand the need and I guess this could be simplified in order to avoid some code duplications.\nAn example of how it could be simplified:\n    sort_keys \u003d [sort_key]\n    if sort_key !\u003d \u0027id\u0027:\n        sort_keys.append(\u0027id\u0027)\n\n    for sort_key in sort_keys:\n        sort_attr \u003d getattr(model, sort_key)\n        sort_method \u003d getattr(sort_attr, sort_dir.lower())\n        query \u003d query.order_by(sort_method())\n\n    return query","commit_id":"7a10456d62a93ca6f34f9bce5a718a875fbce004"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"fae513d6ccca1d7a3d1a62bdea7337022c402b0d","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                \"and sort direction is \u0027%(sort_dir)s\u0027.\") % {"},{"line_number":211,"context_line":"                    \"sort_key\": sort_key, \"sort_dir\": sort_dir}"},{"line_number":212,"context_line":"        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    if sort_key !\u003d \u0027id\u0027:"},{"line_number":215,"context_line":"        sort_keys \u003d [sort_key, \u0027id\u0027]"},{"line_number":216,"context_line":"        sort_dirs \u003d [sort_dir, sort_dir]"},{"line_number":217,"context_line":"        for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):"},{"line_number":218,"context_line":"            sort_dir_func \u003d {"},{"line_number":219,"context_line":"                \u0027asc\u0027: asc,"},{"line_number":220,"context_line":"                \u0027desc\u0027: desc,"},{"line_number":221,"context_line":"            }[current_sort_dir]"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"            sort_key_attr \u003d getattr(model, current_sort_key)"},{"line_number":224,"context_line":"            query \u003d query.order_by(sort_dir_func(sort_key_attr))"},{"line_number":225,"context_line":"    else:"},{"line_number":226,"context_line":"        sort_attr \u003d getattr(model, sort_key)"},{"line_number":227,"context_line":"        sort_method \u003d getattr(sort_attr, sort_dir.lower())"},{"line_number":228,"context_line":"        query \u003d query.order_by(sort_method())"},{"line_number":229,"context_line":"    return query"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"9f560f44_3300f1ab","line":228,"range":{"start_line":213,"start_character":0,"end_line":228,"end_character":45},"in_reply_to":"9f560f44_176207da","updated":"2020-09-18 02:48:53.000000000","message":"Yeah, it\u0027s really more elegant. Meanwhile I removed :\nfrom sqlalchemy import asc\nfrom sqlalchemy import desc\nThey are useless.","commit_id":"7a10456d62a93ca6f34f9bce5a718a875fbce004"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":1843,"context_line":"            if isinstance(filters[filter_name], (list, tuple, set, frozenset)):"},{"line_number":1844,"context_line":"                query \u003d query.filter(column_attr.in_(filters[filter_name]))"},{"line_number":1845,"context_line":"            else:"},{"line_number":1846,"context_line":"                if db_regexp_op \u003d\u003d \u0027LIKE\u0027:"},{"line_number":1847,"context_line":"                    query \u003d query.filter(column_attr.op(db_regexp_op)("},{"line_number":1848,"context_line":"                        \u0027%\u0027 + str(filters[filter_name]) + \u0027%\u0027))"},{"line_number":1849,"context_line":"                else:"},{"line_number":1850,"context_line":"                    if (db_regexp_op \u003d\u003d \u0027~\u0027 and CONF.ignore_case"},{"line_number":1851,"context_line":"                            and (filter_name \u003d\u003d \u0027display_name\u0027"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_34d51be7","line":1848,"range":{"start_line":1846,"start_character":16,"end_line":1848,"end_character":63},"updated":"2020-09-23 20:56:34.000000000","message":"this condition is never true..","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":1843,"context_line":"            if isinstance(filters[filter_name], (list, tuple, set, frozenset)):"},{"line_number":1844,"context_line":"                query \u003d query.filter(column_attr.in_(filters[filter_name]))"},{"line_number":1845,"context_line":"            else:"},{"line_number":1846,"context_line":"                if db_regexp_op \u003d\u003d \u0027LIKE\u0027:"},{"line_number":1847,"context_line":"                    query \u003d query.filter(column_attr.op(db_regexp_op)("},{"line_number":1848,"context_line":"                        \u0027%\u0027 + str(filters[filter_name]) + \u0027%\u0027))"},{"line_number":1849,"context_line":"                else:"},{"line_number":1850,"context_line":"                    if (db_regexp_op \u003d\u003d \u0027~\u0027 and CONF.ignore_case"},{"line_number":1851,"context_line":"                            and (filter_name \u003d\u003d \u0027display_name\u0027"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_3716bdf3","line":1848,"range":{"start_line":1846,"start_character":16,"end_line":1848,"end_character":63},"in_reply_to":"9f560f44_34d51be7","updated":"2020-09-23 22:25:07.000000000","message":"Will go with the simpler approach, so will remove the entire method.","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":1847,"context_line":"                    query \u003d query.filter(column_attr.op(db_regexp_op)("},{"line_number":1848,"context_line":"                        \u0027%\u0027 + str(filters[filter_name]) + \u0027%\u0027))"},{"line_number":1849,"context_line":"                else:"},{"line_number":1850,"context_line":"                    if (db_regexp_op \u003d\u003d \u0027~\u0027 and CONF.ignore_case"},{"line_number":1851,"context_line":"                            and (filter_name \u003d\u003d \u0027display_name\u0027"},{"line_number":1852,"context_line":"                                 or filter_name \u003d\u003d \u0027display_description\u0027)):"},{"line_number":1853,"context_line":"                        tmp_db_regexp_op \u003d \u0027~*\u0027"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_74b673de","line":1850,"range":{"start_line":1850,"start_character":44,"end_line":1850,"end_character":64},"updated":"2020-09-23 20:56:34.000000000","message":"Where does this config opt come from?","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":1847,"context_line":"                    query \u003d query.filter(column_attr.op(db_regexp_op)("},{"line_number":1848,"context_line":"                        \u0027%\u0027 + str(filters[filter_name]) + \u0027%\u0027))"},{"line_number":1849,"context_line":"                else:"},{"line_number":1850,"context_line":"                    if (db_regexp_op \u003d\u003d \u0027~\u0027 and CONF.ignore_case"},{"line_number":1851,"context_line":"                            and (filter_name \u003d\u003d \u0027display_name\u0027"},{"line_number":1852,"context_line":"                                 or filter_name \u003d\u003d \u0027display_description\u0027)):"},{"line_number":1853,"context_line":"                        tmp_db_regexp_op \u003d \u0027~*\u0027"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_1713b902","line":1850,"range":{"start_line":1850,"start_character":44,"end_line":1850,"end_character":64},"in_reply_to":"9f560f44_74b673de","updated":"2020-09-23 22:25:07.000000000","message":"Done","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":1888,"context_line":"        display_name \u003d filters.get(\u0027display_name~\u0027)"},{"line_number":1889,"context_line":"        if display_name:"},{"line_number":1890,"context_line":"            filters[\u0027display_name\u0027] \u003d filters.pop(\u0027display_name~\u0027, None)"},{"line_number":1891,"context_line":"            paramers_fuzzy_matching \u003d [\u0027display_name\u0027]"},{"line_number":1892,"context_line":"            query \u003d regex_filter(query, models.Share, filters,"},{"line_number":1893,"context_line":"                                 paramers_fuzzy_matching)"},{"line_number":1894,"context_line":""},{"line_number":1895,"context_line":"    display_description \u003d filters.get(\u0027display_description\u0027)"},{"line_number":1896,"context_line":"    if display_description:"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_f4f7238b","line":1893,"range":{"start_line":1891,"start_character":12,"end_line":1893,"end_character":57},"updated":"2020-09-23 20:56:34.000000000","message":"Wouldn\u0027t this be simpler, and more efficient?\n\n  query \u003d query.filter(models.Share.display_name.op(\u0027LIKE\u0027)(u\u0027%\u0027 + filters[\u0027display_name\u0027] + u\u0027%\u0027))","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":1888,"context_line":"        display_name \u003d filters.get(\u0027display_name~\u0027)"},{"line_number":1889,"context_line":"        if display_name:"},{"line_number":1890,"context_line":"            filters[\u0027display_name\u0027] \u003d filters.pop(\u0027display_name~\u0027, None)"},{"line_number":1891,"context_line":"            paramers_fuzzy_matching \u003d [\u0027display_name\u0027]"},{"line_number":1892,"context_line":"            query \u003d regex_filter(query, models.Share, filters,"},{"line_number":1893,"context_line":"                                 paramers_fuzzy_matching)"},{"line_number":1894,"context_line":""},{"line_number":1895,"context_line":"    display_description \u003d filters.get(\u0027display_description\u0027)"},{"line_number":1896,"context_line":"    if display_description:"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_77d1552f","line":1893,"range":{"start_line":1891,"start_character":12,"end_line":1893,"end_character":57},"in_reply_to":"9f560f44_f4f7238b","updated":"2020-09-23 22:25:07.000000000","message":"Yes! Thanks for the suggestion","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":1901,"context_line":"        if display_description:"},{"line_number":1902,"context_line":"            filters[\u0027display_description\u0027] \u003d ("},{"line_number":1903,"context_line":"                filters.pop(\u0027display_description~\u0027, None))"},{"line_number":1904,"context_line":"            paramers_fuzzy_matching \u003d [\u0027display_description\u0027]"},{"line_number":1905,"context_line":"            query \u003d regex_filter(query, models.Share, filters,"},{"line_number":1906,"context_line":"                                 paramers_fuzzy_matching)"},{"line_number":1907,"context_line":""},{"line_number":1908,"context_line":"    status \u003d filters.get(\u0027status\u0027)"},{"line_number":1909,"context_line":"    if status:"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_940d0791","line":1906,"range":{"start_line":1904,"start_character":11,"end_line":1906,"end_character":57},"updated":"2020-09-23 20:56:34.000000000","message":"query \u003d query.filter(models.Share.display_description.op(\u0027LIKE\u0027)(u\u0027%\u0027 + filters[\u0027display_description\u0027] + u\u0027%\u0027))","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":1901,"context_line":"        if display_description:"},{"line_number":1902,"context_line":"            filters[\u0027display_description\u0027] \u003d ("},{"line_number":1903,"context_line":"                filters.pop(\u0027display_description~\u0027, None))"},{"line_number":1904,"context_line":"            paramers_fuzzy_matching \u003d [\u0027display_description\u0027]"},{"line_number":1905,"context_line":"            query \u003d regex_filter(query, models.Share, filters,"},{"line_number":1906,"context_line":"                                 paramers_fuzzy_matching)"},{"line_number":1907,"context_line":""},{"line_number":1908,"context_line":"    status \u003d filters.get(\u0027status\u0027)"},{"line_number":1909,"context_line":"    if status:"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_57d6d128","line":1906,"range":{"start_line":1904,"start_character":11,"end_line":1906,"end_character":57},"in_reply_to":"9f560f44_940d0791","updated":"2020-09-23 22:25:07.000000000","message":"Done","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":1951,"context_line":""},{"line_number":1952,"context_line":"    if \u0027metadata\u0027 in filters:"},{"line_number":1953,"context_line":"        for k, v in filters[\u0027metadata\u0027].items():"},{"line_number":1954,"context_line":"            query \u003d query.filter("},{"line_number":1955,"context_line":"                or_(models.Share.share_metadata.any(  # pylint: disable\u003dE1101"},{"line_number":1956,"context_line":"                    key\u003dk, value\u003dv)))"},{"line_number":1957,"context_line":"    if \u0027extra_specs\u0027 in filters:"},{"line_number":1958,"context_line":"        query \u003d query.join("},{"line_number":1959,"context_line":"            models.ShareTypeExtraSpecs,"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_949ea703","line":1956,"range":{"start_line":1954,"start_character":12,"end_line":1956,"end_character":37},"updated":"2020-09-23 20:56:34.000000000","message":"add \"# pylint: disable\u003dno-member\" above this and remove \"# pylint: disable\u003dE1101\"","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":1951,"context_line":""},{"line_number":1952,"context_line":"    if \u0027metadata\u0027 in filters:"},{"line_number":1953,"context_line":"        for k, v in filters[\u0027metadata\u0027].items():"},{"line_number":1954,"context_line":"            query \u003d query.filter("},{"line_number":1955,"context_line":"                or_(models.Share.share_metadata.any(  # pylint: disable\u003dE1101"},{"line_number":1956,"context_line":"                    key\u003dk, value\u003dv)))"},{"line_number":1957,"context_line":"    if \u0027extra_specs\u0027 in filters:"},{"line_number":1958,"context_line":"        query \u003d query.join("},{"line_number":1959,"context_line":"            models.ShareTypeExtraSpecs,"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_975989fe","line":1956,"range":{"start_line":1954,"start_character":12,"end_line":1956,"end_character":37},"in_reply_to":"9f560f44_949ea703","updated":"2020-09-23 22:25:07.000000000","message":"Done","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":2089,"context_line":"        share_server_id \u003d filters.get(\u0027share_server_id\u0027)"},{"line_number":2090,"context_line":""},{"line_number":2091,"context_line":"    query \u003d _process_share_filters(query, filters, project_id,"},{"line_number":2092,"context_line":"                                   share_server_id, share_group_id, is_public)"},{"line_number":2093,"context_line":""},{"line_number":2094,"context_line":"    try:"},{"line_number":2095,"context_line":"        query \u003d apply_sorting(models.Share, query, sort_key, sort_dir)"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_3417db48","line":2092,"range":{"start_line":2092,"start_character":35,"end_line":2092,"end_character":77},"updated":"2020-09-23 20:56:34.000000000","message":"pass these as kwargs.","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":2089,"context_line":"        share_server_id \u003d filters.get(\u0027share_server_id\u0027)"},{"line_number":2090,"context_line":""},{"line_number":2091,"context_line":"    query \u003d _process_share_filters(query, filters, project_id,"},{"line_number":2092,"context_line":"                                   share_server_id, share_group_id, is_public)"},{"line_number":2093,"context_line":""},{"line_number":2094,"context_line":"    try:"},{"line_number":2095,"context_line":"        query \u003d apply_sorting(models.Share, query, sort_key, sort_dir)"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_f771e578","line":2092,"range":{"start_line":2092,"start_character":35,"end_line":2092,"end_character":77},"in_reply_to":"9f560f44_3417db48","updated":"2020-09-23 22:25:07.000000000","message":"Done","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":5615,"context_line":"    return result"},{"line_number":5616,"context_line":""},{"line_number":5617,"context_line":""},{"line_number":5618,"context_line":"def calculate_shares_count(context, filters):"},{"line_number":5619,"context_line":"    \"\"\"Calculate total count with filters applied\"\"\""},{"line_number":5620,"context_line":""},{"line_number":5621,"context_line":"    session \u003d get_session()"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_f7f605d8","line":5618,"updated":"2020-09-23 22:25:07.000000000","message":"removed, since we will not use two queries.","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"659836018ac724a18857849051333b6502850f3d","unresolved":false,"context_lines":[{"line_number":1840,"context_line":"    else:"},{"line_number":1841,"context_line":"        display_name \u003d filters.get(\u0027display_name~\u0027)"},{"line_number":1842,"context_line":"        if display_name:"},{"line_number":1843,"context_line":"            filters[\u0027display_name\u0027] \u003d filters.pop(\u0027display_name~\u0027, None)"},{"line_number":1844,"context_line":"            query \u003d query.filter(models.Share.display_name.op(\u0027LIKE\u0027)("},{"line_number":1845,"context_line":"                u\u0027%\u0027 + filters[\u0027display_name\u0027] + u\u0027%\u0027))"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"    display_description \u003d filters.get(\u0027display_description\u0027)"},{"line_number":1848,"context_line":"    if display_description:"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_b2549bc7","line":1845,"range":{"start_line":1843,"start_character":12,"end_line":1845,"end_character":55},"updated":"2020-09-23 22:34:51.000000000","message":"query \u003d query.filter(models.Share.display_name.op(\u0027LIKE\u0027)(\n                u\u0027%\u0027 + display_name + u\u0027%\u0027))","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"df2764851b0b999b909063035df182b06d52ee2b","unresolved":false,"context_lines":[{"line_number":1840,"context_line":"    else:"},{"line_number":1841,"context_line":"        display_name \u003d filters.get(\u0027display_name~\u0027)"},{"line_number":1842,"context_line":"        if display_name:"},{"line_number":1843,"context_line":"            filters[\u0027display_name\u0027] \u003d filters.pop(\u0027display_name~\u0027, None)"},{"line_number":1844,"context_line":"            query \u003d query.filter(models.Share.display_name.op(\u0027LIKE\u0027)("},{"line_number":1845,"context_line":"                u\u0027%\u0027 + filters[\u0027display_name\u0027] + u\u0027%\u0027))"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"    display_description \u003d filters.get(\u0027display_description\u0027)"},{"line_number":1848,"context_line":"    if display_description:"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_b2a5bbb6","line":1845,"range":{"start_line":1843,"start_character":12,"end_line":1845,"end_character":55},"in_reply_to":"9f560f44_b2549bc7","updated":"2020-09-23 22:55:12.000000000","message":"Done","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"659836018ac724a18857849051333b6502850f3d","unresolved":false,"context_lines":[{"line_number":1851,"context_line":"    else:"},{"line_number":1852,"context_line":"        display_description \u003d filters.get(\u0027display_description~\u0027)"},{"line_number":1853,"context_line":"        if display_description:"},{"line_number":1854,"context_line":"            filters[\u0027display_description\u0027] \u003d ("},{"line_number":1855,"context_line":"                filters.pop(\u0027display_description~\u0027, None))"},{"line_number":1856,"context_line":"            query \u003d query.filter(models.Share.display_description.op(\u0027LIKE\u0027)("},{"line_number":1857,"context_line":"                u\u0027%\u0027 + filters[\u0027display_description\u0027] + u\u0027%\u0027))"},{"line_number":1858,"context_line":""},{"line_number":1859,"context_line":"    status \u003d filters.get(\u0027status\u0027)"},{"line_number":1860,"context_line":"    if status:"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_d26e6f94","line":1857,"range":{"start_line":1854,"start_character":12,"end_line":1857,"end_character":62},"updated":"2020-09-23 22:34:51.000000000","message":"query \u003d query.filter(models.Share.display_description.op(\u0027LIKE\u0027)(\n                u\u0027%\u0027 + display_description + u\u0027%\u0027))","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"df2764851b0b999b909063035df182b06d52ee2b","unresolved":false,"context_lines":[{"line_number":1851,"context_line":"    else:"},{"line_number":1852,"context_line":"        display_description \u003d filters.get(\u0027display_description~\u0027)"},{"line_number":1853,"context_line":"        if display_description:"},{"line_number":1854,"context_line":"            filters[\u0027display_description\u0027] \u003d ("},{"line_number":1855,"context_line":"                filters.pop(\u0027display_description~\u0027, None))"},{"line_number":1856,"context_line":"            query \u003d query.filter(models.Share.display_description.op(\u0027LIKE\u0027)("},{"line_number":1857,"context_line":"                u\u0027%\u0027 + filters[\u0027display_description\u0027] + u\u0027%\u0027))"},{"line_number":1858,"context_line":""},{"line_number":1859,"context_line":"    status \u003d filters.get(\u0027status\u0027)"},{"line_number":1860,"context_line":"    if status:"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_92aa3781","line":1857,"range":{"start_line":1854,"start_character":12,"end_line":1857,"end_character":62},"in_reply_to":"9f560f44_d26e6f94","updated":"2020-09-23 22:55:12.000000000","message":"Done","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"659836018ac724a18857849051333b6502850f3d","unresolved":false,"context_lines":[{"line_number":1902,"context_line":""},{"line_number":1903,"context_line":"    if \u0027metadata\u0027 in filters:"},{"line_number":1904,"context_line":"        for k, v in filters[\u0027metadata\u0027].items():"},{"line_number":1905,"context_line":"            # pylint: disable\u003dE1101"},{"line_number":1906,"context_line":"            query \u003d query.filter("},{"line_number":1907,"context_line":"                or_(models.Share.share_metadata.any("},{"line_number":1908,"context_line":"                    key\u003dk, value\u003dv)))"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_720323bf","line":1905,"range":{"start_line":1905,"start_character":12,"end_line":1905,"end_character":35},"updated":"2020-09-23 22:34:51.000000000","message":"# pylint: disable\u003dno-member\n\n\neasier to read than the number","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"df2764851b0b999b909063035df182b06d52ee2b","unresolved":false,"context_lines":[{"line_number":1902,"context_line":""},{"line_number":1903,"context_line":"    if \u0027metadata\u0027 in filters:"},{"line_number":1904,"context_line":"        for k, v in filters[\u0027metadata\u0027].items():"},{"line_number":1905,"context_line":"            # pylint: disable\u003dE1101"},{"line_number":1906,"context_line":"            query \u003d query.filter("},{"line_number":1907,"context_line":"                or_(models.Share.share_metadata.any("},{"line_number":1908,"context_line":"                    key\u003dk, value\u003dv)))"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_32eb6bdd","line":1905,"range":{"start_line":1905,"start_character":12,"end_line":1905,"end_character":35},"in_reply_to":"9f560f44_720323bf","updated":"2020-09-23 22:55:12.000000000","message":"Done","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"659836018ac724a18857849051333b6502850f3d","unresolved":false,"context_lines":[{"line_number":2323,"context_line":""},{"line_number":2324,"context_line":"    if \u0027metadata\u0027 in filters:"},{"line_number":2325,"context_line":"        for k, v in filters[\u0027metadata\u0027].items():"},{"line_number":2326,"context_line":"            # pylint: disable\u003dE1101"},{"line_number":2327,"context_line":"            query \u003d query.filter("},{"line_number":2328,"context_line":"                or_(models.ShareAccessMapping."},{"line_number":2329,"context_line":"                    share_access_rules_metadata.any(key\u003dk, value\u003dv)))"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_920eb7e1","line":2326,"range":{"start_line":2326,"start_character":12,"end_line":2326,"end_character":34},"updated":"2020-09-23 22:34:51.000000000","message":"# pylint: disable\u003dno-member\n\nbit strange we didn\u0027t catch this before.","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"df2764851b0b999b909063035df182b06d52ee2b","unresolved":false,"context_lines":[{"line_number":2323,"context_line":""},{"line_number":2324,"context_line":"    if \u0027metadata\u0027 in filters:"},{"line_number":2325,"context_line":"        for k, v in filters[\u0027metadata\u0027].items():"},{"line_number":2326,"context_line":"            # pylint: disable\u003dE1101"},{"line_number":2327,"context_line":"            query \u003d query.filter("},{"line_number":2328,"context_line":"                or_(models.ShareAccessMapping."},{"line_number":2329,"context_line":"                    share_access_rules_metadata.any(key\u003dk, value\u003dv)))"}],"source_content_type":"text/x-python","patch_set":29,"id":"9f560f44_72ba03e1","line":2326,"range":{"start_line":2326,"start_character":12,"end_line":2326,"end_character":34},"in_reply_to":"9f560f44_920eb7e1","updated":"2020-09-23 22:55:12.000000000","message":"Done","commit_id":"fc0db37a9a244df5bc84b40dfd85ca219957019a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"8309e834dee978d38d642e86c7c5998fad45c7d0","unresolved":false,"context_lines":[{"line_number":1813,"context_line":"            options(joinedload(\u0027share_metadata\u0027)))"},{"line_number":1814,"context_line":""},{"line_number":1815,"context_line":""},{"line_number":1816,"context_line":"def _process_share_filters(query, filters, project_id\u003dNone,"},{"line_number":1817,"context_line":"                           share_server_id\u003dNone, share_group_id\u003dNone,"},{"line_number":1818,"context_line":"                           is_public\u003dFalse):"},{"line_number":1819,"context_line":"    if filters is None:"},{"line_number":1820,"context_line":"        filters \u003d {}"},{"line_number":1821,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"5f681702_69ebedaf","line":1818,"range":{"start_line":1816,"start_character":0,"end_line":1818,"end_character":44},"updated":"2020-10-16 11:48:42.000000000","message":"This new filter here is great, but we think that can be added in a new change, since isn\u0027t necessary to fix the total_count issue. Do we agree with that? \nI would like to see new units tests for this method too, because there are lots of new filters that our code might not have being testing. So, by moving to a new change, we can work on raising the coverage here.","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"6ffc356d98cdc9c364711d813b170f1a9b0e54ed","unresolved":false,"context_lines":[{"line_number":1813,"context_line":"            options(joinedload(\u0027share_metadata\u0027)))"},{"line_number":1814,"context_line":""},{"line_number":1815,"context_line":""},{"line_number":1816,"context_line":"def _process_share_filters(query, filters, project_id\u003dNone,"},{"line_number":1817,"context_line":"                           share_server_id\u003dNone, share_group_id\u003dNone,"},{"line_number":1818,"context_line":"                           is_public\u003dFalse):"},{"line_number":1819,"context_line":"    if filters is None:"},{"line_number":1820,"context_line":"        filters \u003d {}"},{"line_number":1821,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"3f65232a_87ed74f1","line":1818,"range":{"start_line":1816,"start_character":0,"end_line":1818,"end_character":44},"in_reply_to":"5f681702_69ebedaf","updated":"2020-10-23 07:45:46.000000000","message":"Yes，I agree.","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"8309e834dee978d38d642e86c7c5998fad45c7d0","unresolved":false,"context_lines":[{"line_number":2052,"context_line":"            msg \u003d _(\"Wrong sorting key provided - \u0027%s\u0027.\") % sort_key"},{"line_number":2053,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":2054,"context_line":""},{"line_number":2055,"context_line":"    count \u003d None"},{"line_number":2056,"context_line":"    if show_count:"},{"line_number":2057,"context_line":"        count \u003d query.with_entities("},{"line_number":2058,"context_line":"            func.count(distinct(models.Share.id))).scalar()"},{"line_number":2059,"context_line":""},{"line_number":2060,"context_line":"    if \u0027limit\u0027 in filters:"},{"line_number":2061,"context_line":"        offset \u003d filters.get(\u0027offset\u0027, 0)"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f681702_49b711da","line":2058,"range":{"start_line":2055,"start_character":0,"end_line":2058,"end_character":59},"updated":"2020-10-16 11:48:42.000000000","message":"In order to return the total_count, we just need this code here an the return the tuple, right? The code above can be added in a new change. What do you think?","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"6ffc356d98cdc9c364711d813b170f1a9b0e54ed","unresolved":false,"context_lines":[{"line_number":2052,"context_line":"            msg \u003d _(\"Wrong sorting key provided - \u0027%s\u0027.\") % sort_key"},{"line_number":2053,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":2054,"context_line":""},{"line_number":2055,"context_line":"    count \u003d None"},{"line_number":2056,"context_line":"    if show_count:"},{"line_number":2057,"context_line":"        count \u003d query.with_entities("},{"line_number":2058,"context_line":"            func.count(distinct(models.Share.id))).scalar()"},{"line_number":2059,"context_line":""},{"line_number":2060,"context_line":"    if \u0027limit\u0027 in filters:"},{"line_number":2061,"context_line":"        offset \u003d filters.get(\u0027offset\u0027, 0)"}],"source_content_type":"text/x-python","patch_set":32,"id":"3f65232a_67949845","line":2058,"range":{"start_line":2055,"start_character":0,"end_line":2058,"end_character":59},"in_reply_to":"5f681702_49b711da","updated":"2020-10-23 07:45:46.000000000","message":"OK, it should be in a new change. And I agree create a new method \u0027share_get_with_count\u0027.","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"8309e834dee978d38d642e86c7c5998fad45c7d0","unresolved":false,"context_lines":[{"line_number":2067,"context_line":""},{"line_number":2068,"context_line":""},{"line_number":2069,"context_line":"@require_admin_context"},{"line_number":2070,"context_line":"def share_get_all(context, filters\u003dNone, sort_key\u003dNone, sort_dir\u003dNone,"},{"line_number":2071,"context_line":"                  show_count\u003dFalse):"},{"line_number":2072,"context_line":"    project_id \u003d filters.pop(\u0027project_id\u0027, None) if filters else None"},{"line_number":2073,"context_line":"    count, query \u003d _share_get_all_with_filters("}],"source_content_type":"text/x-python","patch_set":32,"id":"5f681702_89aac982","line":2070,"range":{"start_line":2070,"start_character":4,"end_line":2070,"end_character":17},"updated":"2020-10-16 11:48:42.000000000","message":"The idea is: Create a new method, \u0027share_get_all_with_count\u0027 and remove the parameters \u0027show_count\u003dFalse\u0027. Call \u0027_share_get_all_with_filters\u0027 passing \u0027show_count\u003dTrue\u0027 and return both count and query result.\n\nThis method here, the original \u0027share_get_all\u0027, can continue to return only the query result.\n\nYou can do the same for the next methods.","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"6ffc356d98cdc9c364711d813b170f1a9b0e54ed","unresolved":false,"context_lines":[{"line_number":2067,"context_line":""},{"line_number":2068,"context_line":""},{"line_number":2069,"context_line":"@require_admin_context"},{"line_number":2070,"context_line":"def share_get_all(context, filters\u003dNone, sort_key\u003dNone, sort_dir\u003dNone,"},{"line_number":2071,"context_line":"                  show_count\u003dFalse):"},{"line_number":2072,"context_line":"    project_id \u003d filters.pop(\u0027project_id\u0027, None) if filters else None"},{"line_number":2073,"context_line":"    count, query \u003d _share_get_all_with_filters("}],"source_content_type":"text/x-python","patch_set":32,"id":"3f65232a_879bb470","line":2070,"range":{"start_line":2070,"start_character":4,"end_line":2070,"end_character":17},"in_reply_to":"5f681702_370aeb89","updated":"2020-10-23 07:45:46.000000000","message":"+1","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"492639b09b043427fbe393d1df7d390971905bfe","unresolved":false,"context_lines":[{"line_number":2067,"context_line":""},{"line_number":2068,"context_line":""},{"line_number":2069,"context_line":"@require_admin_context"},{"line_number":2070,"context_line":"def share_get_all(context, filters\u003dNone, sort_key\u003dNone, sort_dir\u003dNone,"},{"line_number":2071,"context_line":"                  show_count\u003dFalse):"},{"line_number":2072,"context_line":"    project_id \u003d filters.pop(\u0027project_id\u0027, None) if filters else None"},{"line_number":2073,"context_line":"    count, query \u003d _share_get_all_with_filters("}],"source_content_type":"text/x-python","patch_set":32,"id":"5f681702_370aeb89","line":2070,"range":{"start_line":2070,"start_character":4,"end_line":2070,"end_character":17},"in_reply_to":"5f681702_89aac982","updated":"2020-10-17 00:52:07.000000000","message":"+1","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f4d87d983c115e2f92d81e649c9fdce30388274a","unresolved":true,"context_lines":[{"line_number":2156,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":2157,"context_line":""},{"line_number":2158,"context_line":"    count \u003d None"},{"line_number":2159,"context_line":"    # NOTE(carloss): Count must be calculated before limit and offset are"},{"line_number":2160,"context_line":"    # applied into the query."},{"line_number":2161,"context_line":"    if show_count:"},{"line_number":2162,"context_line":"        count \u003d query.with_entities("},{"line_number":2163,"context_line":"            func.count(distinct(models.Share.id))).scalar()"},{"line_number":2164,"context_line":""},{"line_number":2165,"context_line":"    if \u0027limit\u0027 in filters:"},{"line_number":2166,"context_line":"        offset \u003d filters.get(\u0027offset\u0027, 0)"}],"source_content_type":"text/x-python","patch_set":40,"id":"fc86597f_13a81d85","line":2163,"range":{"start_line":2159,"start_character":4,"end_line":2163,"end_character":59},"updated":"2021-03-25 19:30:51.000000000","message":"nice!","commit_id":"268686c448681f3e54f2e14d3351671b4b0d40ef"}],"manila/share/api.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        return share_instance"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def calculate_shares_count(self, context, filters):"},{"line_number":404,"context_line":"        filters \u003d filters if filters else {}"},{"line_number":405,"context_line":"        allTenants \u003d utils.get_bool_param(\u0027all_tenants\u0027, filters)"},{"line_number":406,"context_line":"        if context.is_admin and allTenants:"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_f5c39beb","line":403,"range":{"start_line":403,"start_character":4,"end_line":403,"end_character":55},"updated":"2020-04-02 14:06:00.000000000","message":"I don\u0027t think that there is no need to add this method here. If you don\u0027t want mix things up in [1], what about extracting this to a private function in the api/v1/shares? In this way, we would avoid this call to the share/api.\n\n[1] https://review.opendev.org/#/c/703025/13/manila/api/v1/shares.py@124","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        return share_instance"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def calculate_shares_count(self, context, filters):"},{"line_number":404,"context_line":"        filters \u003d filters if filters else {}"},{"line_number":405,"context_line":"        allTenants \u003d utils.get_bool_param(\u0027all_tenants\u0027, filters)"},{"line_number":406,"context_line":"        if context.is_admin and allTenants:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_6b8d367a","line":403,"range":{"start_line":403,"start_character":4,"end_line":403,"end_character":55},"in_reply_to":"df33271e_f5c39beb","updated":"2020-04-26 07:02:33.000000000","message":"Sorry,I don\u0027t understand why we must extract it into the api/v1/shares, it should not be possible to call this interface alone.","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def calculate_shares_count(self, context, filters):"},{"line_number":404,"context_line":"        filters \u003d filters if filters else {}"},{"line_number":405,"context_line":"        allTenants \u003d utils.get_bool_param(\u0027all_tenants\u0027, filters)"},{"line_number":406,"context_line":"        if context.is_admin and allTenants:"},{"line_number":407,"context_line":"            del filters[\u0027all_tenants\u0027]"},{"line_number":408,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_55b7e786","line":405,"range":{"start_line":405,"start_character":8,"end_line":405,"end_character":18},"updated":"2020-04-02 14:06:00.000000000","message":"nit: maybe all_tenants?","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def calculate_shares_count(self, context, filters):"},{"line_number":404,"context_line":"        filters \u003d filters if filters else {}"},{"line_number":405,"context_line":"        allTenants \u003d utils.get_bool_param(\u0027all_tenants\u0027, filters)"},{"line_number":406,"context_line":"        if context.is_admin and allTenants:"},{"line_number":407,"context_line":"            del filters[\u0027all_tenants\u0027]"},{"line_number":408,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_4bddda6e","line":405,"range":{"start_line":405,"start_character":8,"end_line":405,"end_character":18},"in_reply_to":"df33271e_55b7e786","updated":"2020-04-26 07:02:33.000000000","message":"yes,we support allTenants.","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":1666,"context_line":"        if \u0027display_name~\u0027 in search_opts:"},{"line_number":1667,"context_line":"            filters[\u0027display_name~\u0027] \u003d search_opts.pop(\u0027display_name~\u0027)"},{"line_number":1668,"context_line":"        if \u0027display_description\u0027 in search_opts:"},{"line_number":1669,"context_line":"            filters[\u0027display_description\u0027] \u003d \\"},{"line_number":1670,"context_line":"                search_opts.pop(\u0027display_description\u0027)"},{"line_number":1671,"context_line":"        if \u0027display_description~\u0027 in search_opts:"},{"line_number":1672,"context_line":"            filters[\u0027display_description~\u0027] \u003d \\"},{"line_number":1673,"context_line":"                search_opts.pop(\u0027display_description~\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_750b0b29","line":1670,"range":{"start_line":1669,"start_character":45,"end_line":1670,"end_character":54},"updated":"2020-04-02 14:06:00.000000000","message":"please remove this and surround this statement with (). It should look like:\nfilters[\u0027display_description\u0027] \u003d (\n      search_opts.pop(\u0027display_description\u0027)","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":1666,"context_line":"        if \u0027display_name~\u0027 in search_opts:"},{"line_number":1667,"context_line":"            filters[\u0027display_name~\u0027] \u003d search_opts.pop(\u0027display_name~\u0027)"},{"line_number":1668,"context_line":"        if \u0027display_description\u0027 in search_opts:"},{"line_number":1669,"context_line":"            filters[\u0027display_description\u0027] \u003d \\"},{"line_number":1670,"context_line":"                search_opts.pop(\u0027display_description\u0027)"},{"line_number":1671,"context_line":"        if \u0027display_description~\u0027 in search_opts:"},{"line_number":1672,"context_line":"            filters[\u0027display_description~\u0027] \u003d \\"},{"line_number":1673,"context_line":"                search_opts.pop(\u0027display_description~\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_8be7e240","line":1670,"range":{"start_line":1669,"start_character":45,"end_line":1670,"end_character":54},"in_reply_to":"df33271e_750b0b29","updated":"2020-04-26 07:02:33.000000000","message":"Done","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":1669,"context_line":"            filters[\u0027display_description\u0027] \u003d \\"},{"line_number":1670,"context_line":"                search_opts.pop(\u0027display_description\u0027)"},{"line_number":1671,"context_line":"        if \u0027display_description~\u0027 in search_opts:"},{"line_number":1672,"context_line":"            filters[\u0027display_description~\u0027] \u003d \\"},{"line_number":1673,"context_line":"                search_opts.pop(\u0027display_description~\u0027)"},{"line_number":1674,"context_line":"        if \u0027status\u0027 in search_opts:"},{"line_number":1675,"context_line":"            filters[\u0027status\u0027] \u003d search_opts.pop(\u0027status\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_4808ea26","line":1672,"range":{"start_line":1672,"start_character":46,"end_line":1672,"end_character":47},"updated":"2020-04-02 14:06:00.000000000","message":"same as above","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":1669,"context_line":"            filters[\u0027display_description\u0027] \u003d \\"},{"line_number":1670,"context_line":"                search_opts.pop(\u0027display_description\u0027)"},{"line_number":1671,"context_line":"        if \u0027display_description~\u0027 in search_opts:"},{"line_number":1672,"context_line":"            filters[\u0027display_description~\u0027] \u003d \\"},{"line_number":1673,"context_line":"                search_opts.pop(\u0027display_description~\u0027)"},{"line_number":1674,"context_line":"        if \u0027status\u0027 in search_opts:"},{"line_number":1675,"context_line":"            filters[\u0027status\u0027] \u003d search_opts.pop(\u0027status\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_6be25631","line":1672,"range":{"start_line":1672,"start_character":46,"end_line":1672,"end_character":47},"in_reply_to":"df33271e_4808ea26","updated":"2020-04-26 07:02:33.000000000","message":"Done","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c898cb4ccff2c3da6bae6e2aad9c3aad0e3e2d69","unresolved":false,"context_lines":[{"line_number":1765,"context_line":"        # Prepare filters"},{"line_number":1766,"context_line":"        filters \u003d {}"},{"line_number":1767,"context_line":"        if \u0027display_name\u0027 in search_opts:"},{"line_number":1768,"context_line":"            filters[\u0027display_name\u0027] \u003d search_opts.pop(\u0027display_name\u0027)"},{"line_number":1769,"context_line":"        if \u0027display_name~\u0027 in search_opts:"},{"line_number":1770,"context_line":"            filters[\u0027display_name~\u0027] \u003d search_opts.pop(\u0027display_name~\u0027)"},{"line_number":1771,"context_line":"        if \u0027display_description\u0027 in search_opts:"}],"source_content_type":"text/x-python","patch_set":18,"id":"ff570b3c_605f8672","line":1768,"updated":"2020-05-21 22:52:42.000000000","message":"missing the snapshot_id filter:\nif \u0027snapshot_id\u0027 in search_opts:\n    filters[\u0027snapshot_id\u0027] \u003d search_opts.pop(\u0027snapshot_id\u0027)","commit_id":"c14c990f1cc99ac30488382624dce51aa7b30f9e"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"4b931f7b52b7bd55fd9fca3dbb8e7df2019b18ed","unresolved":false,"context_lines":[{"line_number":1765,"context_line":"        # Prepare filters"},{"line_number":1766,"context_line":"        filters \u003d {}"},{"line_number":1767,"context_line":"        if \u0027display_name\u0027 in search_opts:"},{"line_number":1768,"context_line":"            filters[\u0027display_name\u0027] \u003d search_opts.pop(\u0027display_name\u0027)"},{"line_number":1769,"context_line":"        if \u0027display_name~\u0027 in search_opts:"},{"line_number":1770,"context_line":"            filters[\u0027display_name~\u0027] \u003d search_opts.pop(\u0027display_name~\u0027)"},{"line_number":1771,"context_line":"        if \u0027display_description\u0027 in search_opts:"}],"source_content_type":"text/x-python","patch_set":18,"id":"ff570b3c_d63560aa","line":1768,"in_reply_to":"ff570b3c_605f8672","updated":"2020-05-25 00:52:45.000000000","message":"Done","commit_id":"c14c990f1cc99ac30488382624dce51aa7b30f9e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9c0d45b172fc47505a857a83ad03f3388f7e93d2","unresolved":false,"context_lines":[{"line_number":1764,"context_line":""},{"line_number":1765,"context_line":"        # Prepare filters"},{"line_number":1766,"context_line":"        filters \u003d {}"},{"line_number":1767,"context_line":"        if \u0027display_name\u0027 in search_opts:"},{"line_number":1768,"context_line":"            filters[\u0027display_name\u0027] \u003d search_opts.pop(\u0027display_name\u0027)"},{"line_number":1769,"context_line":"        if \u0027display_name~\u0027 in search_opts:"},{"line_number":1770,"context_line":"            filters[\u0027display_name~\u0027] \u003d search_opts.pop(\u0027display_name~\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_6b548efe","line":1767,"updated":"2020-09-11 12:38:27.000000000","message":"missing share_group_id, share_proto and host in filters.","commit_id":"cc63d9dc8c100c504948dfaefd1463693344a3b1"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"72bf8e70d7293926987b1743fca680e398c364c3","unresolved":false,"context_lines":[{"line_number":1764,"context_line":""},{"line_number":1765,"context_line":"        # Prepare filters"},{"line_number":1766,"context_line":"        filters \u003d {}"},{"line_number":1767,"context_line":"        if \u0027display_name\u0027 in search_opts:"},{"line_number":1768,"context_line":"            filters[\u0027display_name\u0027] \u003d search_opts.pop(\u0027display_name\u0027)"},{"line_number":1769,"context_line":"        if \u0027display_name~\u0027 in search_opts:"},{"line_number":1770,"context_line":"            filters[\u0027display_name~\u0027] \u003d search_opts.pop(\u0027display_name~\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_12ca3945","line":1767,"in_reply_to":"9f560f44_6b548efe","updated":"2020-09-16 02:41:42.000000000","message":"Done","commit_id":"cc63d9dc8c100c504948dfaefd1463693344a3b1"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"5d4f14aa953e26be3a168f8ea83c295f6a61aeff","unresolved":false,"context_lines":[{"line_number":481,"context_line":""},{"line_number":482,"context_line":"    def calculate_shares_count(self, context, filters):"},{"line_number":483,"context_line":"        filters \u003d filters if filters else {}"},{"line_number":484,"context_line":"        allTenants \u003d utils.get_bool_param(\u0027all_tenants\u0027, filters)"},{"line_number":485,"context_line":"        if context.is_admin and allTenants:"},{"line_number":486,"context_line":"            del filters[\u0027all_tenants\u0027]"},{"line_number":487,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_b90baed2","line":484,"updated":"2020-09-11 18:20:39.000000000","message":"NIT all_tenants, we use camelcase for class names only","commit_id":"da878dc4d4b8f7ca54e495a676961cc2cf446848"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"72bf8e70d7293926987b1743fca680e398c364c3","unresolved":false,"context_lines":[{"line_number":481,"context_line":""},{"line_number":482,"context_line":"    def calculate_shares_count(self, context, filters):"},{"line_number":483,"context_line":"        filters \u003d filters if filters else {}"},{"line_number":484,"context_line":"        allTenants \u003d utils.get_bool_param(\u0027all_tenants\u0027, filters)"},{"line_number":485,"context_line":"        if context.is_admin and allTenants:"},{"line_number":486,"context_line":"            del filters[\u0027all_tenants\u0027]"},{"line_number":487,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_f2c865a9","line":484,"in_reply_to":"9f560f44_a5e365d8","updated":"2020-09-16 02:41:42.000000000","message":"My bad, fixed.","commit_id":"da878dc4d4b8f7ca54e495a676961cc2cf446848"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fce1c0ab213d58711cfa7833548ceeaaf123e314","unresolved":false,"context_lines":[{"line_number":481,"context_line":""},{"line_number":482,"context_line":"    def calculate_shares_count(self, context, filters):"},{"line_number":483,"context_line":"        filters \u003d filters if filters else {}"},{"line_number":484,"context_line":"        allTenants \u003d utils.get_bool_param(\u0027all_tenants\u0027, filters)"},{"line_number":485,"context_line":"        if context.is_admin and allTenants:"},{"line_number":486,"context_line":"            del filters[\u0027all_tenants\u0027]"},{"line_number":487,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_a5e365d8","line":484,"in_reply_to":"9f560f44_b90baed2","updated":"2020-09-14 22:25:06.000000000","message":"Uh, that\u0027s true. Thanks for pointing it out :)","commit_id":"da878dc4d4b8f7ca54e495a676961cc2cf446848"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"988e9a710ed0a752c5ad1ca586fcb8d466e4a03b","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"from manila.common import constants"},{"line_number":31,"context_line":"from manila.data import rpcapi as data_rpcapi"},{"line_number":32,"context_line":"from manila import db"},{"line_number":33,"context_line":"from manila.db import base"},{"line_number":34,"context_line":"from manila import exception"},{"line_number":35,"context_line":"from manila.i18n import _"}],"source_content_type":"text/x-python","patch_set":27,"id":"9f560f44_f73e7389","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":21},"updated":"2020-09-17 12:36:39.000000000","message":"I think there is no need to this import. This class is already using db. You can invoke it by calling self.db","commit_id":"7a10456d62a93ca6f34f9bce5a718a875fbce004"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"fae513d6ccca1d7a3d1a62bdea7337022c402b0d","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"from manila.common import constants"},{"line_number":31,"context_line":"from manila.data import rpcapi as data_rpcapi"},{"line_number":32,"context_line":"from manila import db"},{"line_number":33,"context_line":"from manila.db import base"},{"line_number":34,"context_line":"from manila import exception"},{"line_number":35,"context_line":"from manila.i18n import _"}],"source_content_type":"text/x-python","patch_set":27,"id":"9f560f44_73d0a92c","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":21},"in_reply_to":"9f560f44_f73e7389","updated":"2020-09-18 02:48:53.000000000","message":"Get it!","commit_id":"7a10456d62a93ca6f34f9bce5a718a875fbce004"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"988e9a710ed0a752c5ad1ca586fcb8d466e4a03b","unresolved":false,"context_lines":[{"line_number":486,"context_line":"            del filters[\u0027all_tenants\u0027]"},{"line_number":487,"context_line":"        else:"},{"line_number":488,"context_line":"            filters[\u0027project_id\u0027] \u003d context.project_id"},{"line_number":489,"context_line":"        return db.calculate_shares_count(context, filters)"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"    def create_share_instance_and_get_request_spec("},{"line_number":492,"context_line":"            self, context, share, availability_zone\u003dNone,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9f560f44_3748eb2c","line":489,"range":{"start_line":489,"start_character":15,"end_line":489,"end_character":18},"updated":"2020-09-17 12:36:39.000000000","message":"self.db.","commit_id":"7a10456d62a93ca6f34f9bce5a718a875fbce004"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"fae513d6ccca1d7a3d1a62bdea7337022c402b0d","unresolved":false,"context_lines":[{"line_number":486,"context_line":"            del filters[\u0027all_tenants\u0027]"},{"line_number":487,"context_line":"        else:"},{"line_number":488,"context_line":"            filters[\u0027project_id\u0027] \u003d context.project_id"},{"line_number":489,"context_line":"        return db.calculate_shares_count(context, filters)"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"    def create_share_instance_and_get_request_spec("},{"line_number":492,"context_line":"            self, context, share, availability_zone\u003dNone,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9f560f44_532e4542","line":489,"range":{"start_line":489,"start_character":15,"end_line":489,"end_character":18},"in_reply_to":"9f560f44_3748eb2c","updated":"2020-09-18 02:48:53.000000000","message":"Done","commit_id":"7a10456d62a93ca6f34f9bce5a718a875fbce004"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e820d6371131ad619d7b0114eaeedb482a1755c1","unresolved":false,"context_lines":[{"line_number":778,"context_line":"        self.share_rpcapi.update_share_replica(context, share_replica)"},{"line_number":779,"context_line":""},{"line_number":780,"context_line":"    def manage(self, context, share_data, driver_options):"},{"line_number":781,"context_line":"        export_location \u003d ("},{"line_number":782,"context_line":"            share_data[\u0027export_location\u0027][\u0027path\u0027]"},{"line_number":783,"context_line":"            if isinstance(share_data[\u0027export_location\u0027], dict)"},{"line_number":784,"context_line":"            else share_data[\u0027export_location\u0027])"},{"line_number":785,"context_line":"        shares \u003d self.get_all(context, {"},{"line_number":786,"context_line":"            \u0027host\u0027: share_data[\u0027host\u0027],"},{"line_number":787,"context_line":"            \u0027export_location_path\u0027: export_location,"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_f4af2328","line":784,"range":{"start_line":781,"start_character":0,"end_line":784,"end_character":47},"updated":"2020-09-23 20:56:34.000000000","message":"Is this related to this bug fix?","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee8258eb6c5fab5dd5066dbc816d65045bab2b44","unresolved":false,"context_lines":[{"line_number":778,"context_line":"        self.share_rpcapi.update_share_replica(context, share_replica)"},{"line_number":779,"context_line":""},{"line_number":780,"context_line":"    def manage(self, context, share_data, driver_options):"},{"line_number":781,"context_line":"        export_location \u003d ("},{"line_number":782,"context_line":"            share_data[\u0027export_location\u0027][\u0027path\u0027]"},{"line_number":783,"context_line":"            if isinstance(share_data[\u0027export_location\u0027], dict)"},{"line_number":784,"context_line":"            else share_data[\u0027export_location\u0027])"},{"line_number":785,"context_line":"        shares \u003d self.get_all(context, {"},{"line_number":786,"context_line":"            \u0027host\u0027: share_data[\u0027host\u0027],"},{"line_number":787,"context_line":"            \u0027export_location_path\u0027: export_location,"}],"source_content_type":"text/x-python","patch_set":28,"id":"9f560f44_b7b00dff","line":784,"range":{"start_line":781,"start_character":0,"end_line":784,"end_character":47},"in_reply_to":"9f560f44_f4af2328","updated":"2020-09-23 22:25:07.000000000","message":"No, it isn\u0027t!\nBut without this, we are hitting this bug [1] in the CI.\nSo let\u0027s address each issue in one patch. I\u0027ll add a depends-on in the change that actually solves this issue.\n\n[1] https://launchpad.net/bugs/1893718","commit_id":"80ba1bb2881743687c0d6631d20abf1c52b5481e"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"8309e834dee978d38d642e86c7c5998fad45c7d0","unresolved":false,"context_lines":[{"line_number":1743,"context_line":"            policy.check_policy(context, \u0027share\u0027, \u0027get\u0027, rv)"},{"line_number":1744,"context_line":"        return rv"},{"line_number":1745,"context_line":""},{"line_number":1746,"context_line":"    def get_all(self, context, search_opts\u003dNone, sort_key\u003d\u0027created_at\u0027,"},{"line_number":1747,"context_line":"                sort_dir\u003d\u0027desc\u0027, show_count\u003dFalse):"},{"line_number":1748,"context_line":"        policy.check_policy(context, \u0027share\u0027, \u0027get_all\u0027)"},{"line_number":1749,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"5f681702_8934894c","line":1746,"range":{"start_line":1746,"start_character":8,"end_line":1746,"end_character":15},"updated":"2020-10-16 11:48:42.000000000","message":"We can work with two wrappers here too: by 1) renaming this method to \u0027_get_all\u0027 and 2) create two new wrappers: \u0027get_all\u0027 that returns only the query result and \u0027get_all_with_count\u0027 that return both total_count and query result. Both methods should use \u0027_get_all\u0027 private method.","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"6ffc356d98cdc9c364711d813b170f1a9b0e54ed","unresolved":false,"context_lines":[{"line_number":1743,"context_line":"            policy.check_policy(context, \u0027share\u0027, \u0027get\u0027, rv)"},{"line_number":1744,"context_line":"        return rv"},{"line_number":1745,"context_line":""},{"line_number":1746,"context_line":"    def get_all(self, context, search_opts\u003dNone, sort_key\u003d\u0027created_at\u0027,"},{"line_number":1747,"context_line":"                sort_dir\u003d\u0027desc\u0027, show_count\u003dFalse):"},{"line_number":1748,"context_line":"        policy.check_policy(context, \u0027share\u0027, \u0027get_all\u0027)"},{"line_number":1749,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"3f65232a_677db81b","line":1746,"range":{"start_line":1746,"start_character":8,"end_line":1746,"end_character":15},"in_reply_to":"5f681702_7704637c","updated":"2020-10-23 07:45:46.000000000","message":"+1","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"492639b09b043427fbe393d1df7d390971905bfe","unresolved":false,"context_lines":[{"line_number":1743,"context_line":"            policy.check_policy(context, \u0027share\u0027, \u0027get\u0027, rv)"},{"line_number":1744,"context_line":"        return rv"},{"line_number":1745,"context_line":""},{"line_number":1746,"context_line":"    def get_all(self, context, search_opts\u003dNone, sort_key\u003d\u0027created_at\u0027,"},{"line_number":1747,"context_line":"                sort_dir\u003d\u0027desc\u0027, show_count\u003dFalse):"},{"line_number":1748,"context_line":"        policy.check_policy(context, \u0027share\u0027, \u0027get_all\u0027)"},{"line_number":1749,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"5f681702_7704637c","line":1746,"range":{"start_line":1746,"start_character":8,"end_line":1746,"end_character":15},"in_reply_to":"5f681702_8934894c","updated":"2020-10-17 00:52:07.000000000","message":"+1","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"8309e834dee978d38d642e86c7c5998fad45c7d0","unresolved":false,"context_lines":[{"line_number":1755,"context_line":"        # Prepare filters"},{"line_number":1756,"context_line":"        filters \u003d {}"},{"line_number":1757,"context_line":""},{"line_number":1758,"context_line":"        filter_keys \u003d ["},{"line_number":1759,"context_line":"            \u0027display_name\u0027, \u0027share_group_id\u0027, \u0027share_proto\u0027, \u0027display_name~\u0027,"},{"line_number":1760,"context_line":"            \u0027display_description\u0027, \u0027display_description~\u0027, \u0027snapshot_id\u0027,"},{"line_number":1761,"context_line":"            \u0027status\u0027, \u0027share_type_id\u0027, \u0027project_id\u0027, \u0027export_location_id\u0027,"},{"line_number":1762,"context_line":"            \u0027export_location_path\u0027, \u0027limit\u0027, \u0027offset\u0027, \u0027host\u0027,"},{"line_number":1763,"context_line":"            \u0027share_network_id\u0027]"},{"line_number":1764,"context_line":""},{"line_number":1765,"context_line":"        for key in filter_keys:"},{"line_number":1766,"context_line":"            if key in search_opts:"},{"line_number":1767,"context_line":"                filters[key] \u003d search_opts.pop(key)"},{"line_number":1768,"context_line":""},{"line_number":1769,"context_line":"        if \u0027metadata\u0027 in search_opts:"},{"line_number":1770,"context_line":"            filters[\u0027metadata\u0027] \u003d search_opts.pop(\u0027metadata\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f681702_c9f8417e","line":1767,"range":{"start_line":1758,"start_character":8,"end_line":1767,"end_character":51},"updated":"2020-10-16 11:48:42.000000000","message":"is this code needed for total_count fix? Or is just an improvement? If no, we should move to other change.","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"6ffc356d98cdc9c364711d813b170f1a9b0e54ed","unresolved":false,"context_lines":[{"line_number":1755,"context_line":"        # Prepare filters"},{"line_number":1756,"context_line":"        filters \u003d {}"},{"line_number":1757,"context_line":""},{"line_number":1758,"context_line":"        filter_keys \u003d ["},{"line_number":1759,"context_line":"            \u0027display_name\u0027, \u0027share_group_id\u0027, \u0027share_proto\u0027, \u0027display_name~\u0027,"},{"line_number":1760,"context_line":"            \u0027display_description\u0027, \u0027display_description~\u0027, \u0027snapshot_id\u0027,"},{"line_number":1761,"context_line":"            \u0027status\u0027, \u0027share_type_id\u0027, \u0027project_id\u0027, \u0027export_location_id\u0027,"},{"line_number":1762,"context_line":"            \u0027export_location_path\u0027, \u0027limit\u0027, \u0027offset\u0027, \u0027host\u0027,"},{"line_number":1763,"context_line":"            \u0027share_network_id\u0027]"},{"line_number":1764,"context_line":""},{"line_number":1765,"context_line":"        for key in filter_keys:"},{"line_number":1766,"context_line":"            if key in search_opts:"},{"line_number":1767,"context_line":"                filters[key] \u003d search_opts.pop(key)"},{"line_number":1768,"context_line":""},{"line_number":1769,"context_line":"        if \u0027metadata\u0027 in search_opts:"},{"line_number":1770,"context_line":"            filters[\u0027metadata\u0027] \u003d search_opts.pop(\u0027metadata\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"3f65232a_67a2d89c","line":1767,"range":{"start_line":1758,"start_character":8,"end_line":1767,"end_character":51},"in_reply_to":"5f681702_c9f8417e","updated":"2020-10-23 07:45:46.000000000","message":"+1","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c0de97a47ef7ed52f0313bc91bbf495bf1c106a6","unresolved":false,"context_lines":[{"line_number":1744,"context_line":"        return rv"},{"line_number":1745,"context_line":""},{"line_number":1746,"context_line":"    def _get_all(self, context, search_opts\u003dNone, sort_key\u003d\u0027created_at\u0027,"},{"line_number":1747,"context_line":"                sort_dir\u003d\u0027desc\u0027, show_count\u003dFalse):"},{"line_number":1748,"context_line":"        policy.check_policy(context, \u0027share\u0027, \u0027get_all\u0027)"},{"line_number":1749,"context_line":""},{"line_number":1750,"context_line":"        if search_opts is None:"}],"source_content_type":"text/x-python","patch_set":35,"id":"3f65232a_ff9f7db1","line":1747,"updated":"2020-10-24 15:44:31.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"a5169f65c4754fad5eecd11be116ffb841863914"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c0de97a47ef7ed52f0313bc91bbf495bf1c106a6","unresolved":false,"context_lines":[{"line_number":1798,"context_line":"        if show_count:"},{"line_number":1799,"context_line":"            if \u0027share_server_id\u0027 in search_opts:"},{"line_number":1800,"context_line":"                # NOTE(vponomaryov): this is project_id independent"},{"line_number":1801,"context_line":"                policy.check_policy(context, \u0027share\u0027, \u0027list_by_share_server_id\u0027)"},{"line_number":1802,"context_line":"                count, shares \u003d ("},{"line_number":1803,"context_line":"                    self.db.share_get_all_by_share_server_with_count("},{"line_number":1804,"context_line":"                        context, search_opts.pop(\u0027share_server_id\u0027),"}],"source_content_type":"text/x-python","patch_set":35,"id":"3f65232a_5fa5d103","line":1801,"updated":"2020-10-24 15:44:31.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"a5169f65c4754fad5eecd11be116ffb841863914"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c0de97a47ef7ed52f0313bc91bbf495bf1c106a6","unresolved":false,"context_lines":[{"line_number":1834,"context_line":"    def get_all(self, context, search_opts\u003dNone, sort_key\u003d\u0027created_at\u0027,"},{"line_number":1835,"context_line":"                sort_dir\u003d\u0027desc\u0027):"},{"line_number":1836,"context_line":"        return self._get_all(self, context, search_opts\u003dsearch_opts,"},{"line_number":1837,"context_line":"                             sort_key\u003dsort_key, sort_dir\u003dsort_dir)"},{"line_number":1838,"context_line":""},{"line_number":1839,"context_line":"    def get_all_with_count(self, context, search_opts\u003dNone,"},{"line_number":1840,"context_line":"                           sort_key\u003d\u0027created_at\u0027, sort_dir\u003d\u0027desc\u0027):"}],"source_content_type":"text/x-python","patch_set":35,"id":"3f65232a_3faa95d3","line":1837,"updated":"2020-10-24 15:44:31.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"a5169f65c4754fad5eecd11be116ffb841863914"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ed81df56de81a26191228fa98e99683cf3298e13","unresolved":false,"context_lines":[{"line_number":1835,"context_line":"    def get_all(self, context, search_opts\u003dNone, sort_key\u003d\u0027created_at\u0027,"},{"line_number":1836,"context_line":"                sort_dir\u003d\u0027desc\u0027):"},{"line_number":1837,"context_line":"        return self._get_all(context, search_opts\u003dsearch_opts,"},{"line_number":1838,"context_line":"                             sort_key\u003dsort_key, sort_dir\u003dsort_dir)"},{"line_number":1839,"context_line":""},{"line_number":1840,"context_line":"    def get_all_with_count(self, context, search_opts\u003dNone,"},{"line_number":1841,"context_line":"                           sort_key\u003d\u0027created_at\u0027, sort_dir\u003d\u0027desc\u0027):"}],"source_content_type":"text/x-python","patch_set":36,"id":"3f65232a_7f0a4d26","line":1838,"updated":"2020-10-25 03:52:35.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"8a104d874e16a8cc4d08c49b83e7cbb29e5931a8"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"f3299d06fecedea708392060fb9f04e927656600","unresolved":false,"context_lines":[{"line_number":1835,"context_line":"    def get_all(self, context, search_opts\u003dNone, sort_key\u003d\u0027created_at\u0027,"},{"line_number":1836,"context_line":"                sort_dir\u003d\u0027desc\u0027):"},{"line_number":1837,"context_line":"        return self._get_all(context, search_opts\u003dsearch_opts,"},{"line_number":1838,"context_line":"                             sort_key\u003dsort_key, sort_dir\u003dsort_dir)"},{"line_number":1839,"context_line":""},{"line_number":1840,"context_line":"    def get_all_with_count(self, context, search_opts\u003dNone,"},{"line_number":1841,"context_line":"                           sort_key\u003d\u0027created_at\u0027, sort_dir\u003d\u0027desc\u0027):"}],"source_content_type":"text/x-python","patch_set":36,"id":"1f621f24_598eb12e","line":1838,"in_reply_to":"3f65232a_7f0a4d26","updated":"2020-10-29 09:42:10.000000000","message":"You should ensure this line it less than 79 characters.","commit_id":"8a104d874e16a8cc4d08c49b83e7cbb29e5931a8"}],"manila/tests/db/sqlalchemy/test_api.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a20d1bff82c92c370acebe8dca312698c6dae16c","unresolved":false,"context_lines":[{"line_number":527,"context_line":""},{"line_number":528,"context_line":"    @ddt.data(\u0027status\u0027, \u0027display_name\u0027)"},{"line_number":529,"context_line":"    def test_calculate_shares_count_by_filter(self, filter_key):"},{"line_number":530,"context_line":"        shares \u003d [db_utils.create_share(**{filter_key: n, \u0027size\u0027: 1})"},{"line_number":531,"context_line":"                  for n in (\u0027test1\u0027, \u0027test2\u0027)]"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"        filters \u003d {filter_key: \u0027test1\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff570b3c_94ad079d","line":530,"updated":"2020-05-19 10:56:43.000000000","message":"pep8: F841 local variable \u0027shares\u0027 is assigned to but never used","commit_id":"f395db955849045799403182d9b44d82fddce255"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"231fbef692d13fdf73a0f8a67f3412a26a0689a3","unresolved":true,"context_lines":[{"line_number":632,"context_line":"         [\u0027fake desc 1\u0027, \u0027fake desc 2\u0027, \u0027fake desc 3\u0027], \u0027fake desc\u0027)"},{"line_number":633,"context_line":"    )"},{"line_number":634,"context_line":"    @ddt.unpack"},{"line_number":635,"context_line":"    def test_share_get_all_like_filters("},{"line_number":636,"context_line":"            self, filter_name, key, share_values, like_value):"},{"line_number":637,"context_line":"        for value in share_values:"},{"line_number":638,"context_line":"            kwargs \u003d {key: value}"}],"source_content_type":"text/x-python","patch_set":38,"id":"d893d4b1_0cd9c4c6","line":635,"range":{"start_line":635,"start_character":4,"end_line":635,"end_character":40},"updated":"2021-03-10 09:32:39.000000000","message":"the key of this patch is count must be calculated before limit and offset,\nso i think we must add related unit tests. we can change this test as follow:\n\n    def test_share_get_all_like_filters(\n            self, filter_name, key, share_values, like_value):\n        for value in share_values:\n            kwargs \u003d {key: value}\n            db_utils.create_share(**kwargs)\n        db_utils.create_share(\n            display_name\u003d\u0027irrelevant_name\u0027,\n            display_description\u003d\u0027should not be queried\u0027)\n\n        filters \u003d {filter_name: like_value}\n        filters_with_limit \u003d {filter_name: like_value, \u0027limit\u0027: 2}\n\n        results \u003d db_api.share_get_all(self.ctxt, filters\u003dfilters)\n        count, results_limit \u003d db_api.share_get_all_with_count(\n            self.ctxt, filters\u003dfilters_with_limit)\n\n        self.assertEqual(count, len(results))\n        self.assertEqual(2, results_limit)","commit_id":"e21a37fefed23e7effa06a4ac20f97b1d09f5470"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"845c6486dbc4f814a90ad9f4afe7ef6905370f93","unresolved":true,"context_lines":[{"line_number":632,"context_line":"         [\u0027fake desc 1\u0027, \u0027fake desc 2\u0027, \u0027fake desc 3\u0027], \u0027fake desc\u0027)"},{"line_number":633,"context_line":"    )"},{"line_number":634,"context_line":"    @ddt.unpack"},{"line_number":635,"context_line":"    def test_share_get_all_like_filters("},{"line_number":636,"context_line":"            self, filter_name, key, share_values, like_value):"},{"line_number":637,"context_line":"        for value in share_values:"},{"line_number":638,"context_line":"            kwargs \u003d {key: value}"}],"source_content_type":"text/x-python","patch_set":38,"id":"1b72b04d_282c7250","line":635,"range":{"start_line":635,"start_character":4,"end_line":635,"end_character":40},"in_reply_to":"d893d4b1_0cd9c4c6","updated":"2021-03-18 15:27:08.000000000","message":"Yeah, I agree we could have more unit tests for this, but I do not think we should refactor this one.\nI guess we should add more unit tests or ddts and in this way, each test will have its own purpose.\nI will work on this. Thanks for pointing it out.","commit_id":"e21a37fefed23e7effa06a4ac20f97b1d09f5470"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"740380e04ae5ce50ae6b9fe7ce3b2cf286bff13e","unresolved":true,"context_lines":[{"line_number":596,"context_line":"        self.assertEqual(0, len("},{"line_number":597,"context_line":"            set(shares_requested_ids) \u0026 set(shares_not_requested_ids)))"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    def test_share_get_all_with_count(self):"},{"line_number":600,"context_line":"        share_names \u003d [\u0027fake_name_1\u0027, \u0027fake_name_2\u0027]"},{"line_number":601,"context_line":"        [db_utils.create_share(display_name\u003dname) for name in share_names]"},{"line_number":602,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"de06aac1_7e2ba88a","line":599,"range":{"start_line":599,"start_character":4,"end_line":599,"end_character":44},"updated":"2021-03-24 11:42:07.000000000","message":"how about this?\nWe can prove that count is done before the limit.\n\n\ndef test_share_get_all_with_count_limit(self):\n        share_names \u003d [\u0027fake_name_1\u0027, \u0027fake_name_2\u0027, \u0027fake_name_3\u0027]\n        [db_utils.create_share(display_name\u003dname) for name in share_names]\n        filters \u003d {\n            \u0027display_name~\u0027: \u0027fake_name\u0027,\n            \u0027limit\u0027: 2\n        }\n        count, result \u003d db_api.share_get_all_with_count(\n            self.ctxt, filters\u003dfilters)\n        self.assertEqual(count, len(share_names))\n        for share in result:\n            self.assertIn(\u0027fake_name\u0027, share[\u0027display_name\u0027])\n        self.assertEqual(2, len(result))","commit_id":"2736a686b29176c89f8cdffb13b44ad9e90dff53"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ec9c20016b1008c38f80586691dd64c3d63c06e8","unresolved":false,"context_lines":[{"line_number":596,"context_line":"        self.assertEqual(0, len("},{"line_number":597,"context_line":"            set(shares_requested_ids) \u0026 set(shares_not_requested_ids)))"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    def test_share_get_all_with_count(self):"},{"line_number":600,"context_line":"        share_names \u003d [\u0027fake_name_1\u0027, \u0027fake_name_2\u0027]"},{"line_number":601,"context_line":"        [db_utils.create_share(display_name\u003dname) for name in share_names]"},{"line_number":602,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"84cd31af_e7973a72","line":599,"range":{"start_line":599,"start_character":4,"end_line":599,"end_character":44},"in_reply_to":"de06aac1_7e2ba88a","updated":"2021-03-25 12:14:45.000000000","message":"Done","commit_id":"2736a686b29176c89f8cdffb13b44ad9e90dff53"}],"manila/tests/share/test_api.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"9b655c337a164b6e700b3fc6e27542ff91b46f5a","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        )"},{"line_number":367,"context_line":"        self.assertEqual(_FAKE_LIST_OF_ALL_SHARES[1:], shares)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    @mock.patch.object(db_api, \u0027share_get_all\u0027, mock.Mock())"},{"line_number":370,"context_line":"    def test_get_all_admin_filter_by_name_and_all_tenants(self):"},{"line_number":371,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_2\u0027, is_admin\u003dTrue)"},{"line_number":372,"context_line":"        share_api.policy.check_policy.assert_has_calls(["},{"line_number":373,"context_line":"            mock.call(ctx, \u0027share\u0027, \u0027get_all\u0027),"},{"line_number":374,"context_line":"        ])"},{"line_number":375,"context_line":"        db_api.share_get_all.assert_called_once_with("},{"line_number":376,"context_line":"            ctx, sort_dir\u003d\u0027desc\u0027, sort_key\u003d\u0027created_at\u0027, filters\u003d{})"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_get_all_admin_filter_by_status(self):"},{"line_number":379,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_2\u0027, is_admin\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_b97430d0","line":376,"range":{"start_line":369,"start_character":4,"end_line":376,"end_character":68},"updated":"2020-03-09 03:42:10.000000000","message":"this check you had not call self.api.get_all, so assert_has_calls will report calls not found.\nand all other unit check like this, please see code below:\n\n\ndef test_get_all_admin_filter_by_name_and_all_tenants(self):\n        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_2\u0027, is_admin\u003dTrue)\n        self.mock_object(db_api, \u0027share_get_all\u0027,\n                         mock.Mock(return_value\u003d_FAKE_LIST_OF_ALL_SHARES[0]))\n        shares \u003d self.api.get_all(ctx,  {\u0027display_name\u0027: \u0027foo\u0027,\n                                         \u0027all_tenants\u0027: 1})\n        share_api.policy.check_policy.assert_has_calls([\n            mock.call(ctx, \u0027share\u0027, \u0027get_all\u0027),\n        ])\n        db_api.share_get_all.assert_called_once_with(\n            ctx, sort_dir\u003d\u0027desc\u0027, sort_key\u003d\u0027created_at\u0027,\n            filters\u003d{\u0027display_name\u0027: \u0027foo\u0027})\n        self.assertEqual(_FAKE_LIST_OF_ALL_SHARES[0], shares)","commit_id":"ec6b7e45ffa5c458bbfa5b241a38ba74bdce45c8"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e9ffeec7df974dd397749645e104ff108768a4bb","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        )"},{"line_number":367,"context_line":"        self.assertEqual(_FAKE_LIST_OF_ALL_SHARES[1:], shares)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    @mock.patch.object(db_api, \u0027share_get_all\u0027, mock.Mock())"},{"line_number":370,"context_line":"    def test_get_all_admin_filter_by_name_and_all_tenants(self):"},{"line_number":371,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_2\u0027, is_admin\u003dTrue)"},{"line_number":372,"context_line":"        share_api.policy.check_policy.assert_has_calls(["},{"line_number":373,"context_line":"            mock.call(ctx, \u0027share\u0027, \u0027get_all\u0027),"},{"line_number":374,"context_line":"        ])"},{"line_number":375,"context_line":"        db_api.share_get_all.assert_called_once_with("},{"line_number":376,"context_line":"            ctx, sort_dir\u003d\u0027desc\u0027, sort_key\u003d\u0027created_at\u0027, filters\u003d{})"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_get_all_admin_filter_by_status(self):"},{"line_number":379,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_2\u0027, is_admin\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_71b10490","line":376,"range":{"start_line":369,"start_character":4,"end_line":376,"end_character":68},"in_reply_to":"1fa4df85_b97430d0","updated":"2020-03-24 06:25:48.000000000","message":"Done","commit_id":"ec6b7e45ffa5c458bbfa5b241a38ba74bdce45c8"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"1b439665b2dd2dc6f1e9762b01048bfe5982670c","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        )"},{"line_number":367,"context_line":"        self.assertEqual(_FAKE_LIST_OF_ALL_SHARES[1:], shares)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    @mock.patch.object(db_api, \u0027share_get_all\u0027, mock.Mock())"},{"line_number":370,"context_line":"    def test_get_all_admin_filter_by_name_and_all_tenants(self):"},{"line_number":371,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_2\u0027, is_admin\u003dTrue)"},{"line_number":372,"context_line":"        share_api.policy.check_policy.assert_has_calls(["},{"line_number":373,"context_line":"            mock.call(ctx, \u0027share\u0027, \u0027get_all\u0027),"},{"line_number":374,"context_line":"        ])"},{"line_number":375,"context_line":"        db_api.share_get_all.assert_called_once_with("},{"line_number":376,"context_line":"            ctx, sort_dir\u003d\u0027desc\u0027, sort_key\u003d\u0027created_at\u0027, filters\u003d{})"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_get_all_admin_filter_by_status(self):"},{"line_number":379,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_2\u0027, is_admin\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_9773d815","line":376,"range":{"start_line":369,"start_character":4,"end_line":376,"end_character":68},"in_reply_to":"1fa4df85_b97430d0","updated":"2020-03-24 06:35:08.000000000","message":"Yes, the check_policy is redundant.\n \n        share_api.policy.check_policy.assert_has_calls([\n            mock.call(ctx, \u0027share\u0027, \u0027get_all\u0027),\n        ])\nshoule be deleted.","commit_id":"ec6b7e45ffa5c458bbfa5b241a38ba74bdce45c8"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9da4958e804771a889ef8c2af89df12bf72c3055","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            ctx, sort_dir\u003d\u0027desc\u0027, sort_key\u003d\u0027created_at\u0027,"},{"line_number":338,"context_line":"            project_id\u003d\u0027fake_pid_2\u0027, filters\u003d{}, is_public\u003dFalse"},{"line_number":339,"context_line":"        )"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    @ddt.data(({\u0027name\u0027: \u0027fo\u0027}, 0), ({\u0027description\u0027: \u0027d\u0027}, 0),"},{"line_number":342,"context_line":"              ({\u0027name\u0027: \u0027foo\u0027, \u0027description\u0027: \u0027d\u0027}, 0),"},{"line_number":343,"context_line":"              ({\u0027name\u0027: \u0027foo\u0027}, 1), ({\u0027description\u0027: \u0027ds\u0027}, 1),"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_4e945637","line":340,"updated":"2020-04-02 14:06:00.000000000","message":"some removed asserts in this file may still be necessary in order to confirm if the shares are being returned properly.","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"e63e308b9d3627657e56c40b5b659ffd804ed5d0","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            ctx, sort_dir\u003d\u0027desc\u0027, sort_key\u003d\u0027created_at\u0027,"},{"line_number":338,"context_line":"            project_id\u003d\u0027fake_pid_2\u0027, filters\u003d{}, is_public\u003dFalse"},{"line_number":339,"context_line":"        )"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    @ddt.data(({\u0027name\u0027: \u0027fo\u0027}, 0), ({\u0027description\u0027: \u0027d\u0027}, 0),"},{"line_number":342,"context_line":"              ({\u0027name\u0027: \u0027foo\u0027, \u0027description\u0027: \u0027d\u0027}, 0),"},{"line_number":343,"context_line":"              ({\u0027name\u0027: \u0027foo\u0027}, 1), ({\u0027description\u0027: \u0027ds\u0027}, 1),"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_2bc16e81","line":340,"in_reply_to":"df33271e_4e945637","updated":"2020-04-26 07:02:33.000000000","message":"I know what you mean, but previously, it was filtered at the API layer. Now,it was filtered at the db, it can\u0027t be correct.","commit_id":"5173f6f48029b53a8ac31fa4787c23a9de6671be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9c0d45b172fc47505a857a83ad03f3388f7e93d2","unresolved":false,"context_lines":[{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def test_get_all_admin_filter_by_name(self):"},{"line_number":331,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_2\u0027, is_admin\u003dTrue)"},{"line_number":332,"context_line":"        self.mock_object(db_api, \u0027share_get_all_by_project\u0027, mock.Mock())"},{"line_number":333,"context_line":"        self.api.get_all(ctx, {\u0027name\u0027: \u0027bar\u0027})"},{"line_number":334,"context_line":"        share_api.policy.check_policy.assert_has_calls(["},{"line_number":335,"context_line":"            mock.call(ctx, \u0027share\u0027, \u0027get_all\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_5419861f","line":332,"range":{"start_line":332,"start_character":59,"end_line":332,"end_character":72},"updated":"2020-09-11 12:38:27.000000000","message":"nit: Not necessary. If nothing is specified, the default value is mock.Mock() already","commit_id":"cc63d9dc8c100c504948dfaefd1463693344a3b1"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"72bf8e70d7293926987b1743fca680e398c364c3","unresolved":false,"context_lines":[{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def test_get_all_admin_filter_by_name(self):"},{"line_number":331,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_2\u0027, is_admin\u003dTrue)"},{"line_number":332,"context_line":"        self.mock_object(db_api, \u0027share_get_all_by_project\u0027, mock.Mock())"},{"line_number":333,"context_line":"        self.api.get_all(ctx, {\u0027name\u0027: \u0027bar\u0027})"},{"line_number":334,"context_line":"        share_api.policy.check_policy.assert_has_calls(["},{"line_number":335,"context_line":"            mock.call(ctx, \u0027share\u0027, \u0027get_all\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_b2270d1f","line":332,"range":{"start_line":332,"start_character":59,"end_line":332,"end_character":72},"in_reply_to":"9f560f44_5419861f","updated":"2020-09-16 02:41:42.000000000","message":"Done","commit_id":"cc63d9dc8c100c504948dfaefd1463693344a3b1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9c0d45b172fc47505a857a83ad03f3388f7e93d2","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            self, search_opts, get_share_number):"},{"line_number":351,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_2\u0027, is_admin\u003dTrue)"},{"line_number":352,"context_line":"        self.mock_object(db_api, \u0027share_get_all_by_project\u0027,"},{"line_number":353,"context_line":"                         mock.Mock())"},{"line_number":354,"context_line":"        self.api.get_all(ctx, search_opts)"},{"line_number":355,"context_line":"        share_api.policy.check_policy.assert_has_calls(["},{"line_number":356,"context_line":"            mock.call(ctx, \u0027share\u0027, \u0027get_all\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_94d4be21","line":353,"range":{"start_line":353,"start_character":25,"end_line":353,"end_character":36},"updated":"2020-09-11 12:38:27.000000000","message":"same","commit_id":"cc63d9dc8c100c504948dfaefd1463693344a3b1"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"72bf8e70d7293926987b1743fca680e398c364c3","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            self, search_opts, get_share_number):"},{"line_number":351,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_2\u0027, is_admin\u003dTrue)"},{"line_number":352,"context_line":"        self.mock_object(db_api, \u0027share_get_all_by_project\u0027,"},{"line_number":353,"context_line":"                         mock.Mock())"},{"line_number":354,"context_line":"        self.api.get_all(ctx, search_opts)"},{"line_number":355,"context_line":"        share_api.policy.check_policy.assert_has_calls(["},{"line_number":356,"context_line":"            mock.call(ctx, \u0027share\u0027, \u0027get_all\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_922c8902","line":353,"range":{"start_line":353,"start_character":25,"end_line":353,"end_character":36},"in_reply_to":"9f560f44_94d4be21","updated":"2020-09-16 02:41:42.000000000","message":"Done","commit_id":"cc63d9dc8c100c504948dfaefd1463693344a3b1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6a030a82d010d899bd9366b084d99e334a835c85","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        self.mock_object(db_api, \u0027share_get_all_by_project\u0027,"},{"line_number":510,"context_line":"                         mock.Mock(return_value\u003d_FAKE_LIST_OF_ALL_SHARES[0]))"},{"line_number":511,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_1\u0027, is_admin\u003dFalse)"},{"line_number":512,"context_line":"        count, shares \u003d self.api.get_all(ctx, sort_key\u003d\u0027status\u0027, sort_dir\u003d\u0027asc\u0027)"},{"line_number":513,"context_line":"        share_api.policy.check_policy.assert_called_once_with("},{"line_number":514,"context_line":"            ctx, \u0027share\u0027, \u0027get_all\u0027)"},{"line_number":515,"context_line":"        db_api.share_get_all_by_project.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":32,"id":"9f560f44_cefebead","line":512,"updated":"2020-09-24 12:35:04.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"}],"releasenotes/notes/bug-1860061-5c893bb8edaf1350.yaml":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"988e9a710ed0a752c5ad1ca586fcb8d466e4a03b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed the bug totalcount returned by pagination query is param \u0027limit\u0027, it"},{"line_number":5,"context_line":"    should be total count of satisfy conditions. And also use the database to"},{"line_number":6,"context_line":"    query the filter conditions rather than filter in the api. Fuzzy query of"},{"line_number":7,"context_line":"    diaplay_name and display_description is also supported."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"9f560f44_92dd8515","line":7,"range":{"start_line":4,"start_character":4,"end_line":7,"end_character":59},"updated":"2020-09-17 12:36:39.000000000","message":"What do you think of something like this:\n\nFixed the issue that caused pagination queries to return erroneous results when the argument `limit` was specified. Also improved the queries performance by moving some filtering operations to the database.\nPlease refer to `Launchpad bug 1860061 \u003chttps://bugs.launchpad.net/manila/+bug/1860061\u003e`_ for more details.\n\nIn this way we\u0027d avoid some implementation terms :)","commit_id":"7a10456d62a93ca6f34f9bce5a718a875fbce004"},{"author":{"_account_id":31027,"name":"MaAoyu","email":"523354092@qq.com","username":"maaoyu"},"change_message_id":"fae513d6ccca1d7a3d1a62bdea7337022c402b0d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed the bug totalcount returned by pagination query is param \u0027limit\u0027, it"},{"line_number":5,"context_line":"    should be total count of satisfy conditions. And also use the database to"},{"line_number":6,"context_line":"    query the filter conditions rather than filter in the api. Fuzzy query of"},{"line_number":7,"context_line":"    diaplay_name and display_description is also supported."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"9f560f44_d38c153b","line":7,"range":{"start_line":4,"start_character":4,"end_line":7,"end_character":59},"in_reply_to":"9f560f44_92dd8515","updated":"2020-09-18 02:48:53.000000000","message":"Done","commit_id":"7a10456d62a93ca6f34f9bce5a718a875fbce004"}],"releasenotes/notes/bug-1860061-fix-pagination-query-5c893bb8edaf1350.yaml":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"8309e834dee978d38d642e86c7c5998fad45c7d0","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed the issue that caused pagination queries to return erroneous"},{"line_number":5,"context_line":"    results when the argument `limit` was specified. Also improved the"},{"line_number":6,"context_line":"    queries performance by moving some filtering operations to the"},{"line_number":7,"context_line":"    database."}],"source_content_type":"text/x-yaml","patch_set":32,"id":"5f681702_69392d40","line":7,"range":{"start_line":5,"start_character":52,"end_line":7,"end_character":13},"updated":"2020-10-16 11:48:42.000000000","message":"Can be moved to a new change.","commit_id":"9e852af9c3f27f774edae98f4357d6bf8d70cb63"}]}
