)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e951ccee0ff5d6e7216a9e53fd3cbdd66f9d2c5b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c56a747f_401fd6df","updated":"2024-09-14 00:19:22.000000000","message":"Thanks for fixing this up Carlos; interesting thing about the microversion bump; this can\u0027t be backported even if there are a couple of minor improvements that would have made sense in 2024.2.. I\u0027m okay with that; but do add a release note to the change.","commit_id":"7847cb195b8ca6d2c273ecbd2e6c6bc2a1be53af"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"24b421c5f29afac0b1a9aa6365187d205051e0a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a99ed55a_3ca81864","updated":"2024-09-18 17:37:59.000000000","message":"Hey, thanks for the review. Please take another look :)","commit_id":"6eaa9d40ca5c6da43c405d400dcb97c86eccbd70"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6c2549cdffaa185082032918a8f98f96c8dfdcd7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"30fac6c6_d03de7c0","updated":"2024-09-19 14:13:02.000000000","message":"recheck\nKnwon issue with replication test in the dummy driver job, let\u0027s try to get a clean run :)","commit_id":"6cda5307cdc52ba12b0dd17f6a32eec73d0811be"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1d781e6c12308f7a5def8ca0cec6be9e30f05c19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"42d7401a_cd355fa3","updated":"2025-02-20 10:52:02.000000000","message":"also needs a release note and testing","commit_id":"1513336ff1d7d0064a0ff1f0a9ad2399262f736b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1b610c3a88e58cecba75aa9d72e1c0a7b4f76dc3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"0555d236_c4d47479","updated":"2025-02-24 13:02:43.000000000","message":"recheck\nKnown issue with read write two VMs scenario test","commit_id":"015dec405e7c135137df0ff2c0c3c2589ce36c8d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"48982806b4267bdd06f7fbda3fe1d5916e4cf86b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"bf0e90b1_dc72c86f","updated":"2025-02-27 21:14:14.000000000","message":"Thanks for the review, PTAL","commit_id":"2693a9e89fb1b8d6f60df6b263b73035c3945eaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7178419d311370119f0ad388018908969e5715e1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"1c29e0c1_f9f2702b","updated":"2025-02-27 20:49:00.000000000","message":"thanks the logic and test coverage looks good.. this needs some updates though","commit_id":"2693a9e89fb1b8d6f60df6b263b73035c3945eaf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7237147a685377f4e5f25caabd02f91b3f92ec9a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a19f3f1f_2c52a9d8","updated":"2025-03-10 19:11:17.000000000","message":"Thanks for the review, PTAL :)","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ee6e7ddf1ed22d40985c36c53bf2e8889b71c46f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"4a98a2d3_417fb190","updated":"2025-03-03 03:42:01.000000000","message":"hi, Carlos Eduardo, here are some comments inline.","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fb1876ebfa6896e2959e8c152f783dd5b785cc07","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"a24586ad_0a24071d","updated":"2025-03-11 03:43:50.000000000","message":"hi, Carlos Eduardo, we need fix some code.","commit_id":"93f023c2cc17c70f7e4d877b7ebd2624c8715fa5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"77d207a987987a861a87e8a9250c400bf2ac93e1","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":14,"id":"e73f4159_bfedc57e","updated":"2026-01-16 22:03:34.000000000","message":"Interesting, a tempest test \"test_get_service_by_invalid_zone\" is looking for an empty list as a result instead of 404 .. this is a correct expectation, incorrect queries don\u0027t need to result in a 404.. the incorrect part is in the query string and not the URL/URI","commit_id":"0253320826fd13187e9f574e5b0244c2f3aacd8a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c09119d5569ac11ab1354aa309cb509825fb2415","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"63ab6b5c_b2e4a257","updated":"2026-02-05 13:30:40.000000000","message":"recheck\nLogs are gone","commit_id":"0253320826fd13187e9f574e5b0244c2f3aacd8a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"bb0b31686e5df7f983af9f546995c15a2614d5d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"81224b93_ed66760d","updated":"2026-02-06 22:15:22.000000000","message":"wait, you have a Depends-On that needs to be removed or this will fail to merge","commit_id":"a811278ed40239887cb127fff1979cc6dcf7ade8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ba1e30e42dc7c42826cfe4a06a07edc3f8b0f0e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"2215ae7a_49bcab68","updated":"2026-02-06 22:16:09.000000000","message":"made those minor changes, LGTM","commit_id":"9d30537d85d67dafcbb6e46bdbf7fe44f5bebb56"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"2adf28878d7edfa5b12d6d18b0fd6b4013f032fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"b74d2dca_cb8cb886","updated":"2026-02-19 15:38:37.000000000","message":"LGTM","commit_id":"8e029953f1a3dc75d1fc960469a1bf1c03e483c6"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"cc4eee57f2728fb4e2d1af45947f173f31f56e5a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"24565ce5_eec1d2dd","updated":"2026-02-19 15:39:50.000000000","message":"LGTM ..!","commit_id":"8e029953f1a3dc75d1fc960469a1bf1c03e483c6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c6db15c8435556b41ba2002cd844b2eb1f274e58","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"1bb04333_8b3e98a1","updated":"2026-02-23 18:12:38.000000000","message":"Thanks Carlos; there are a few issues; however, i\u0027m okay merging this and following up with a patch to address these comments","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"315879f1bbca01f61a524546f0b9c784000520b7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"c13b9e61_ec65b482","updated":"2026-02-23 12:57:52.000000000","message":"lgtm","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"2adfed84ad13d1566b54f86e9043441c8defa3c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"7acc752a_f60c05c8","updated":"2026-02-25 13:54:36.000000000","message":"Forgot to post the reply to the comments yesterday. Thanks for the review, folks","commit_id":"0e6e4f61ebf8d2d518c2ef32676ee63a9cfb29df"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a12da98587280f09525f4ee5cd87ebaec0bd9d45","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"0c5092bc_b5356ac0","updated":"2026-02-25 04:03:00.000000000","message":"lgtm","commit_id":"0e6e4f61ebf8d2d518c2ef32676ee63a9cfb29df"}],"manila/api/openstack/api_version_request.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7178419d311370119f0ad388018908969e5715e1","unresolved":true,"context_lines":[{"line_number":206,"context_line":"    * 2.86 - Add ensure share API."},{"line_number":207,"context_line":"    * 2.87 - Added Share export location metadata API"},{"line_number":208,"context_line":"    * 2.88 - Added support for update Share access rule."},{"line_number":209,"context_line":"\"\"\""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"# The minimum and maximum versions of the API supported"},{"line_number":212,"context_line":"# The default api version request is defined to be the"}],"source_content_type":"text/x-python","patch_set":9,"id":"efdcdd5b_054b8f10","line":209,"updated":"2025-02-27 20:49:00.000000000","message":"You\u0027re missing an update to this docstrng","commit_id":"2693a9e89fb1b8d6f60df6b263b73035c3945eaf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"48982806b4267bdd06f7fbda3fe1d5916e4cf86b","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    * 2.86 - Add ensure share API."},{"line_number":207,"context_line":"    * 2.87 - Added Share export location metadata API"},{"line_number":208,"context_line":"    * 2.88 - Added support for update Share access rule."},{"line_number":209,"context_line":"\"\"\""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"# The minimum and maximum versions of the API supported"},{"line_number":212,"context_line":"# The default api version request is defined to be the"}],"source_content_type":"text/x-python","patch_set":9,"id":"c7208401_2d4b8568","line":209,"in_reply_to":"efdcdd5b_054b8f10","updated":"2025-02-27 21:14:14.000000000","message":"Done","commit_id":"2693a9e89fb1b8d6f60df6b263b73035c3945eaf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7178419d311370119f0ad388018908969e5715e1","unresolved":true,"context_lines":[{"line_number":212,"context_line":"# The default api version request is defined to be the"},{"line_number":213,"context_line":"# minimum version of the API supported."},{"line_number":214,"context_line":"_MIN_API_VERSION \u003d \"2.0\""},{"line_number":215,"context_line":"_MAX_API_VERSION \u003d \"2.89\""},{"line_number":216,"context_line":"DEFAULT_API_VERSION \u003d _MIN_API_VERSION"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fece6bb0_c36f08bb","line":215,"range":{"start_line":215,"start_character":0,"end_line":215,"end_character":25},"updated":"2025-02-27 20:49:00.000000000","message":"2.89 is taken by the patch now in the gate","commit_id":"2693a9e89fb1b8d6f60df6b263b73035c3945eaf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"48982806b4267bdd06f7fbda3fe1d5916e4cf86b","unresolved":false,"context_lines":[{"line_number":212,"context_line":"# The default api version request is defined to be the"},{"line_number":213,"context_line":"# minimum version of the API supported."},{"line_number":214,"context_line":"_MIN_API_VERSION \u003d \"2.0\""},{"line_number":215,"context_line":"_MAX_API_VERSION \u003d \"2.89\""},{"line_number":216,"context_line":"DEFAULT_API_VERSION \u003d _MIN_API_VERSION"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"c46e93fa_586d9b45","line":215,"range":{"start_line":215,"start_character":0,"end_line":215,"end_character":25},"in_reply_to":"fece6bb0_c36f08bb","updated":"2025-02-27 21:14:14.000000000","message":"Done","commit_id":"2693a9e89fb1b8d6f60df6b263b73035c3945eaf"}],"manila/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1d781e6c12308f7a5def8ca0cec6be9e30f05c19","unresolved":true,"context_lines":[{"line_number":468,"context_line":"  Added Metadata API methods (GET, PUT, POST, DELETE)"},{"line_number":469,"context_line":"  to Share Export Locations."},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"2.88"},{"line_number":472,"context_line":"----"},{"line_number":473,"context_line":"  Added support for filtering services through the ``ensuring`` field."}],"source_content_type":"text/x-rst","patch_set":7,"id":"68ada5dd_49379332","line":471,"range":{"start_line":471,"start_character":0,"end_line":471,"end_character":4},"updated":"2025-02-20 10:52:02.000000000","message":"2.89 - also add 2.88 because apparently we missed it in that API","commit_id":"1513336ff1d7d0064a0ff1f0a9ad2399262f736b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1b72e71cf154938141ae850ed1e9f16fad763891","unresolved":false,"context_lines":[{"line_number":468,"context_line":"  Added Metadata API methods (GET, PUT, POST, DELETE)"},{"line_number":469,"context_line":"  to Share Export Locations."},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"2.88"},{"line_number":472,"context_line":"----"},{"line_number":473,"context_line":"  Added support for filtering services through the ``ensuring`` field."}],"source_content_type":"text/x-rst","patch_set":7,"id":"27c512a9_58126998","line":471,"range":{"start_line":471,"start_character":0,"end_line":471,"end_character":4},"in_reply_to":"68ada5dd_49379332","updated":"2025-02-20 15:48:09.000000000","message":"Done","commit_id":"1513336ff1d7d0064a0ff1f0a9ad2399262f736b"}],"manila/api/v2/services.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e951ccee0ff5d6e7216a9e53fd3cbdd66f9d2c5b","unresolved":true,"context_lines":[{"line_number":41,"context_line":"    _view_builder_class \u003d services_views.ViewBuilder"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @wsgi.Controller.authorize(\"index\")"},{"line_number":44,"context_line":"    def _index(self, req, support_ensure_shares\u003dFalse,"},{"line_number":45,"context_line":"               support_filtering_by_ensure\u003dFalse):"},{"line_number":46,"context_line":"        \"\"\"Return a list of all running services.\"\"\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"b031265d_8302742e","line":45,"range":{"start_line":44,"start_character":48,"end_line":45,"end_character":48},"updated":"2024-09-14 00:19:22.000000000","message":"Just a thought; default to True, and set these to False in the existing method so future methods don\u0027t need to override these..","commit_id":"7847cb195b8ca6d2c273ecbd2e6c6bc2a1be53af"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"24b421c5f29afac0b1a9aa6365187d205051e0a9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    _view_builder_class \u003d services_views.ViewBuilder"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @wsgi.Controller.authorize(\"index\")"},{"line_number":44,"context_line":"    def _index(self, req, support_ensure_shares\u003dFalse,"},{"line_number":45,"context_line":"               support_filtering_by_ensure\u003dFalse):"},{"line_number":46,"context_line":"        \"\"\"Return a list of all running services.\"\"\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"2bbe8345_e40490c5","line":45,"range":{"start_line":44,"start_character":48,"end_line":45,"end_character":48},"in_reply_to":"b031265d_8302742e","updated":"2024-09-18 17:37:59.000000000","message":"Done","commit_id":"7847cb195b8ca6d2c273ecbd2e6c6bc2a1be53af"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e951ccee0ff5d6e7216a9e53fd3cbdd66f9d2c5b","unresolved":true,"context_lines":[{"line_number":55,"context_line":"        status \u003d filters.get(\u0027status\u0027)"},{"line_number":56,"context_line":"        valid_statuses \u003d [constants.STATUS_DISABLED, constants.STATUS_ENABLED]"},{"line_number":57,"context_line":"        if status and status not in valid_statuses:"},{"line_number":58,"context_line":"            if support_filtering_by_ensure:"},{"line_number":59,"context_line":"                msg \u003d _(\"Invalid status. Valid statuses are \""},{"line_number":60,"context_line":"                        \"%s.\") % valid_statuses"},{"line_number":61,"context_line":"                raise webob.exc.HTTPBadRequest(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"25a2e096_8ae7a59d","line":58,"range":{"start_line":58,"start_character":15,"end_line":58,"end_character":42},"updated":"2024-09-14 00:19:22.000000000","message":"you\u0027re using this as an API microversion check?\nis not obvious to the reader if you are; i suggest adding a note","commit_id":"7847cb195b8ca6d2c273ecbd2e6c6bc2a1be53af"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"24b421c5f29afac0b1a9aa6365187d205051e0a9","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        status \u003d filters.get(\u0027status\u0027)"},{"line_number":56,"context_line":"        valid_statuses \u003d [constants.STATUS_DISABLED, constants.STATUS_ENABLED]"},{"line_number":57,"context_line":"        if status and status not in valid_statuses:"},{"line_number":58,"context_line":"            if support_filtering_by_ensure:"},{"line_number":59,"context_line":"                msg \u003d _(\"Invalid status. Valid statuses are \""},{"line_number":60,"context_line":"                        \"%s.\") % valid_statuses"},{"line_number":61,"context_line":"                raise webob.exc.HTTPBadRequest(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1d13ce16_ce0481c2","line":58,"range":{"start_line":58,"start_character":15,"end_line":58,"end_character":42},"in_reply_to":"25a2e096_8ae7a59d","updated":"2024-09-18 17:37:59.000000000","message":"Done","commit_id":"7847cb195b8ca6d2c273ecbd2e6c6bc2a1be53af"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ee6e7ddf1ed22d40985c36c53bf2e8889b71c46f","unresolved":true,"context_lines":[{"line_number":41,"context_line":"    _view_builder_class \u003d services_views.ViewBuilder"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @wsgi.Controller.authorize(\"index\")"},{"line_number":44,"context_line":"    def _index(self, req, support_ensure_shares\u003dTrue,"},{"line_number":45,"context_line":"               support_filtering_by_ensure\u003dTrue):"},{"line_number":46,"context_line":"        \"\"\"Return a list of all running services.\"\"\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"997a640f_83668089","line":45,"range":{"start_line":44,"start_character":26,"end_line":45,"end_character":47},"updated":"2025-03-03 03:42:01.000000000","message":"Why change the default value to True? I think keeping False makes the code cleaner.\n\nThe lower version of the client can be left unchanged when calling def _index() by specifying support_ensure_shares\u003dTrue 2.86 through 2.89.\n2.90 Specifies support_ensure_shares\u003dTrue and support_filtering_by_ensure\u003dTrue.\n\nFor example, this is how the ignore_secondary_replicas parameter is handled when we query share_export_locations.","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7237147a685377f4e5f25caabd02f91b3f92ec9a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    _view_builder_class \u003d services_views.ViewBuilder"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @wsgi.Controller.authorize(\"index\")"},{"line_number":44,"context_line":"    def _index(self, req, support_ensure_shares\u003dTrue,"},{"line_number":45,"context_line":"               support_filtering_by_ensure\u003dTrue):"},{"line_number":46,"context_line":"        \"\"\"Return a list of all running services.\"\"\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"61e5ce9a_af68e577","line":45,"range":{"start_line":44,"start_character":26,"end_line":45,"end_character":47},"in_reply_to":"997a640f_83668089","updated":"2025-03-10 19:11:17.000000000","message":"good catch, makes sense. Thank you haixin","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ee6e7ddf1ed22d40985c36c53bf2e8889b71c46f","unresolved":true,"context_lines":[{"line_number":49,"context_line":"        filters \u003d {}"},{"line_number":50,"context_line":"        filters.update(req.GET)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        if not support_ensure_shares and filters.get(\u0027ensuring\u0027):"},{"line_number":53,"context_line":"            filters.pop(\u0027ensuring\u0027)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        status \u003d filters.get(\u0027status\u0027)"},{"line_number":56,"context_line":"        valid_statuses \u003d [constants.STATUS_DISABLED, constants.STATUS_ENABLED]"}],"source_content_type":"text/x-python","patch_set":10,"id":"7779783e_8420f68d","line":53,"range":{"start_line":52,"start_character":8,"end_line":53,"end_character":35},"updated":"2025-03-03 03:42:01.000000000","message":"upport_ensure_shares is 2.86. support_filtering_by_ensure is 2.90.\nif the version of client is 2.87. we also not support filter by ensure. so:\n\n    if not support_filtering_by_ensure and filters.get(\u0027ensuring\u0027):\n        filters.pop(\u0027ensuring\u0027)","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7237147a685377f4e5f25caabd02f91b3f92ec9a","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        filters \u003d {}"},{"line_number":50,"context_line":"        filters.update(req.GET)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        if not support_ensure_shares and filters.get(\u0027ensuring\u0027):"},{"line_number":53,"context_line":"            filters.pop(\u0027ensuring\u0027)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        status \u003d filters.get(\u0027status\u0027)"},{"line_number":56,"context_line":"        valid_statuses \u003d [constants.STATUS_DISABLED, constants.STATUS_ENABLED]"}],"source_content_type":"text/x-python","patch_set":10,"id":"b057c0e8_7f0343cd","line":53,"range":{"start_line":52,"start_character":8,"end_line":53,"end_character":35},"in_reply_to":"7779783e_8420f68d","updated":"2025-03-10 19:11:17.000000000","message":"Good catch, thank you","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ee6e7ddf1ed22d40985c36c53bf2e8889b71c46f","unresolved":true,"context_lines":[{"line_number":135,"context_line":"    \"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @wsgi.Controller.api_version(\u00271.0\u0027, \u00272.6\u0027)"},{"line_number":138,"context_line":"    def index(self, req):"},{"line_number":139,"context_line":"        return self._index(req, support_ensure_shares\u003dFalse,"},{"line_number":140,"context_line":"                           support_filtering_by_ensure\u003dFalse)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @wsgi.Controller.api_version(\u00271.0\u0027, \u00272.6\u0027)"},{"line_number":143,"context_line":"    def update(self, req, id, body):"}],"source_content_type":"text/x-python","patch_set":10,"id":"aa4faf63_120dec8d","line":140,"range":{"start_line":138,"start_character":4,"end_line":140,"end_character":61},"updated":"2025-03-03 03:42:01.000000000","message":"It is best to keep the default values of support_ensure_shares and support_filtering_by_ensure to False. True is specified only if the version is larger than the specified version, so that code reading can easily see which version has added what features.","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7237147a685377f4e5f25caabd02f91b3f92ec9a","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    \"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @wsgi.Controller.api_version(\u00271.0\u0027, \u00272.6\u0027)"},{"line_number":138,"context_line":"    def index(self, req):"},{"line_number":139,"context_line":"        return self._index(req, support_ensure_shares\u003dFalse,"},{"line_number":140,"context_line":"                           support_filtering_by_ensure\u003dFalse)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @wsgi.Controller.api_version(\u00271.0\u0027, \u00272.6\u0027)"},{"line_number":143,"context_line":"    def update(self, req, id, body):"}],"source_content_type":"text/x-python","patch_set":10,"id":"e92629e4_50505097","line":140,"range":{"start_line":138,"start_character":4,"end_line":140,"end_character":61},"in_reply_to":"aa4faf63_120dec8d","updated":"2025-03-10 19:11:17.000000000","message":"Done","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4490931638368cfdaa7f3e3e523cad595fba06a1","unresolved":true,"context_lines":[{"line_number":161,"context_line":"    def index(self, req): # pylint: disable\u003dfunction-redefined  # noqa F811"},{"line_number":162,"context_line":"        return self._index(req)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @wsgi.Controller.api_version(\u00272.90\u0027)  # noqa"},{"line_number":165,"context_line":"    def index(self, req):  # pylint: disable\u003dfunction-redefined  # noqa F811"},{"line_number":166,"context_line":"        return self._index(req, support_filtering_by_ensure\u003dTrue)"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"839ef908_994b5e74","line":164,"updated":"2025-12-30 14:30:08.000000000","message":"2.92 ?","commit_id":"f4d2131bd49988b17aa6b0926946e8dbc9094f73"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c09119d5569ac11ab1354aa309cb509825fb2415","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    def index(self, req): # pylint: disable\u003dfunction-redefined  # noqa F811"},{"line_number":162,"context_line":"        return self._index(req)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @wsgi.Controller.api_version(\u00272.90\u0027)  # noqa"},{"line_number":165,"context_line":"    def index(self, req):  # pylint: disable\u003dfunction-redefined  # noqa F811"},{"line_number":166,"context_line":"        return self._index(req, support_filtering_by_ensure\u003dTrue)"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"c6c764ee_ca7d9fef","line":164,"in_reply_to":"1934ce1a_e76d2b3b","updated":"2026-02-05 13:30:40.000000000","message":"Done","commit_id":"f4d2131bd49988b17aa6b0926946e8dbc9094f73"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5102b7877fbd4725b65621474285bc9350386250","unresolved":true,"context_lines":[{"line_number":161,"context_line":"    def index(self, req): # pylint: disable\u003dfunction-redefined  # noqa F811"},{"line_number":162,"context_line":"        return self._index(req)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @wsgi.Controller.api_version(\u00272.90\u0027)  # noqa"},{"line_number":165,"context_line":"    def index(self, req):  # pylint: disable\u003dfunction-redefined  # noqa F811"},{"line_number":166,"context_line":"        return self._index(req, support_filtering_by_ensure\u003dTrue)"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"1934ce1a_e76d2b3b","line":164,"in_reply_to":"839ef908_994b5e74","updated":"2025-12-30 14:32:49.000000000","message":"good catch! missed on rebasing. thanks!","commit_id":"f4d2131bd49988b17aa6b0926946e8dbc9094f73"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f2d77aaa8d2bbd4fb18939f173271d5c04a38f3","unresolved":true,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import http.client as http_client"},{"line_number":18,"context_line":"from oslo_log import log"},{"line_number":19,"context_line":"from oslo_utils import strutils"},{"line_number":20,"context_line":"import webob.exc"}],"source_content_type":"text/x-python","patch_set":17,"id":"1d76ea73_22f055f3","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":33},"updated":"2026-02-06 22:14:51.000000000","message":"this should be in a group of its own, but, a pre-existing code issue","commit_id":"a811278ed40239887cb127fff1979cc6dcf7ade8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ba1e30e42dc7c42826cfe4a06a07edc3f8b0f0e6","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import http.client as http_client"},{"line_number":18,"context_line":"from oslo_log import log"},{"line_number":19,"context_line":"from oslo_utils import strutils"},{"line_number":20,"context_line":"import webob.exc"}],"source_content_type":"text/x-python","patch_set":17,"id":"03685f6d_3df3b2f4","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":33},"in_reply_to":"1d76ea73_22f055f3","updated":"2026-02-06 22:16:09.000000000","message":"Done","commit_id":"a811278ed40239887cb127fff1979cc6dcf7ade8"}],"manila/api/views/services.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"a07303f72395cb21e950f47091e7096c90093b75","unresolved":true,"context_lines":[{"line_number":48,"context_line":"    @common.ViewBuilder.versioned_method(\"2.83\")"},{"line_number":49,"context_line":"    def add_disabled_reason_field(self, context, service_dict, service):"},{"line_number":50,"context_line":"        service_dict.pop(\u0027disabled\u0027, None)"},{"line_number":51,"context_line":"        service_dict[\u0027status\u0027] \u003d service.get(\u0027status\u0027)"},{"line_number":52,"context_line":"        service_dict[\u0027disabled_reason\u0027] \u003d service.get(\u0027disabled_reason\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @common.ViewBuilder.versioned_method(\"2.86\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"693080d7_c89e0d7a","side":"PARENT","line":51,"range":{"start_line":51,"start_character":8,"end_line":51,"end_character":54},"updated":"2024-09-04 20:29:40.000000000","message":"this was redundant, and was introduced in the 2.83 version. The API itself was already populating with the status. I think we are fine with all microversions. Should I keep it though?","commit_id":"101becf9b4e7326d1079bdba43c7d5bc537f5737"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1b72e71cf154938141ae850ed1e9f16fad763891","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    @common.ViewBuilder.versioned_method(\"2.83\")"},{"line_number":49,"context_line":"    def add_disabled_reason_field(self, context, service_dict, service):"},{"line_number":50,"context_line":"        service_dict.pop(\u0027disabled\u0027, None)"},{"line_number":51,"context_line":"        service_dict[\u0027status\u0027] \u003d service.get(\u0027status\u0027)"},{"line_number":52,"context_line":"        service_dict[\u0027disabled_reason\u0027] \u003d service.get(\u0027disabled_reason\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @common.ViewBuilder.versioned_method(\"2.86\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"b4d50f30_ff1625f6","side":"PARENT","line":51,"range":{"start_line":51,"start_character":8,"end_line":51,"end_character":54},"in_reply_to":"693080d7_c89e0d7a","updated":"2025-02-20 15:48:09.000000000","message":"Done","commit_id":"101becf9b4e7326d1079bdba43c7d5bc537f5737"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ee6e7ddf1ed22d40985c36c53bf2e8889b71c46f","unresolved":true,"context_lines":[{"line_number":591,"context_line":""},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"def _service_get_all_with_filters(context, filters):"},{"line_number":594,"context_line":"    query \u003d model_query(context, models.Service)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    status \u003d filters.get(\u0027status\u0027)"},{"line_number":597,"context_line":"    disabled \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"7e667ee3_642e1832","line":594,"range":{"start_line":594,"start_character":4,"end_line":594,"end_character":48},"updated":"2025-03-03 03:42:01.000000000","message":"query \u003d model_query(\n        context, models.Service, read_deleted\u003d\"no\")","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7237147a685377f4e5f25caabd02f91b3f92ec9a","unresolved":false,"context_lines":[{"line_number":591,"context_line":""},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"def _service_get_all_with_filters(context, filters):"},{"line_number":594,"context_line":"    query \u003d model_query(context, models.Service)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    status \u003d filters.get(\u0027status\u0027)"},{"line_number":597,"context_line":"    disabled \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"adb456c8_ad82d2c5","line":594,"range":{"start_line":594,"start_character":4,"end_line":594,"end_character":48},"in_reply_to":"7e667ee3_642e1832","updated":"2025-03-10 19:11:17.000000000","message":"Done","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ee6e7ddf1ed22d40985c36c53bf2e8889b71c46f","unresolved":true,"context_lines":[{"line_number":593,"context_line":"def _service_get_all_with_filters(context, filters):"},{"line_number":594,"context_line":"    query \u003d model_query(context, models.Service)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    status \u003d filters.get(\u0027status\u0027)"},{"line_number":597,"context_line":"    disabled \u003d None"},{"line_number":598,"context_line":"    if status:"},{"line_number":599,"context_line":"        # Status can only be \u0027disabled\u0027 or \u0027enabled\u0027 because it is actually"},{"line_number":600,"context_line":"        # referring to the disabled field."},{"line_number":601,"context_line":"        disabled \u003d True if status \u003d\u003d \u0027disabled\u0027 else False"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"    if disabled is not None:"},{"line_number":604,"context_line":"        query \u003d query.filter_by(disabled\u003ddisabled)"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"    known_filters \u003d [\u0027host\u0027, \u0027binary\u0027, \u0027state\u0027, \u0027topic\u0027]"},{"line_number":607,"context_line":"    for known_filter in known_filters:"},{"line_number":608,"context_line":"        if filters.get(known_filter):"},{"line_number":609,"context_line":"            query \u003d query.filter_by(**{known_filter: filters[known_filter]})"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"    ensuring \u003d filters.get(\u0027ensuring\u0027)"},{"line_number":612,"context_line":"    if ensuring:"},{"line_number":613,"context_line":"        ensuring \u003d strutils.bool_from_string(ensuring)"},{"line_number":614,"context_line":"        query \u003d query.filter_by(ensuring\u003densuring)"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"    availability_zone \u003d filters.get(\u0027zone\u0027)"},{"line_number":617,"context_line":"    if availability_zone:"},{"line_number":618,"context_line":"        query \u003d query.join("},{"line_number":619,"context_line":"            models.AvailabilityZone,"},{"line_number":620,"context_line":"            models.AvailabilityZone.id \u003d\u003d models.Service.availability_zone_id)"},{"line_number":621,"context_line":"        query \u003d query.filter("},{"line_number":622,"context_line":"            models.AvailabilityZone.name \u003d\u003d availability_zone)"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"    return query.all()"},{"line_number":625,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"4e7a6c42_f4a3df39","line":622,"range":{"start_line":596,"start_character":4,"end_line":622,"end_character":62},"updated":"2025-03-03 03:42:01.000000000","message":"Optimize the code structure:\n\n    availability_zone \u003d filters.pop(\u0027zone\u0027, None)\n    if availability_zone:\n        query \u003d query.join(\n            models.AvailabilityZone,\n            models.AvailabilityZone.id \u003d\u003d models.Service.availability_zone_id)\n        query \u003d query.filter(\n            models.AvailabilityZone.name \u003d\u003d availability_zone)\n            \n    status \u003d filters.pop(\u0027status\u0027, None)\n    if status:\n        # Status can only be \u0027disabled\u0027 or \u0027enabled\u0027 because it is actually\n        # referring to the disabled field.\n        disabled \u003d True if status \u003d\u003d \u0027disabled\u0027 else False\n        filters[\u0027disabled\u0027] \u003d disabled\n\n    ensuring \u003d filters.pop(\u0027ensuring\u0027, None)    \n    if ensuring:\n        ensuring \u003d strutils.bool_from_string(ensuring)\n        filters[\u0027ensuring\u0027] \u003d ensuring\n        \n    legal_filter_keys \u003d (\u0027host\u0027, \u0027binary\u0027, \u0027state\u0027, \u0027topic\u0027,\n                         \u0027disabled\u0027, \u0027ensuring\u0027)\n    query \u003d exact_filter(query, models.Service,\n                         filters, legal_filter_keys)","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7237147a685377f4e5f25caabd02f91b3f92ec9a","unresolved":false,"context_lines":[{"line_number":593,"context_line":"def _service_get_all_with_filters(context, filters):"},{"line_number":594,"context_line":"    query \u003d model_query(context, models.Service)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    status \u003d filters.get(\u0027status\u0027)"},{"line_number":597,"context_line":"    disabled \u003d None"},{"line_number":598,"context_line":"    if status:"},{"line_number":599,"context_line":"        # Status can only be \u0027disabled\u0027 or \u0027enabled\u0027 because it is actually"},{"line_number":600,"context_line":"        # referring to the disabled field."},{"line_number":601,"context_line":"        disabled \u003d True if status \u003d\u003d \u0027disabled\u0027 else False"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"    if disabled is not None:"},{"line_number":604,"context_line":"        query \u003d query.filter_by(disabled\u003ddisabled)"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"    known_filters \u003d [\u0027host\u0027, \u0027binary\u0027, \u0027state\u0027, \u0027topic\u0027]"},{"line_number":607,"context_line":"    for known_filter in known_filters:"},{"line_number":608,"context_line":"        if filters.get(known_filter):"},{"line_number":609,"context_line":"            query \u003d query.filter_by(**{known_filter: filters[known_filter]})"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"    ensuring \u003d filters.get(\u0027ensuring\u0027)"},{"line_number":612,"context_line":"    if ensuring:"},{"line_number":613,"context_line":"        ensuring \u003d strutils.bool_from_string(ensuring)"},{"line_number":614,"context_line":"        query \u003d query.filter_by(ensuring\u003densuring)"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"    availability_zone \u003d filters.get(\u0027zone\u0027)"},{"line_number":617,"context_line":"    if availability_zone:"},{"line_number":618,"context_line":"        query \u003d query.join("},{"line_number":619,"context_line":"            models.AvailabilityZone,"},{"line_number":620,"context_line":"            models.AvailabilityZone.id \u003d\u003d models.Service.availability_zone_id)"},{"line_number":621,"context_line":"        query \u003d query.filter("},{"line_number":622,"context_line":"            models.AvailabilityZone.name \u003d\u003d availability_zone)"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"    return query.all()"},{"line_number":625,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"e3e212d5_38d83831","line":622,"range":{"start_line":596,"start_character":4,"end_line":622,"end_character":62},"in_reply_to":"4e7a6c42_f4a3df39","updated":"2025-03-10 19:11:17.000000000","message":"Done","commit_id":"d572e3d5a52baf1d6d7b581883dd53fada58b2d4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fb1876ebfa6896e2959e8c152f783dd5b785cc07","unresolved":true,"context_lines":[{"line_number":594,"context_line":"    query \u003d model_query(context, models.Service, read_deleted\u003d\"no\")"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    availability_zone \u003d filters.pop(\u0027zone\u0027, None)"},{"line_number":597,"context_line":"    if availability_zone:"},{"line_number":598,"context_line":"        query \u003d query.join("},{"line_number":599,"context_line":"            models.AvailabilityZone,"},{"line_number":600,"context_line":"            models.AvailabilityZone.id \u003d\u003d models.Service.availability_zone_id)"},{"line_number":601,"context_line":"        query \u003d query.filter("},{"line_number":602,"context_line":"            models.AvailabilityZone.name \u003d\u003d availability_zone)"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    status \u003d filters.pop(\u0027status\u0027, None)"},{"line_number":605,"context_line":"    if status:"}],"source_content_type":"text/x-python","patch_set":11,"id":"3874bb93_9124e247","line":602,"range":{"start_line":597,"start_character":4,"end_line":602,"end_character":62},"updated":"2025-03-11 03:43:50.000000000","message":"This part of the code causes the error of querying host and az at the same time, which needs to be optimized:\n\n    if availability_zone:\n        availability_zone_id \u003d _availability_zone_get(\n            context, availability_zone)[\u0027id\u0027]\n        filters[\u0027availability_zone_id\u0027] \u003d availability_zone_id","commit_id":"93f023c2cc17c70f7e4d877b7ebd2624c8715fa5"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5102b7877fbd4725b65621474285bc9350386250","unresolved":false,"context_lines":[{"line_number":594,"context_line":"    query \u003d model_query(context, models.Service, read_deleted\u003d\"no\")"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    availability_zone \u003d filters.pop(\u0027zone\u0027, None)"},{"line_number":597,"context_line":"    if availability_zone:"},{"line_number":598,"context_line":"        query \u003d query.join("},{"line_number":599,"context_line":"            models.AvailabilityZone,"},{"line_number":600,"context_line":"            models.AvailabilityZone.id \u003d\u003d models.Service.availability_zone_id)"},{"line_number":601,"context_line":"        query \u003d query.filter("},{"line_number":602,"context_line":"            models.AvailabilityZone.name \u003d\u003d availability_zone)"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    status \u003d filters.pop(\u0027status\u0027, None)"},{"line_number":605,"context_line":"    if status:"}],"source_content_type":"text/x-python","patch_set":11,"id":"75be63ce_6718c230","line":602,"range":{"start_line":597,"start_character":4,"end_line":602,"end_character":62},"in_reply_to":"3874bb93_9124e247","updated":"2025-12-30 14:32:49.000000000","message":"Done","commit_id":"93f023c2cc17c70f7e4d877b7ebd2624c8715fa5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c6db15c8435556b41ba2002cd844b2eb1f274e58","unresolved":true,"context_lines":[{"line_number":615,"context_line":"        filters[\u0027disabled\u0027] \u003d disabled"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    ensuring \u003d filters.pop(\u0027ensuring\u0027, None)"},{"line_number":618,"context_line":"    if ensuring:"},{"line_number":619,"context_line":"        ensuring \u003d strutils.bool_from_string(ensuring)"},{"line_number":620,"context_line":"        filters[\u0027ensuring\u0027] \u003d ensuring"},{"line_number":621,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"fbe346ec_628f9749","line":618,"range":{"start_line":618,"start_character":4,"end_line":618,"end_character":16},"updated":"2026-02-23 18:12:38.000000000","message":"what if ensuring is False?\n\n\n\n```suggestion\n    if ensuring is not None:\n```","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c457a1eb1e3b9b6cd0062cb1b336abc9cc1911da","unresolved":false,"context_lines":[{"line_number":615,"context_line":"        filters[\u0027disabled\u0027] \u003d disabled"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    ensuring \u003d filters.pop(\u0027ensuring\u0027, None)"},{"line_number":618,"context_line":"    if ensuring:"},{"line_number":619,"context_line":"        ensuring \u003d strutils.bool_from_string(ensuring)"},{"line_number":620,"context_line":"        filters[\u0027ensuring\u0027] \u003d ensuring"},{"line_number":621,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"2fa5648a_d1dc8953","line":618,"range":{"start_line":618,"start_character":4,"end_line":618,"end_character":16},"in_reply_to":"fbe346ec_628f9749","updated":"2026-02-25 06:30:12.000000000","message":"Done","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3707f44d50f7ca53c7c1061216fec8a82b987bb6","unresolved":false,"context_lines":[{"line_number":615,"context_line":"        filters[\u0027disabled\u0027] \u003d disabled"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    ensuring \u003d filters.pop(\u0027ensuring\u0027, None)"},{"line_number":618,"context_line":"    if ensuring:"},{"line_number":619,"context_line":"        ensuring \u003d strutils.bool_from_string(ensuring)"},{"line_number":620,"context_line":"        filters[\u0027ensuring\u0027] \u003d ensuring"},{"line_number":621,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"8225318c_de932eba","line":618,"range":{"start_line":618,"start_character":4,"end_line":618,"end_character":16},"in_reply_to":"fbe346ec_628f9749","updated":"2026-02-25 13:54:09.000000000","message":"Done","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"}],"manila/tests/api/v2/test_services.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"a07303f72395cb21e950f47091e7096c90093b75","unresolved":true,"context_lines":[{"line_number":247,"context_line":"            service[\u0027status\u0027] \u003d ("},{"line_number":248,"context_line":"                \u0027disabled\u0027 if service[\u0027disabled\u0027] else \u0027enabled\u0027"},{"line_number":249,"context_line":"            )"},{"line_number":250,"context_line":"            service.pop(\u0027disabled\u0027)"},{"line_number":251,"context_line":"            service[\u0027zone\u0027] \u003d service[\u0027availability_zone\u0027][\u0027name\u0027]"},{"line_number":252,"context_line":"            service.pop(\u0027availability_zone\u0027)"},{"line_number":253,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"e2128fb4_8382a990","line":250,"range":{"start_line":250,"start_character":12,"end_line":250,"end_character":35},"updated":"2024-09-04 20:29:40.000000000","message":"apparently I\u0027ve introduced an intermittent issue with this... investigating","commit_id":"fe7967b80b1e50d89b0dcec4e824ec40906f8fb2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"84f345f77b432b5c3ff807c8e7011d15a4af05d1","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            service[\u0027status\u0027] \u003d ("},{"line_number":248,"context_line":"                \u0027disabled\u0027 if service[\u0027disabled\u0027] else \u0027enabled\u0027"},{"line_number":249,"context_line":"            )"},{"line_number":250,"context_line":"            service.pop(\u0027disabled\u0027)"},{"line_number":251,"context_line":"            service[\u0027zone\u0027] \u003d service[\u0027availability_zone\u0027][\u0027name\u0027]"},{"line_number":252,"context_line":"            service.pop(\u0027availability_zone\u0027)"},{"line_number":253,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"0b546a9f_456307bb","line":250,"range":{"start_line":250,"start_character":12,"end_line":250,"end_character":35},"in_reply_to":"e2128fb4_8382a990","updated":"2024-09-05 15:34:30.000000000","message":"Done","commit_id":"fe7967b80b1e50d89b0dcec4e824ec40906f8fb2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"97bf4af0cddc282913b9af8c25f88a5405feae47","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        self.mock_policy_check.assert_called_once_with("},{"line_number":248,"context_line":"            req.environ[\u0027manila.context\u0027], self.resource_name, \u0027index\u0027)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    def test_services_list_with_binary(self):"},{"line_number":251,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":252,"context_line":"            \u0027/services?binary\u003dmanila-share\u0027, version\u003d\u00272.7\u0027)"},{"line_number":253,"context_line":"        req.environ[\u0027manila.context\u0027] \u003d self.context"}],"source_content_type":"text/x-python","patch_set":3,"id":"759d06a7_3b5406b7","side":"PARENT","line":250,"range":{"start_line":250,"start_character":3,"end_line":250,"end_character":45},"updated":"2024-09-13 20:17:04.000000000","message":"not needed anymore I\u0027d say, as the filtering was moved to the database layer :)","commit_id":"5f7812e00a797a510e4370d7d4d0567ac280405d"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"d20334fbd4fbefc404ee3d879505022cdd6ea036","unresolved":true,"context_lines":[{"line_number":289,"context_line":"        mock_log_error \u003d self.mock_object(services.LOG, \u0027error\u0027)"},{"line_number":290,"context_line":"        support_listing_by_ensuring \u003d ("},{"line_number":291,"context_line":"            api_version.APIVersionRequest(version) \u003e\u003d"},{"line_number":292,"context_line":"            api_version.APIVersionRequest(\u00272.90\u0027)"},{"line_number":293,"context_line":"        )"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        if support_listing_by_ensuring:"}],"source_content_type":"text/x-python","patch_set":20,"id":"b07c3c73_3a9f6c13","line":292,"range":{"start_line":292,"start_character":42,"end_line":292,"end_character":48},"updated":"2026-02-23 08:30:14.000000000","message":"FILTERING_BY_ENSURE_VERSION aka 2.93","commit_id":"03cf869c21db869a44ca796dc4a3e864348deba3"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"e4245dedcc36d891250665bb002b102fde54e850","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        mock_log_error \u003d self.mock_object(services.LOG, \u0027error\u0027)"},{"line_number":290,"context_line":"        support_listing_by_ensuring \u003d ("},{"line_number":291,"context_line":"            api_version.APIVersionRequest(version) \u003e\u003d"},{"line_number":292,"context_line":"            api_version.APIVersionRequest(\u00272.90\u0027)"},{"line_number":293,"context_line":"        )"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        if support_listing_by_ensuring:"}],"source_content_type":"text/x-python","patch_set":20,"id":"ce96a3be_2140b575","line":292,"range":{"start_line":292,"start_character":42,"end_line":292,"end_character":48},"in_reply_to":"b07c3c73_3a9f6c13","updated":"2026-02-23 12:51:33.000000000","message":"good catch, thanks!","commit_id":"03cf869c21db869a44ca796dc4a3e864348deba3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c6db15c8435556b41ba2002cd844b2eb1f274e58","unresolved":true,"context_lines":[{"line_number":119,"context_line":"    def setUp(self):"},{"line_number":120,"context_line":"        super(ServicesTest, self).setUp()"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        self.mock_object(db, \"service_get_all\", fake_service_get_all)"},{"line_number":123,"context_line":"        self.mock_object(timeutils, \"utcnow\", fake_utcnow)"},{"line_number":124,"context_line":"        self.mock_object(db, \"service_get_by_args\","},{"line_number":125,"context_line":"                         fake_service_get_by_host_binary)"}],"source_content_type":"text/x-python","patch_set":22,"id":"59ac8334_a57f79cc","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":69},"updated":"2026-02-23 18:12:38.000000000","message":"no longer called..","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3707f44d50f7ca53c7c1061216fec8a82b987bb6","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    def setUp(self):"},{"line_number":120,"context_line":"        super(ServicesTest, self).setUp()"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        self.mock_object(db, \"service_get_all\", fake_service_get_all)"},{"line_number":123,"context_line":"        self.mock_object(timeutils, \"utcnow\", fake_utcnow)"},{"line_number":124,"context_line":"        self.mock_object(db, \"service_get_by_args\","},{"line_number":125,"context_line":"                         fake_service_get_by_host_binary)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1d56e41c_9a47a66a","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":69},"in_reply_to":"59ac8334_a57f79cc","updated":"2026-02-25 13:54:09.000000000","message":"Done","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c457a1eb1e3b9b6cd0062cb1b336abc9cc1911da","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    def setUp(self):"},{"line_number":120,"context_line":"        super(ServicesTest, self).setUp()"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        self.mock_object(db, \"service_get_all\", fake_service_get_all)"},{"line_number":123,"context_line":"        self.mock_object(timeutils, \"utcnow\", fake_utcnow)"},{"line_number":124,"context_line":"        self.mock_object(db, \"service_get_by_args\","},{"line_number":125,"context_line":"                         fake_service_get_by_host_binary)"}],"source_content_type":"text/x-python","patch_set":22,"id":"efe08073_09e8f8ee","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":69},"in_reply_to":"59ac8334_a57f79cc","updated":"2026-02-25 06:30:12.000000000","message":"Done","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c6db15c8435556b41ba2002cd844b2eb1f274e58","unresolved":true,"context_lines":[{"line_number":148,"context_line":"                \u0027updated_at\u0027: datetime.datetime(2012, 10, 29, 13, 42, 2),"},{"line_number":149,"context_line":"            }"},{"line_number":150,"context_line":"            if with_disabled_reason:"},{"line_number":151,"context_line":"                service[\u0027disabled_reason\u0027] \u003d f\u0027test{i}\u0027,"},{"line_number":152,"context_line":"            if with_ensuring:"},{"line_number":153,"context_line":"                service[\u0027ensuring\u0027] \u003d random.choice([True, False])"},{"line_number":154,"context_line":"            fake_services.append(service)"}],"source_content_type":"text/x-python","patch_set":22,"id":"6d68f844_6447ce15","line":151,"updated":"2026-02-23 18:12:38.000000000","message":"trailing comma needs to be removed","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3707f44d50f7ca53c7c1061216fec8a82b987bb6","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                \u0027updated_at\u0027: datetime.datetime(2012, 10, 29, 13, 42, 2),"},{"line_number":149,"context_line":"            }"},{"line_number":150,"context_line":"            if with_disabled_reason:"},{"line_number":151,"context_line":"                service[\u0027disabled_reason\u0027] \u003d f\u0027test{i}\u0027,"},{"line_number":152,"context_line":"            if with_ensuring:"},{"line_number":153,"context_line":"                service[\u0027ensuring\u0027] \u003d random.choice([True, False])"},{"line_number":154,"context_line":"            fake_services.append(service)"}],"source_content_type":"text/x-python","patch_set":22,"id":"41fe4cf5_012af4a9","line":151,"in_reply_to":"6d68f844_6447ce15","updated":"2026-02-25 13:54:09.000000000","message":"Done","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c457a1eb1e3b9b6cd0062cb1b336abc9cc1911da","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                \u0027updated_at\u0027: datetime.datetime(2012, 10, 29, 13, 42, 2),"},{"line_number":149,"context_line":"            }"},{"line_number":150,"context_line":"            if with_disabled_reason:"},{"line_number":151,"context_line":"                service[\u0027disabled_reason\u0027] \u003d f\u0027test{i}\u0027,"},{"line_number":152,"context_line":"            if with_ensuring:"},{"line_number":153,"context_line":"                service[\u0027ensuring\u0027] \u003d random.choice([True, False])"},{"line_number":154,"context_line":"            fake_services.append(service)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7ce18b30_2303a5e1","line":151,"in_reply_to":"6d68f844_6447ce15","updated":"2026-02-25 06:30:12.000000000","message":"Done","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c6db15c8435556b41ba2002cd844b2eb1f274e58","unresolved":true,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    @ddt.data("},{"line_number":307,"context_line":"        (\u0027services\u0027, \u00272.7\u0027, services.ServiceController),"},{"line_number":308,"context_line":"        (\u0027services\u0027, \u00272.92\u0027, services.ServiceController,),"},{"line_number":309,"context_line":"    )"},{"line_number":310,"context_line":"    @ddt.unpack"},{"line_number":311,"context_line":"    def test_services_list_supports_ensure(self, url, version, controller):"}],"source_content_type":"text/x-python","patch_set":22,"id":"3ea6d343_7b6291f4","line":308,"range":{"start_line":308,"start_character":22,"end_line":308,"end_character":26},"updated":"2026-02-23 18:12:38.000000000","message":"2.93?\n\ndoesn\u0027t matter really.. but, don\u0027t know why we\u0027d use 2.92 here.\n\nmaybe you\u0027ll want to see if `_index(req, support_filtering_by_ensure\u003dTrue)` is called?\n\nTechnically, you\u0027d need a 2.6 if you\u0027re trying to invoke the \"os-services\" controller.. which might be a good test to add (unrelated to this change though)","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c457a1eb1e3b9b6cd0062cb1b336abc9cc1911da","unresolved":true,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    @ddt.data("},{"line_number":307,"context_line":"        (\u0027services\u0027, \u00272.7\u0027, services.ServiceController),"},{"line_number":308,"context_line":"        (\u0027services\u0027, \u00272.92\u0027, services.ServiceController,),"},{"line_number":309,"context_line":"    )"},{"line_number":310,"context_line":"    @ddt.unpack"},{"line_number":311,"context_line":"    def test_services_list_supports_ensure(self, url, version, controller):"}],"source_content_type":"text/x-python","patch_set":22,"id":"f2d799b9_e37448cb","line":308,"range":{"start_line":308,"start_character":22,"end_line":308,"end_character":26},"in_reply_to":"3ea6d343_7b6291f4","updated":"2026-02-25 06:30:12.000000000","message":"doesn\u0027t matter, and can be addressed in a follow up","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3707f44d50f7ca53c7c1061216fec8a82b987bb6","unresolved":false,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    @ddt.data("},{"line_number":307,"context_line":"        (\u0027services\u0027, \u00272.7\u0027, services.ServiceController),"},{"line_number":308,"context_line":"        (\u0027services\u0027, \u00272.92\u0027, services.ServiceController,),"},{"line_number":309,"context_line":"    )"},{"line_number":310,"context_line":"    @ddt.unpack"},{"line_number":311,"context_line":"    def test_services_list_supports_ensure(self, url, version, controller):"}],"source_content_type":"text/x-python","patch_set":22,"id":"44b39aef_9343a389","line":308,"range":{"start_line":308,"start_character":22,"end_line":308,"end_character":26},"in_reply_to":"3ea6d343_7b6291f4","updated":"2026-02-25 13:54:09.000000000","message":"yeah, that was the reason behind it. ensuring that versions earlier than 2.93 won\u0027t call `_index` with `support_filtering_by_ensure` set to true.","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"}],"releasenotes/notes/allow-filtering-services-by-ensuring-88f54f5b368a90e5.yaml":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"d20334fbd4fbefc404ee3d879505022cdd6ea036","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support for filtering services by their status."}],"source_content_type":"text/x-yaml","patch_set":20,"id":"f49f3378_b80cc83c","line":4,"range":{"start_line":4,"start_character":50,"end_line":4,"end_character":57},"updated":"2026-02-23 08:30:14.000000000","message":"Please add that there was also added filtering for `ensuring`.\n\nAnd maybe since there are only 2 options for `status`, those valid options can be mentioned, too","commit_id":"03cf869c21db869a44ca796dc4a3e864348deba3"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"e4245dedcc36d891250665bb002b102fde54e850","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support for filtering services by their status."}],"source_content_type":"text/x-yaml","patch_set":20,"id":"ea34e23e_94edca5f","line":4,"range":{"start_line":4,"start_character":50,"end_line":4,"end_character":57},"in_reply_to":"f49f3378_b80cc83c","updated":"2026-02-23 12:51:33.000000000","message":"Done","commit_id":"03cf869c21db869a44ca796dc4a3e864348deba3"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"39833c08ac3cd2b1e95a7c60c49869e16a5a3e08","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support for filtering services by their status"},{"line_number":5,"context_line":"    (`enabled` and `disabled`) and wheter the service is being ensured or not."}],"source_content_type":"text/x-yaml","patch_set":22,"id":"70332dbf_f275f5bb","line":5,"updated":"2026-02-23 12:59:46.000000000","message":"whether","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c457a1eb1e3b9b6cd0062cb1b336abc9cc1911da","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support for filtering services by their status"},{"line_number":5,"context_line":"    (`enabled` and `disabled`) and wheter the service is being ensured or not."}],"source_content_type":"text/x-yaml","patch_set":22,"id":"c42c2ad5_2f5d847e","line":5,"in_reply_to":"70332dbf_f275f5bb","updated":"2026-02-25 06:30:12.000000000","message":"could be addressed in a follow up","commit_id":"b8b7bf6f63d1bb40a02726f2efa6e45dea249c8c"}]}
