)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"243d5a00d7eb262f8fc2f1838bcc5d968bb635a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6147247b_88e8b2f3","updated":"2024-12-18 16:08:30.000000000","message":"Hi haixin, thanks for review. Please have a look my reply below","commit_id":"ea3aae1d7e8d87aa368000d044f1b50193acc032"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"110491d9c5834e6c3cf1376e8295bc0c427f444e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3da7d7c3_eacf7910","updated":"2024-12-18 08:58:38.000000000","message":"tempest test failed with ssh connection error, looks temporary issue\nrecheck","commit_id":"ea3aae1d7e8d87aa368000d044f1b50193acc032"}],"manila/api/v1/share_servers.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0c988b36ddb96000a633da339bd761defcbc7394","unresolved":true,"context_lines":[{"line_number":81,"context_line":"                          {\u0027server\u0027: s.id, \u0027network\u0027: s.share_network_id})"},{"line_number":82,"context_line":"                s.project_id \u003d \u0027\u0027"},{"line_number":83,"context_line":"                s.share_network_name \u003d \u0027\u0027"},{"line_number":84,"context_line":"        if search_opts:"},{"line_number":85,"context_line":"            for k, v in search_opts.items():"},{"line_number":86,"context_line":"                share_servers \u003d [s for s in share_servers if"},{"line_number":87,"context_line":"                                 (hasattr(s, k) and"},{"line_number":88,"context_line":"                                  s[k] \u003d\u003d v or k \u003d\u003d \u0027share_network\u0027 and"},{"line_number":89,"context_line":"                                  v in [s.share_network_name,"},{"line_number":90,"context_line":"                                        s.share_network_id] or"},{"line_number":91,"context_line":"                                  k \u003d\u003d \u0027share_network_subnet_id\u0027 and"},{"line_number":92,"context_line":"                                  v in s.share_network_subnet_ids)]"},{"line_number":93,"context_line":"        return self._view_builder.build_share_servers(req, share_servers)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":3,"id":"e198e9a7_d342be9b","line":92,"range":{"start_line":84,"start_character":8,"end_line":92,"end_character":67},"updated":"2024-12-18 10:35:54.000000000","message":"move share_network nad share_network_subnet_id to db query.","commit_id":"ea3aae1d7e8d87aa368000d044f1b50193acc032"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0f6b0515712a2d480b741b8e45127cd19a41c351","unresolved":true,"context_lines":[{"line_number":81,"context_line":"                          {\u0027server\u0027: s.id, \u0027network\u0027: s.share_network_id})"},{"line_number":82,"context_line":"                s.project_id \u003d \u0027\u0027"},{"line_number":83,"context_line":"                s.share_network_name \u003d \u0027\u0027"},{"line_number":84,"context_line":"        if search_opts:"},{"line_number":85,"context_line":"            for k, v in search_opts.items():"},{"line_number":86,"context_line":"                share_servers \u003d [s for s in share_servers if"},{"line_number":87,"context_line":"                                 (hasattr(s, k) and"},{"line_number":88,"context_line":"                                  s[k] \u003d\u003d v or k \u003d\u003d \u0027share_network\u0027 and"},{"line_number":89,"context_line":"                                  v in [s.share_network_name,"},{"line_number":90,"context_line":"                                        s.share_network_id] or"},{"line_number":91,"context_line":"                                  k \u003d\u003d \u0027share_network_subnet_id\u0027 and"},{"line_number":92,"context_line":"                                  v in s.share_network_subnet_ids)]"},{"line_number":93,"context_line":"        return self._view_builder.build_share_servers(req, share_servers)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":3,"id":"d13f71e9_4909bac1","line":92,"range":{"start_line":84,"start_character":8,"end_line":92,"end_character":67},"in_reply_to":"8054f888_12d60d78","updated":"2024-12-19 01:20:08.000000000","message":"IMO, we also can put share_network and share_network_subnet_id into filters.\nlet db to query to impove query speed. let us wait other reviewer\u0027s idea.","commit_id":"ea3aae1d7e8d87aa368000d044f1b50193acc032"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"243d5a00d7eb262f8fc2f1838bcc5d968bb635a8","unresolved":true,"context_lines":[{"line_number":81,"context_line":"                          {\u0027server\u0027: s.id, \u0027network\u0027: s.share_network_id})"},{"line_number":82,"context_line":"                s.project_id \u003d \u0027\u0027"},{"line_number":83,"context_line":"                s.share_network_name \u003d \u0027\u0027"},{"line_number":84,"context_line":"        if search_opts:"},{"line_number":85,"context_line":"            for k, v in search_opts.items():"},{"line_number":86,"context_line":"                share_servers \u003d [s for s in share_servers if"},{"line_number":87,"context_line":"                                 (hasattr(s, k) and"},{"line_number":88,"context_line":"                                  s[k] \u003d\u003d v or k \u003d\u003d \u0027share_network\u0027 and"},{"line_number":89,"context_line":"                                  v in [s.share_network_name,"},{"line_number":90,"context_line":"                                        s.share_network_id] or"},{"line_number":91,"context_line":"                                  k \u003d\u003d \u0027share_network_subnet_id\u0027 and"},{"line_number":92,"context_line":"                                  v in s.share_network_subnet_ids)]"},{"line_number":93,"context_line":"        return self._view_builder.build_share_servers(req, share_servers)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":3,"id":"8054f888_12d60d78","line":92,"range":{"start_line":84,"start_character":8,"end_line":92,"end_character":67},"in_reply_to":"e198e9a7_d342be9b","updated":"2024-12-18 16:08:30.000000000","message":"In theory it should work, but share network is retrieved above for each share server, (and returned to requester), I think no need to move it to db query, or I missed sth?","commit_id":"ea3aae1d7e8d87aa368000d044f1b50193acc032"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0c988b36ddb96000a633da339bd761defcbc7394","unresolved":true,"context_lines":[{"line_number":5567,"context_line":"            source_share_server_id\u003dfilters.get(\u0027source_share_server_id\u0027))"},{"line_number":5568,"context_line":"    if filters.get(\u0027identifier\u0027):"},{"line_number":5569,"context_line":"        query \u003d query.filter_by(identifier\u003dfilters.get(\u0027identifier\u0027))"},{"line_number":5570,"context_line":"    if filters.get(\u0027share_network_id\u0027):"},{"line_number":5571,"context_line":"        query \u003d query.join("},{"line_number":5572,"context_line":"            models.ShareServerShareNetworkSubnetMapping,"},{"line_number":5573,"context_line":"            models.ShareServerShareNetworkSubnetMapping.share_server_id \u003d\u003d"},{"line_number":5574,"context_line":"            models.ShareServer.id"},{"line_number":5575,"context_line":"        ).join("},{"line_number":5576,"context_line":"            models.ShareNetworkSubnet,"},{"line_number":5577,"context_line":"            models.ShareNetworkSubnet.id \u003d\u003d"},{"line_number":5578,"context_line":"            models.ShareServerShareNetworkSubnetMapping.share_network_subnet_id"},{"line_number":5579,"context_line":"        ).filter("},{"line_number":5580,"context_line":"            models.ShareNetworkSubnet.share_network_id \u003d\u003d"},{"line_number":5581,"context_line":"            filters.get(\u0027share_network_id\u0027))"},{"line_number":5582,"context_line":"    return query.all()"},{"line_number":5583,"context_line":""},{"line_number":5584,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"c3cc1883_70c25ca9","line":5581,"range":{"start_line":5570,"start_character":4,"end_line":5581,"end_character":44},"updated":"2024-12-18 10:35:54.000000000","message":"db has support query share server by share_network_subnet_id, \n\ni think we need also add query by share_network. Here is an example, I have not tested, you can try.\n\n    if filters.get(\u0027share_network_subnet_id\u0027):\n        query \u003d query.join(\n            models.ShareServerShareNetworkSubnetMapping,\n            models.ShareServerShareNetworkSubnetMapping.share_server_id \u003d\u003d\n            models.ShareServer.id\n        ).join(\n            models.ShareNetworkSubnet,\n            models.ShareNetworkSubnet.id \u003d\u003d\n            models.ShareServerShareNetworkSubnetMapping.share_network_subnet_id\n        ).filter(\n            models.ShareNetworkSubnet.share_network_id \u003d\u003d\n            filters.get(\u0027share_network_subnet_id\u0027))\n\n    if filters.get(\u0027share_network\u0027):\n        share_network_id_or_name \u003d filters.get(\u0027share_network\u0027)\n        if uuidutils.is_uuid_like(share_network_id_or_name):\n            share_network_id \u003d filters.get(\u0027share_network\u0027)\n        else:\n            share_network_filter \u003d {\n                \"name\": filters.get(\u0027share_network\u0027)\n            }\n            # need to update share_network_get_all_by_filter to support search by name\n            share_network \u003d share_network_get_all_by_filter(\n                context, filters\u003dshare_network_filter)\n            share_network_id \u003d share_network[0].id\n\n        query \u003d query.join(\n            models.ShareNetwork,\n            models.ShareNetwork.id \u003d\u003d\n            models.ShareServer.share_network_id\n        ).filter(\n            models.ShareNetwork.id \u003d\u003d share_network_id)\n    return query.all()","commit_id":"ea3aae1d7e8d87aa368000d044f1b50193acc032"}]}
