)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cd03ebe81e41926edf65d4ca7f11011a328df033","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5b9d4057_4fe6ccc1","updated":"2023-10-13 17:39:59.000000000","message":"Thanks for the super quick addition Haixin! This is very helpful; i\u0027ve some comments inline..","commit_id":"ac4a619ca333191ba123a7471123d1735666d5f6"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8de3ae1723f8996dd4acfe26f12d5be5f7e105b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"83f08704_91685dc4","updated":"2023-10-16 02:37:52.000000000","message":"thanks for your review, Goutham Pacha Ravi.","commit_id":"89eb52cdb1daf4443145012a65c8dd1ec45c036c"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"771eb35a89bf7393609cfc3a1b65024b6ed7afca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3d30632e_c92378ba","updated":"2023-12-14 15:50:00.000000000","message":"Thanks for working on this, please have a look at my remarks inline","commit_id":"84a0c02fa981bfa129bbe307e3d8a9270df46bc1"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8828d2cdfbc98c605ce95a24e4c05277c1f10584","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5f90766a_b9a9f1cc","updated":"2023-12-15 09:56:54.000000000","message":"thanks for your review.","commit_id":"84a0c02fa981bfa129bbe307e3d8a9270df46bc1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b62302164f804da6d8db03f5ee0b9ac0352b0bbc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"07a8803a_434156d2","updated":"2024-01-04 12:27:53.000000000","message":"Thank you for working on this feature, Haixin! Looks good overall. Please take a look at some comments inline :)","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":33807,"name":"Jacob Wang","email":"jacob_wang1@dell.com","username":"jacob0522"},"change_message_id":"218211538fa3c5b84321c1e3ee6b93488c4846e1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"372aa5aa_4a16f508","updated":"2023-12-25 08:27:30.000000000","message":"run-DellEMC PowerStore CI","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":33807,"name":"Jacob Wang","email":"jacob_wang1@dell.com","username":"jacob0522"},"change_message_id":"8eba22424544cf8d2718514d622afb2b186a894f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"400c0bc8_4b6ba623","updated":"2023-12-25 08:15:34.000000000","message":"run-DellEMC PowerStore CI","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":36625,"name":"Rick Liu","email":"rick.liu@dell.com"},"change_message_id":"6b35c5f6083515fcfb1bc5179fab2a0bfc139b57","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7a49c98e_d411d27d","updated":"2023-12-19 02:15:57.000000000","message":"run-DellEMC PowerStore CI","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":33807,"name":"Jacob Wang","email":"jacob_wang1@dell.com","username":"jacob0522"},"change_message_id":"f74ee22a379d751e2d47756b22f8a19b6b2ff954","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"86de1a4a_c122cd1b","updated":"2023-12-25 08:13:22.000000000","message":"run-DellEMC PowerStore CI","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cdde988978884751f4463c1c6db184479a3b07f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1d33d2e0_2537006d","updated":"2024-02-23 09:54:40.000000000","message":"Hi Haixin, \n\ncoming in here late; but the code looks pretty good.. i have some comments inline for improvement","commit_id":"0a6e0f13ad97cd20416d49bfc20ef675fc1c5185"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"96140453cd8acec58c0656ce4ac3de745974cdda","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ab263e1a_18d8a26e","updated":"2024-01-05 03:16:00.000000000","message":"thanks for your review. Carlos Eduardo.","commit_id":"0a6e0f13ad97cd20416d49bfc20ef675fc1c5185"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"b76d3cb4aed6dec024b057bf4cd221480f5df6de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"bef77839_0d14b315","updated":"2024-02-27 01:16:56.000000000","message":"thanks for your review. Goutham Pacha Ravi","commit_id":"42bbd7a146da0b7e6af07fda50ea02fd0c76a806"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b3668c858aa90db1e1046b07440b2afc64dc5d51","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"43c2cc53_664c6ae5","updated":"2024-02-28 16:27:35.000000000","message":"LGTM, thank you for working on this feature, haixin! Please add a follow-up patch as Goutham suggested.","commit_id":"12ef157c3b71124e91ccb9fdba04ec9e3c3f0fd3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"bc012984b8d4cd050baa3fc037aba9d0f352654a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0ceb4ed6_20445adb","updated":"2024-02-27 21:47:03.000000000","message":"This looks good to me; i\u0027ve a API compatibility issue noted inline. We\u0027re missing API Ref updates in this patch too; but I do hope they\u0027re small enough and can be done in a follow up change. \n\nI\u0027m away from my computer for a few days; I\u0027d love to get this in, and post follow ups as bug fixes.. If you do make another patch, do consider my +2 as a sticky vote :)","commit_id":"12ef157c3b71124e91ccb9fdba04ec9e3c3f0fd3"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"92213c61685ef61bb6431348613390252eeb44c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ddb692af_d640b1e2","updated":"2024-02-27 10:10:23.000000000","message":"recheck","commit_id":"12ef157c3b71124e91ccb9fdba04ec9e3c3f0fd3"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"e98a9e9d2a49318256757c04b0728ec31785811d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"4df482ed_15b55366","updated":"2024-02-28 18:04:16.000000000","message":"recheck\nKnow service not found sporadic failures in the dummy dhss job","commit_id":"12ef157c3b71124e91ccb9fdba04ec9e3c3f0fd3"}],"manila/api/openstack/api_version_request.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cd03ebe81e41926edf65d4ca7f11011a328df033","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6eea502a_fef205bc","updated":"2023-10-13 17:39:59.000000000","message":"one more file needs to have this information: \n\nmanila/api/openstack/rest_api_version_history.rst","commit_id":"ac4a619ca333191ba123a7471123d1735666d5f6"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8de3ae1723f8996dd4acfe26f12d5be5f7e105b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4e4fccb0_def14d2d","in_reply_to":"6eea502a_fef205bc","updated":"2023-10-16 02:37:52.000000000","message":"Done","commit_id":"ac4a619ca333191ba123a7471123d1735666d5f6"}],"manila/api/v2/services.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cd03ebe81e41926edf65d4ca7f11011a328df033","unresolved":true,"context_lines":[{"line_number":98,"context_line":"                    msg \u003d _(\u0027Disabled reason contains invalid characters \u0027"},{"line_number":99,"context_line":"                            \u0027or is too long\u0027)"},{"line_number":100,"context_line":"                    raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":101,"context_line":"            data[\u0027disabled_reason\u0027] \u003d disabled_reason"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            raise webob.exc.HTTPNotFound(\"Unknown action \u0027%s\u0027\" % id)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"27e4b81c_511c8cfd","line":101,"updated":"2023-10-13 17:39:59.000000000","message":"disabled_reason.strip() as you\u0027re doing on line 93..","commit_id":"ac4a619ca333191ba123a7471123d1735666d5f6"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8de3ae1723f8996dd4acfe26f12d5be5f7e105b1","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                    msg \u003d _(\u0027Disabled reason contains invalid characters \u0027"},{"line_number":99,"context_line":"                            \u0027or is too long\u0027)"},{"line_number":100,"context_line":"                    raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":101,"context_line":"            data[\u0027disabled_reason\u0027] \u003d disabled_reason"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            raise webob.exc.HTTPNotFound(\"Unknown action \u0027%s\u0027\" % id)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7b3116bc_874e469b","line":101,"in_reply_to":"27e4b81c_511c8cfd","updated":"2023-10-16 02:37:52.000000000","message":"Done","commit_id":"ac4a619ca333191ba123a7471123d1735666d5f6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cd03ebe81e41926edf65d4ca7f11011a328df033","unresolved":true,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        svc \u003d db.service_get_by_args(context, data[\u0027host\u0027], data[\u0027binary\u0027])"},{"line_number":112,"context_line":"        update_dict \u003d {\u0027disabled\u0027: data[\u0027disabled\u0027]}"},{"line_number":113,"context_line":"        if disabled_reason:"},{"line_number":114,"context_line":"            update_dict[\u0027disabled_reason\u0027] \u003d disabled_reason"},{"line_number":115,"context_line":"        db.service_update(context, svc[\u0027id\u0027], update_dict)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        return self._view_builder.summary(data)"}],"source_content_type":"text/x-python","patch_set":1,"id":"6b2c7eac_bce97550","line":114,"range":{"start_line":113,"start_character":0,"end_line":114,"end_character":60},"updated":"2023-10-13 17:39:59.000000000","message":"don\u0027t we want to allow this only if data[\u0027disabled\u0027] is True?","commit_id":"ac4a619ca333191ba123a7471123d1735666d5f6"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8de3ae1723f8996dd4acfe26f12d5be5f7e105b1","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        svc \u003d db.service_get_by_args(context, data[\u0027host\u0027], data[\u0027binary\u0027])"},{"line_number":112,"context_line":"        update_dict \u003d {\u0027disabled\u0027: data[\u0027disabled\u0027]}"},{"line_number":113,"context_line":"        if disabled_reason:"},{"line_number":114,"context_line":"            update_dict[\u0027disabled_reason\u0027] \u003d disabled_reason"},{"line_number":115,"context_line":"        db.service_update(context, svc[\u0027id\u0027], update_dict)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        return self._view_builder.summary(data)"}],"source_content_type":"text/x-python","patch_set":1,"id":"b25d27e0_3977fa3e","line":114,"range":{"start_line":113,"start_character":0,"end_line":114,"end_character":60},"in_reply_to":"6b2c7eac_bce97550","updated":"2023-10-16 02:37:52.000000000","message":"we support only set data[\u0027disabled\u0027] is True. if disabled_reason is None then update_dict only has disabled key.\nIndent row 101 to the right by four columns","commit_id":"ac4a619ca333191ba123a7471123d1735666d5f6"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"771eb35a89bf7393609cfc3a1b65024b6ed7afca","unresolved":true,"context_lines":[{"line_number":86,"context_line":"                        \"microversion. Use 2.83 or greater microversion to \""},{"line_number":87,"context_line":"                        \"be able to set \u0027disabled_reason\u0027.\")"},{"line_number":88,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":89,"context_line":"            if disabled_reason:"},{"line_number":90,"context_line":"                try:"},{"line_number":91,"context_line":"                    strutils.check_string_length(disabled_reason.strip(),"},{"line_number":92,"context_line":"                                                 name\u003d\u0027disabled_reason\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"b887defb_0d30b618","line":89,"updated":"2023-12-14 15:50:00.000000000","message":"1. Do I read this correctly that I can only update the disabled reason when disabling a service?\n2. How would I update the disable reason? Disabling an already disabled service?\n3. How would I unset a disable reason? Would I need to go through 2) with setting the reason to empty before enabling the service again? Imho calling `enable` should clear the disabled_reason ;)","commit_id":"84a0c02fa981bfa129bbe307e3d8a9270df46bc1"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8828d2cdfbc98c605ce95a24e4c05277c1f10584","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                        \"microversion. Use 2.83 or greater microversion to \""},{"line_number":87,"context_line":"                        \"be able to set \u0027disabled_reason\u0027.\")"},{"line_number":88,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":89,"context_line":"            if disabled_reason:"},{"line_number":90,"context_line":"                try:"},{"line_number":91,"context_line":"                    strutils.check_string_length(disabled_reason.strip(),"},{"line_number":92,"context_line":"                                                 name\u003d\u0027disabled_reason\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"83c44564_17c06450","line":89,"in_reply_to":"b887defb_0d30b618","updated":"2023-12-15 09:56:54.000000000","message":"1: yes, you can only set disabled reason when disabling a service, if you want to \n   update disable reason, you can disable the service again with different reason.\n2: yes, disable the service again. \n3: i will update the logic to support auto empty disable reason when enable the \n   service.\nadd code to line 113\n\n            if id \u003d\u003d \"enable\" and support_disabled_reason:\n            update_dict[\u0027disabled_reason\u0027] \u003d \"\"","commit_id":"84a0c02fa981bfa129bbe307e3d8a9270df46bc1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b62302164f804da6d8db03f5ee0b9ac0352b0bbc","unresolved":true,"context_lines":[{"line_number":109,"context_line":"        svc \u003d db.service_get_by_args(context, data[\u0027host\u0027], data[\u0027binary\u0027])"},{"line_number":110,"context_line":"        update_dict \u003d {\u0027disabled\u0027: data[\u0027disabled\u0027]}"},{"line_number":111,"context_line":"        if disabled_reason:"},{"line_number":112,"context_line":"            update_dict[\u0027disabled_reason\u0027] \u003d disabled_reason"},{"line_number":113,"context_line":"        if id \u003d\u003d \"enable\" and support_disabled_reason:"},{"line_number":114,"context_line":"            update_dict[\u0027disabled_reason\u0027] \u003d None"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"a1441dd3_a4ac27dc","line":112,"range":{"start_line":112,"start_character":12,"end_line":112,"end_character":60},"updated":"2024-01-04 12:27:53.000000000","message":"this could be moved after line 98 and we\u0027d avoid an extra comparison","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"96140453cd8acec58c0656ce4ac3de745974cdda","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        svc \u003d db.service_get_by_args(context, data[\u0027host\u0027], data[\u0027binary\u0027])"},{"line_number":110,"context_line":"        update_dict \u003d {\u0027disabled\u0027: data[\u0027disabled\u0027]}"},{"line_number":111,"context_line":"        if disabled_reason:"},{"line_number":112,"context_line":"            update_dict[\u0027disabled_reason\u0027] \u003d disabled_reason"},{"line_number":113,"context_line":"        if id \u003d\u003d \"enable\" and support_disabled_reason:"},{"line_number":114,"context_line":"            update_dict[\u0027disabled_reason\u0027] \u003d None"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7b6db31d_cad4a4f0","line":112,"range":{"start_line":112,"start_character":12,"end_line":112,"end_character":60},"in_reply_to":"a1441dd3_a4ac27dc","updated":"2024-01-05 03:16:00.000000000","message":"Done","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b62302164f804da6d8db03f5ee0b9ac0352b0bbc","unresolved":true,"context_lines":[{"line_number":110,"context_line":"        update_dict \u003d {\u0027disabled\u0027: data[\u0027disabled\u0027]}"},{"line_number":111,"context_line":"        if disabled_reason:"},{"line_number":112,"context_line":"            update_dict[\u0027disabled_reason\u0027] \u003d disabled_reason"},{"line_number":113,"context_line":"        if id \u003d\u003d \"enable\" and support_disabled_reason:"},{"line_number":114,"context_line":"            update_dict[\u0027disabled_reason\u0027] \u003d None"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        db.service_update(context, svc[\u0027id\u0027], update_dict)"},{"line_number":117,"context_line":"        data[\u0027status\u0027] \u003d \u0027disabled\u0027 if id \u003d\u003d \"disable\" else \u0027enabled\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"91e5a715_7d8820a7","line":114,"range":{"start_line":113,"start_character":30,"end_line":114,"end_character":49},"updated":"2024-01-04 12:27:53.000000000","message":"this could be moved to the if statement on line 80, no? so we\u0027d avoid also this extra comparison","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"96140453cd8acec58c0656ce4ac3de745974cdda","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        update_dict \u003d {\u0027disabled\u0027: data[\u0027disabled\u0027]}"},{"line_number":111,"context_line":"        if disabled_reason:"},{"line_number":112,"context_line":"            update_dict[\u0027disabled_reason\u0027] \u003d disabled_reason"},{"line_number":113,"context_line":"        if id \u003d\u003d \"enable\" and support_disabled_reason:"},{"line_number":114,"context_line":"            update_dict[\u0027disabled_reason\u0027] \u003d None"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        db.service_update(context, svc[\u0027id\u0027], update_dict)"},{"line_number":117,"context_line":"        data[\u0027status\u0027] \u003d \u0027disabled\u0027 if id \u003d\u003d \"disable\" else \u0027enabled\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fd86cb8_966512a5","line":114,"range":{"start_line":113,"start_character":30,"end_line":114,"end_character":49},"in_reply_to":"91e5a715_7d8820a7","updated":"2024-01-05 03:16:00.000000000","message":"Done","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cdde988978884751f4463c1c6db184479a3b07f","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        return self._view_builder.detail_list(req, services)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    @wsgi.Controller.authorize(\"update\")"},{"line_number":74,"context_line":"    def _update(self, req, id, body, support_disabled_reason\u003dFalse):"},{"line_number":75,"context_line":"        \"\"\"Enable/Disable scheduling for a service.\"\"\""},{"line_number":76,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":77,"context_line":"        update_dict \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"412bb9db_b84fa055","line":74,"range":{"start_line":74,"start_character":61,"end_line":74,"end_character":66},"updated":"2024-02-23 09:54:40.000000000","message":"set this to True, so that only one method needs to be modified; \ni.e., set support_disabled_reason\u003dFalse on line 150.. \n\nby setting this to False, if we override teh update method in future versions, we\u0027d have to explicitly set this to True in each of those overrides","commit_id":"0a6e0f13ad97cd20416d49bfc20ef675fc1c5185"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"b76d3cb4aed6dec024b057bf4cd221480f5df6de","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        return self._view_builder.detail_list(req, services)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    @wsgi.Controller.authorize(\"update\")"},{"line_number":74,"context_line":"    def _update(self, req, id, body, support_disabled_reason\u003dFalse):"},{"line_number":75,"context_line":"        \"\"\"Enable/Disable scheduling for a service.\"\"\""},{"line_number":76,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":77,"context_line":"        update_dict \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"f1a5334f_95197738","line":74,"range":{"start_line":74,"start_character":61,"end_line":74,"end_character":66},"in_reply_to":"412bb9db_b84fa055","updated":"2024-02-27 01:16:56.000000000","message":"good idea. Done.","commit_id":"0a6e0f13ad97cd20416d49bfc20ef675fc1c5185"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cdde988978884751f4463c1c6db184479a3b07f","unresolved":true,"context_lines":[{"line_number":98,"context_line":"                    msg \u003d _(\u0027Disabled reason contains invalid characters \u0027"},{"line_number":99,"context_line":"                            \u0027or is too long\u0027)"},{"line_number":100,"context_line":"                    raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":101,"context_line":"                update_dict[\u0027disabled_reason\u0027] \u003d disabled_reason"},{"line_number":102,"context_line":"                data[\u0027disabled_reason\u0027] \u003d disabled_reason.strip()"},{"line_number":103,"context_line":"        else:"},{"line_number":104,"context_line":"            raise webob.exc.HTTPNotFound(\"Unknown action \u0027%s\u0027\" % id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"8de618b2_5c37b515","line":101,"updated":"2024-02-23 09:54:40.000000000","message":"don\u0027t you want .strip() here too?","commit_id":"0a6e0f13ad97cd20416d49bfc20ef675fc1c5185"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"b76d3cb4aed6dec024b057bf4cd221480f5df6de","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                    msg \u003d _(\u0027Disabled reason contains invalid characters \u0027"},{"line_number":99,"context_line":"                            \u0027or is too long\u0027)"},{"line_number":100,"context_line":"                    raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":101,"context_line":"                update_dict[\u0027disabled_reason\u0027] \u003d disabled_reason"},{"line_number":102,"context_line":"                data[\u0027disabled_reason\u0027] \u003d disabled_reason.strip()"},{"line_number":103,"context_line":"        else:"},{"line_number":104,"context_line":"            raise webob.exc.HTTPNotFound(\"Unknown action \u0027%s\u0027\" % id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"a44473e6_cbce85bf","line":101,"in_reply_to":"8de618b2_5c37b515","updated":"2024-02-27 01:16:56.000000000","message":"Done","commit_id":"0a6e0f13ad97cd20416d49bfc20ef675fc1c5185"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"bc012984b8d4cd050baa3fc037aba9d0f352654a","unresolved":true,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    @wsgi.Controller.api_version(\u00271.0\u0027, \u00272.6\u0027)"},{"line_number":133,"context_line":"    def update(self, req, id, body):"},{"line_number":134,"context_line":"        return self._update(req, id, body)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"class ServiceController(ServiceMixin, wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":10,"id":"37b64398_08ff1215","line":134,"range":{"start_line":134,"start_character":41,"end_line":134,"end_character":42},"updated":"2024-02-27 21:47:03.000000000","message":"you\u0027ll need \"support_disabled_reason\u003dFalse\" here too","commit_id":"12ef157c3b71124e91ccb9fdba04ec9e3c3f0fd3"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"a1c362a9e13eb754a3cb6c632de1720bf4a86748","unresolved":true,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    @wsgi.Controller.api_version(\u00271.0\u0027, \u00272.6\u0027)"},{"line_number":133,"context_line":"    def update(self, req, id, body):"},{"line_number":134,"context_line":"        return self._update(req, id, body)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"class ServiceController(ServiceMixin, wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":10,"id":"721e04de_dc24cd08","line":134,"range":{"start_line":134,"start_character":41,"end_line":134,"end_character":42},"in_reply_to":"37b64398_08ff1215","updated":"2024-02-28 16:26:34.000000000","message":"+1","commit_id":"12ef157c3b71124e91ccb9fdba04ec9e3c3f0fd3"}],"manila/api/views/services.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cd03ebe81e41926edf65d4ca7f11011a328df033","unresolved":true,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def detail_list(self, services):"},{"line_number":29,"context_line":"        \"\"\"Detailed view of a list of services.\"\"\""},{"line_number":30,"context_line":"        keys \u003d (\u0027id\u0027, \u0027binary\u0027, \u0027host\u0027, \u0027zone\u0027, \u0027status\u0027, \u0027disabled_reason\u0027,"},{"line_number":31,"context_line":"                \u0027state\u0027, \u0027updated_at\u0027)"},{"line_number":32,"context_line":"        views \u003d [{key: s.get(key) for key in keys} for s in services]"},{"line_number":33,"context_line":"        return {self._collection_name: views}"}],"source_content_type":"text/x-python","patch_set":1,"id":"f712ac00_d4ce3c99","line":33,"range":{"start_line":30,"start_character":8,"end_line":33,"end_character":45},"updated":"2023-10-13 17:39:59.000000000","message":"please version this...","commit_id":"ac4a619ca333191ba123a7471123d1735666d5f6"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8de3ae1723f8996dd4acfe26f12d5be5f7e105b1","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def detail_list(self, services):"},{"line_number":29,"context_line":"        \"\"\"Detailed view of a list of services.\"\"\""},{"line_number":30,"context_line":"        keys \u003d (\u0027id\u0027, \u0027binary\u0027, \u0027host\u0027, \u0027zone\u0027, \u0027status\u0027, \u0027disabled_reason\u0027,"},{"line_number":31,"context_line":"                \u0027state\u0027, \u0027updated_at\u0027)"},{"line_number":32,"context_line":"        views \u003d [{key: s.get(key) for key in keys} for s in services]"},{"line_number":33,"context_line":"        return {self._collection_name: views}"}],"source_content_type":"text/x-python","patch_set":1,"id":"7d723f6f_70968dba","line":33,"range":{"start_line":30,"start_character":8,"end_line":33,"end_character":45},"in_reply_to":"f712ac00_d4ce3c99","updated":"2023-10-16 02:37:52.000000000","message":"Done","commit_id":"ac4a619ca333191ba123a7471123d1735666d5f6"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"936fb927db89eed870d229fe0005f817d73a1988","unresolved":true,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def summary(self, request, service):"},{"line_number":27,"context_line":"        \"\"\"Summary view of a single service.\"\"\""},{"line_number":28,"context_line":"        keys \u003d \u0027host\u0027, \u0027binary\u0027, \u0027disabled\u0027"},{"line_number":29,"context_line":"        service_dict \u003d {key: service.get(key) for key in keys}"},{"line_number":30,"context_line":"        self.update_versioned_resource_dict(request, service_dict, service)"},{"line_number":31,"context_line":"        return service_dict"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fe8b541_4a34e44a","line":28,"updated":"2023-12-14 12:16:05.000000000","message":"is keys should be \u0027status\u0027 here ? There is mismatch in summary and detail view. Either both should have \u0027disabled\u0027 or \u0027state\u0027 but not mix.","commit_id":"84a0c02fa981bfa129bbe307e3d8a9270df46bc1"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8828d2cdfbc98c605ce95a24e4c05277c1f10584","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def summary(self, request, service):"},{"line_number":27,"context_line":"        \"\"\"Summary view of a single service.\"\"\""},{"line_number":28,"context_line":"        keys \u003d \u0027host\u0027, \u0027binary\u0027, \u0027disabled\u0027"},{"line_number":29,"context_line":"        service_dict \u003d {key: service.get(key) for key in keys}"},{"line_number":30,"context_line":"        self.update_versioned_resource_dict(request, service_dict, service)"},{"line_number":31,"context_line":"        return service_dict"}],"source_content_type":"text/x-python","patch_set":3,"id":"d346ce33_6a6b78b7","line":28,"in_reply_to":"1fe8b541_4a34e44a","updated":"2023-12-15 09:56:54.000000000","message":"Done","commit_id":"84a0c02fa981bfa129bbe307e3d8a9270df46bc1"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"bd78738eea748f5a0ae3112eb54fdf490da4b72d","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def summary(self, request, service):"},{"line_number":27,"context_line":"        \"\"\"Summary view of a single service.\"\"\""},{"line_number":28,"context_line":"        keys \u003d \u0027host\u0027, \u0027binary\u0027, \u0027disabled\u0027"},{"line_number":29,"context_line":"        service_dict \u003d {key: service.get(key) for key in keys}"},{"line_number":30,"context_line":"        self.update_versioned_resource_dict(request, service_dict, service)"},{"line_number":31,"context_line":"        return service_dict"}],"source_content_type":"text/x-python","patch_set":3,"id":"185087c6_2ea72593","line":28,"in_reply_to":"d346ce33_6a6b78b7","updated":"2023-12-18 06:01:52.000000000","message":"because \nservice[\u0027status\u0027] \u003d \u0027disabled\u0027 if service[\u0027disabled\u0027] \u003d\u003d True else \u0027enabled\u0027\n\nso either both only has \u0027status\u0027 is enough.\n\n\u0027state\u0027 only show in detail_list.","commit_id":"84a0c02fa981bfa129bbe307e3d8a9270df46bc1"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"771eb35a89bf7393609cfc3a1b65024b6ed7afca","unresolved":true,"context_lines":[{"line_number":40,"context_line":"    def detail_list(self, request, services):"},{"line_number":41,"context_line":"        \"\"\"Detailed view of a list of services.\"\"\""},{"line_number":42,"context_line":"        services_list \u003d [self.detail(request, s) for s in services]"},{"line_number":43,"context_line":"        services_dict \u003d dict(services\u003dservices_list)"},{"line_number":44,"context_line":"        return services_dict"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @common.ViewBuilder.versioned_method(\"2.83\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"52fc2b5b_8e73dc9d","line":43,"range":{"start_line":43,"start_character":29,"end_line":43,"end_character":37},"updated":"2023-12-14 15:50:00.000000000","message":"I think this should still use `_collection_name`","commit_id":"84a0c02fa981bfa129bbe307e3d8a9270df46bc1"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8828d2cdfbc98c605ce95a24e4c05277c1f10584","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def detail_list(self, request, services):"},{"line_number":41,"context_line":"        \"\"\"Detailed view of a list of services.\"\"\""},{"line_number":42,"context_line":"        services_list \u003d [self.detail(request, s) for s in services]"},{"line_number":43,"context_line":"        services_dict \u003d dict(services\u003dservices_list)"},{"line_number":44,"context_line":"        return services_dict"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @common.ViewBuilder.versioned_method(\"2.83\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"6c92cc1b_cf391a63","line":43,"range":{"start_line":43,"start_character":29,"end_line":43,"end_character":37},"in_reply_to":"52fc2b5b_8e73dc9d","updated":"2023-12-15 09:56:54.000000000","message":"if we use dict() to make a dict, we can not use _collection_name, beacuse\n\n    \u003e\u003e\u003e _collection_name \u003d \"services\"\n    \u003e\u003e\u003e services_list\u003d[1,2,3,4]\n    \u003e\u003e\u003e dict(_collection_name\u003dservices_list)\n        {\u0027_collection_name\u0027: [1, 2, 3, 4]}","commit_id":"84a0c02fa981bfa129bbe307e3d8a9270df46bc1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cdde988978884751f4463c1c6db184479a3b07f","unresolved":true,"context_lines":[{"line_number":27,"context_line":"        \"\"\"Summary view of a single service.\"\"\""},{"line_number":28,"context_line":"        keys \u003d \u0027host\u0027, \u0027binary\u0027, \u0027status\u0027,"},{"line_number":29,"context_line":"        service_dict \u003d {key: service.get(key) for key in keys}"},{"line_number":30,"context_line":"        self.update_versioned_resource_dict(request, service_dict, service)"},{"line_number":31,"context_line":"        return service_dict"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def detail(self, request, service):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3ecc3d1c_504d29a3","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":75},"updated":"2024-02-23 09:54:40.000000000","message":"you are changing \"disabled\" to \"status\".. \nthis non-versioned change affects all microversions... that\u0027d potentially break existing tools!\n\nhttps://docs.openstack.org/api-ref/shared-file-system/#id581\n\n\nin the \"add_disabled_reason_field\", \n\nyou can do:\n\n```\n  service_dict.pop(\u0027disabled\u0027, None) \n  service_dict[\u0027status\u0027] \u003d service.get(\u0027status\u0027)\n```\n  \nthis way it only affects 2.83 and beyond.\n\nPlease also mention this change in the API reference","commit_id":"0a6e0f13ad97cd20416d49bfc20ef675fc1c5185"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"b76d3cb4aed6dec024b057bf4cd221480f5df6de","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        \"\"\"Summary view of a single service.\"\"\""},{"line_number":28,"context_line":"        keys \u003d \u0027host\u0027, \u0027binary\u0027, \u0027status\u0027,"},{"line_number":29,"context_line":"        service_dict \u003d {key: service.get(key) for key in keys}"},{"line_number":30,"context_line":"        self.update_versioned_resource_dict(request, service_dict, service)"},{"line_number":31,"context_line":"        return service_dict"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def detail(self, request, service):"}],"source_content_type":"text/x-python","patch_set":8,"id":"2553fc60_1fb73b11","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":75},"in_reply_to":"3ecc3d1c_504d29a3","updated":"2024-02-27 01:16:56.000000000","message":"Done","commit_id":"0a6e0f13ad97cd20416d49bfc20ef675fc1c5185"}],"manila/db/migrations/alembic/versions/99d328f0a3d2_add_disable_reason_to_service.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2cdde988978884751f4463c1c6db184479a3b07f","unresolved":true,"context_lines":[{"line_number":35,"context_line":"        op.add_column("},{"line_number":36,"context_line":"            \u0027services\u0027, sa.Column("},{"line_number":37,"context_line":"                \u0027disabled_reason\u0027, sa.String(length\u003d255),"},{"line_number":38,"context_line":"                default\u003dNone,"},{"line_number":39,"context_line":"                nullable\u003dTrue))"},{"line_number":40,"context_line":"    except Exception:"},{"line_number":41,"context_line":"        LOG.error(\"Column services.disabled_reason not created!\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"a3ec7d5f_4c0ac563","line":38,"range":{"start_line":38,"start_character":16,"end_line":38,"end_character":29},"updated":"2024-02-23 09:54:40.000000000","message":"you can remove this; nullable\u003dTrue means the column\u0027s default value is None","commit_id":"0a6e0f13ad97cd20416d49bfc20ef675fc1c5185"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"b76d3cb4aed6dec024b057bf4cd221480f5df6de","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        op.add_column("},{"line_number":36,"context_line":"            \u0027services\u0027, sa.Column("},{"line_number":37,"context_line":"                \u0027disabled_reason\u0027, sa.String(length\u003d255),"},{"line_number":38,"context_line":"                default\u003dNone,"},{"line_number":39,"context_line":"                nullable\u003dTrue))"},{"line_number":40,"context_line":"    except Exception:"},{"line_number":41,"context_line":"        LOG.error(\"Column services.disabled_reason not created!\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"2fc4c00a_3cb94b98","line":38,"range":{"start_line":38,"start_character":16,"end_line":38,"end_character":29},"in_reply_to":"a3ec7d5f_4c0ac563","updated":"2024-02-27 01:16:56.000000000","message":"Done","commit_id":"0a6e0f13ad97cd20416d49bfc20ef675fc1c5185"}],"manila/utils.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cd03ebe81e41926edf65d4ca7f11011a328df033","unresolved":true,"context_lines":[{"line_number":714,"context_line":"    ssh.exec_command(cmd2)"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"def check_string_length(value, name, min_length\u003d0, max_length\u003dNone):"},{"line_number":718,"context_line":"    \"\"\"Check the length of specified string"},{"line_number":719,"context_line":"    :param value: the value of the string"},{"line_number":720,"context_line":"    :param name: the name of the string"}],"source_content_type":"text/x-python","patch_set":1,"id":"a427e4ef_140a0e46","line":717,"updated":"2023-10-13 17:39:59.000000000","message":"This thing exists in strutils now; and we can use it from there:\n\nhttps://opendev.org/openstack/oslo.utils/src/commit/a122f5c065c346c9ca2218a9131a2a352e6b380f/oslo_utils/strutils.py#L475-L505","commit_id":"ac4a619ca333191ba123a7471123d1735666d5f6"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8de3ae1723f8996dd4acfe26f12d5be5f7e105b1","unresolved":false,"context_lines":[{"line_number":714,"context_line":"    ssh.exec_command(cmd2)"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"def check_string_length(value, name, min_length\u003d0, max_length\u003dNone):"},{"line_number":718,"context_line":"    \"\"\"Check the length of specified string"},{"line_number":719,"context_line":"    :param value: the value of the string"},{"line_number":720,"context_line":"    :param name: the name of the string"}],"source_content_type":"text/x-python","patch_set":1,"id":"b0c31868_bf67e0f4","line":717,"in_reply_to":"a427e4ef_140a0e46","updated":"2023-10-16 02:37:52.000000000","message":"Done","commit_id":"ac4a619ca333191ba123a7471123d1735666d5f6"}],"releasenotes/notes/add_disabled_reason_to_services-8369aaa2985ada25.yaml":[{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"936fb927db89eed870d229fe0005f817d73a1988","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - added a new field \u0027disabled_reason\u0027 to services table, user can set"},{"line_number":4,"context_line":"    \u0027disabled_reason\u0027 when disable a service, and show \u0027disabled_reason\u0027"},{"line_number":5,"context_line":"    when service list."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"51adc0d4_0c3041e3","line":3,"updated":"2023-12-14 12:16:05.000000000","message":"`Added a`. Please also mention bug reference","commit_id":"84a0c02fa981bfa129bbe307e3d8a9270df46bc1"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8828d2cdfbc98c605ce95a24e4c05277c1f10584","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - added a new field \u0027disabled_reason\u0027 to services table, user can set"},{"line_number":4,"context_line":"    \u0027disabled_reason\u0027 when disable a service, and show \u0027disabled_reason\u0027"},{"line_number":5,"context_line":"    when service list."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"46df9869_fca362af","line":3,"in_reply_to":"51adc0d4_0c3041e3","updated":"2023-12-15 09:56:54.000000000","message":"Done","commit_id":"84a0c02fa981bfa129bbe307e3d8a9270df46bc1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b62302164f804da6d8db03f5ee0b9ac0352b0bbc","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a new field \u0027disabled_reason\u0027 to services table, user can set"},{"line_number":4,"context_line":"    \u0027disabled_reason\u0027 when disable a service, and show \u0027disabled_reason\u0027"},{"line_number":5,"context_line":"    when service list, and clear \u0027disabled_reason\u0027 when enable service."},{"line_number":6,"context_line":"    See `bug 2037700 \u003chttps://bugs.launchpad.net/manila/+bug/2037700\u003e`_"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"8ef88122_924b0012","line":3,"range":{"start_line":3,"start_character":57,"end_line":3,"end_character":60},"updated":"2024-01-04 12:27:53.000000000","message":". Users","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"96140453cd8acec58c0656ce4ac3de745974cdda","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a new field \u0027disabled_reason\u0027 to services table, user can set"},{"line_number":4,"context_line":"    \u0027disabled_reason\u0027 when disable a service, and show \u0027disabled_reason\u0027"},{"line_number":5,"context_line":"    when service list, and clear \u0027disabled_reason\u0027 when enable service."},{"line_number":6,"context_line":"    See `bug 2037700 \u003chttps://bugs.launchpad.net/manila/+bug/2037700\u003e`_"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"935de628_375b2000","line":3,"range":{"start_line":3,"start_character":57,"end_line":3,"end_character":60},"in_reply_to":"8ef88122_924b0012","updated":"2024-01-05 03:16:00.000000000","message":"Done","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b62302164f804da6d8db03f5ee0b9ac0352b0bbc","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a new field \u0027disabled_reason\u0027 to services table, user can set"},{"line_number":4,"context_line":"    \u0027disabled_reason\u0027 when disable a service, and show \u0027disabled_reason\u0027"},{"line_number":5,"context_line":"    when service list, and clear \u0027disabled_reason\u0027 when enable service."},{"line_number":6,"context_line":"    See `bug 2037700 \u003chttps://bugs.launchpad.net/manila/+bug/2037700\u003e`_"},{"line_number":7,"context_line":"    for more details."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"a880c449_8ecd8152","line":4,"range":{"start_line":4,"start_character":27,"end_line":4,"end_character":34},"updated":"2024-01-04 12:27:53.000000000","message":"disabling","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"96140453cd8acec58c0656ce4ac3de745974cdda","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a new field \u0027disabled_reason\u0027 to services table, user can set"},{"line_number":4,"context_line":"    \u0027disabled_reason\u0027 when disable a service, and show \u0027disabled_reason\u0027"},{"line_number":5,"context_line":"    when service list, and clear \u0027disabled_reason\u0027 when enable service."},{"line_number":6,"context_line":"    See `bug 2037700 \u003chttps://bugs.launchpad.net/manila/+bug/2037700\u003e`_"},{"line_number":7,"context_line":"    for more details."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"0e1c8d14_82a51174","line":4,"range":{"start_line":4,"start_character":27,"end_line":4,"end_character":34},"in_reply_to":"a880c449_8ecd8152","updated":"2024-01-05 03:16:00.000000000","message":"Done","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b62302164f804da6d8db03f5ee0b9ac0352b0bbc","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a new field \u0027disabled_reason\u0027 to services table, user can set"},{"line_number":4,"context_line":"    \u0027disabled_reason\u0027 when disable a service, and show \u0027disabled_reason\u0027"},{"line_number":5,"context_line":"    when service list, and clear \u0027disabled_reason\u0027 when enable service."},{"line_number":6,"context_line":"    See `bug 2037700 \u003chttps://bugs.launchpad.net/manila/+bug/2037700\u003e`_"},{"line_number":7,"context_line":"    for more details."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"4a36dcac_9b460605","line":5,"range":{"start_line":5,"start_character":23,"end_line":5,"end_character":70},"updated":"2024-01-04 12:27:53.000000000","message":"When re-enabling the service, the disabled reason will be cleared.","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b62302164f804da6d8db03f5ee0b9ac0352b0bbc","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a new field \u0027disabled_reason\u0027 to services table, user can set"},{"line_number":4,"context_line":"    \u0027disabled_reason\u0027 when disable a service, and show \u0027disabled_reason\u0027"},{"line_number":5,"context_line":"    when service list, and clear \u0027disabled_reason\u0027 when enable service."},{"line_number":6,"context_line":"    See `bug 2037700 \u003chttps://bugs.launchpad.net/manila/+bug/2037700\u003e`_"},{"line_number":7,"context_line":"    for more details."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"c575e0fa_ea49c2a3","line":5,"range":{"start_line":4,"start_character":46,"end_line":5,"end_character":21},"updated":"2024-01-04 12:27:53.000000000","message":"and query the disabled reason while listing services.","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"96140453cd8acec58c0656ce4ac3de745974cdda","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a new field \u0027disabled_reason\u0027 to services table, user can set"},{"line_number":4,"context_line":"    \u0027disabled_reason\u0027 when disable a service, and show \u0027disabled_reason\u0027"},{"line_number":5,"context_line":"    when service list, and clear \u0027disabled_reason\u0027 when enable service."},{"line_number":6,"context_line":"    See `bug 2037700 \u003chttps://bugs.launchpad.net/manila/+bug/2037700\u003e`_"},{"line_number":7,"context_line":"    for more details."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"303c5db1_fa6dacf6","line":5,"range":{"start_line":5,"start_character":23,"end_line":5,"end_character":70},"in_reply_to":"4a36dcac_9b460605","updated":"2024-01-05 03:16:00.000000000","message":"Done","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"96140453cd8acec58c0656ce4ac3de745974cdda","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added a new field \u0027disabled_reason\u0027 to services table, user can set"},{"line_number":4,"context_line":"    \u0027disabled_reason\u0027 when disable a service, and show \u0027disabled_reason\u0027"},{"line_number":5,"context_line":"    when service list, and clear \u0027disabled_reason\u0027 when enable service."},{"line_number":6,"context_line":"    See `bug 2037700 \u003chttps://bugs.launchpad.net/manila/+bug/2037700\u003e`_"},{"line_number":7,"context_line":"    for more details."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"df40fb17_dbb1579a","line":5,"range":{"start_line":4,"start_character":46,"end_line":5,"end_character":21},"in_reply_to":"c575e0fa_ea49c2a3","updated":"2024-01-05 03:16:00.000000000","message":"Done","commit_id":"7c848d7db0575c239e160cd80f57408119641bc4"}]}
