)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"183aa9ce767fa47c921a89eb268f4b64a913fb1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6c73c1eb_af06cc5b","updated":"2024-08-29 15:12:08.000000000","message":"Hi, thanks Carlos for implementing this. I had a quick look","commit_id":"e21d75fa7cc101fe46015185bf465327e815972a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"cf8862286daff15a82ec1dcaacb910d74efbb72e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fda5138f_cd25c97a","updated":"2024-08-29 22:00:18.000000000","message":"Thanks for the review, Maurice! Please take a look at the latest PS :)","commit_id":"e21d75fa7cc101fe46015185bf465327e815972a"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"86b4021f491f87eb0755ba1127ada692c4e5d772","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"14427427_1b1ce512","updated":"2024-08-30 10:43:11.000000000","message":"Hi Carlos, just one minor, please see my comment below","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1b278d1605cf3f144df05f10d93a567e4258650a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7329447b_e612c43f","updated":"2024-08-30 01:16:27.000000000","message":"This looks good; some minor-ish comments inline; thanks Carlos!","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"7211c2f14f835dfe48202384a5a25c47bc575159","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"928ab5bb_28f72896","updated":"2024-08-30 03:27:43.000000000","message":"code almost look good, just one comment.thanks.","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"a4efd0e9f1a4e79945188657753c1d06d6f888bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"86411698_e24620ab","updated":"2024-08-30 14:26:38.000000000","message":"LGTM","commit_id":"7a30ef65a98db5b9996ed1e79c97f30bd41d6581"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b80cf0593b5b2c15091b4abb7435a5cd79ac136a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"2fd7adc7_bccea125","updated":"2024-08-30 13:15:46.000000000","message":"Thank you for the reviews. PTAL :)","commit_id":"7a30ef65a98db5b9996ed1e79c97f30bd41d6581"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"5f3fde40b53093624e71489cc1bfd8b3c6527c15","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a999277a_ac27e5b0","updated":"2024-08-30 18:19:17.000000000","message":"code looks good, thanks carloss","commit_id":"7a30ef65a98db5b9996ed1e79c97f30bd41d6581"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"24de50cfb8ef85ffd57061f2b4ffd1bb8edaa8a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8b16859d_d0f8a3e6","in_reply_to":"a999277a_ac27e5b0","updated":"2024-08-30 18:53:03.000000000","message":"Thanks! needed to do some updates after some testing, could you please take a look again?","commit_id":"7a30ef65a98db5b9996ed1e79c97f30bd41d6581"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7c205ac898b91adcbe101479e43151e26c8654dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c9ed888a_0e926aff","updated":"2024-09-09 17:38:37.000000000","message":"Done in another patch, which is still under testing","commit_id":"101becf9b4e7326d1079bdba43c7d5bc537f5737"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"e24ec94cb88f44f7b4dca44d249e782204cdbd51","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"8560ebc4_37fc4b70","updated":"2024-09-03 08:29:17.000000000","message":"LGTM,thanks,Carlos Eduardo.","commit_id":"101becf9b4e7326d1079bdba43c7d5bc537f5737"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"128b6bc1d9c5f7df735f7662e3ecfd16b2525d4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d03153a8_7f033224","updated":"2024-09-03 23:02:02.000000000","message":"Thanks Carlos; some minor comments inline.. you may choose to address these in a follow up change; I expected the export location metadata change to merge before this; however, it seems to need some more attention.. so lets get this in","commit_id":"101becf9b4e7326d1079bdba43c7d5bc537f5737"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"21e142c5898877eb250a52c5e7af09c75940e3d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"03a60239_e635fba9","in_reply_to":"c9ed888a_0e926aff","updated":"2024-09-14 00:08:38.000000000","message":"https://review.opendev.org/c/openstack/manila/+/928081","commit_id":"101becf9b4e7326d1079bdba43c7d5bc537f5737"}],"manila/api/v2/router.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1b278d1605cf3f144df05f10d93a567e4258650a","unresolved":true,"context_lines":[{"line_number":105,"context_line":"        for path_prefix in [\u0027/{project_id}\u0027, \u0027\u0027]:"},{"line_number":106,"context_line":"            # project_id is optional"},{"line_number":107,"context_line":"            mapper.connect(\"services\","},{"line_number":108,"context_line":"                           \"%s/services/ensure_shares\" % path_prefix,"},{"line_number":109,"context_line":"                           controller\u003dself.resources[\"services\"],"},{"line_number":110,"context_line":"                           action\u003d\"ensure_shares\","},{"line_number":111,"context_line":"                           conditions\u003d{\"method\": [\"POST\"]})"}],"source_content_type":"text/x-python","patch_set":6,"id":"8a4ff2d9_b43fd0e4","line":108,"range":{"start_line":108,"start_character":40,"end_line":108,"end_character":53},"updated":"2024-08-30 01:16:27.000000000","message":"we should hyphenate instead of using \"_\" in URLs; i know we have a couple of things using underscores, but lets prefer hyphens: https://specs.openstack.org/openstack/api-sig/guidelines/naming.html#rest-api-resource-names","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b80cf0593b5b2c15091b4abb7435a5cd79ac136a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        for path_prefix in [\u0027/{project_id}\u0027, \u0027\u0027]:"},{"line_number":106,"context_line":"            # project_id is optional"},{"line_number":107,"context_line":"            mapper.connect(\"services\","},{"line_number":108,"context_line":"                           \"%s/services/ensure_shares\" % path_prefix,"},{"line_number":109,"context_line":"                           controller\u003dself.resources[\"services\"],"},{"line_number":110,"context_line":"                           action\u003d\"ensure_shares\","},{"line_number":111,"context_line":"                           conditions\u003d{\"method\": [\"POST\"]})"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f24ad3d_8144a5df","line":108,"range":{"start_line":108,"start_character":40,"end_line":108,"end_character":53},"in_reply_to":"8a4ff2d9_b43fd0e4","updated":"2024-08-30 13:15:46.000000000","message":"Done","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"}],"manila/api/v2/services.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1b278d1605cf3f144df05f10d93a567e4258650a","unresolved":true,"context_lines":[{"line_number":161,"context_line":"    def update(self, req, id, body): # pylint: disable\u003dfunction-redefined  # noqa F811"},{"line_number":162,"context_line":"        return self._update(req, id, body)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @wsgi.Controller.api_version(\u00272.86\u0027)  # noqa"},{"line_number":165,"context_line":"    def ensure_shares(self, req, body):"},{"line_number":166,"context_line":"        \"\"\"Starts ensure shares for a given manila-share binary.\"\"\""},{"line_number":167,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"0f83fc1d_33ba4c5c","line":164,"range":{"start_line":164,"start_character":42,"end_line":164,"end_character":48},"updated":"2024-08-30 01:16:27.000000000","message":"why?","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b80cf0593b5b2c15091b4abb7435a5cd79ac136a","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    def update(self, req, id, body): # pylint: disable\u003dfunction-redefined  # noqa F811"},{"line_number":162,"context_line":"        return self._update(req, id, body)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @wsgi.Controller.api_version(\u00272.86\u0027)  # noqa"},{"line_number":165,"context_line":"    def ensure_shares(self, req, body):"},{"line_number":166,"context_line":"        \"\"\"Starts ensure shares for a given manila-share binary.\"\"\""},{"line_number":167,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"efd9082e_d1d4a6f2","line":164,"range":{"start_line":164,"start_character":42,"end_line":164,"end_character":48},"in_reply_to":"0f83fc1d_33ba4c5c","updated":"2024-08-30 13:15:46.000000000","message":"leftover from previous changes :)","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1b278d1605cf3f144df05f10d93a567e4258650a","unresolved":true,"context_lines":[{"line_number":166,"context_line":"        \"\"\"Starts ensure shares for a given manila-share binary.\"\"\""},{"line_number":167,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        policy.check_policy(context, \u0027service\u0027, \u0027ensure_shares\u0027)"},{"line_number":170,"context_line":"        host \u003d body.get(\u0027host\u0027, None)"},{"line_number":171,"context_line":"        if not host:"},{"line_number":172,"context_line":"            raise webob.exc.HTTPBadRequest(\u0027Missing host parameter.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"6eeeb9ec_9cf289d7","line":169,"range":{"start_line":169,"start_character":8,"end_line":169,"end_character":64},"updated":"2024-08-30 01:16:27.000000000","message":"use the `@wsgi.Controller.authorize` decorator on the method instead","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b80cf0593b5b2c15091b4abb7435a5cd79ac136a","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        \"\"\"Starts ensure shares for a given manila-share binary.\"\"\""},{"line_number":167,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        policy.check_policy(context, \u0027service\u0027, \u0027ensure_shares\u0027)"},{"line_number":170,"context_line":"        host \u003d body.get(\u0027host\u0027, None)"},{"line_number":171,"context_line":"        if not host:"},{"line_number":172,"context_line":"            raise webob.exc.HTTPBadRequest(\u0027Missing host parameter.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"d8ae6fd5_e85ca0e4","line":169,"range":{"start_line":169,"start_character":8,"end_line":169,"end_character":64},"in_reply_to":"6eeeb9ec_9cf289d7","updated":"2024-08-30 13:15:46.000000000","message":"Done","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"273d3979e4c14515ea11cdf805f7c0533a402477","unresolved":true,"context_lines":[{"line_number":63,"context_line":"            \u0027binary\u0027,"},{"line_number":64,"context_line":"            \u0027zone\u0027,"},{"line_number":65,"context_line":"            \u0027state\u0027,"},{"line_number":66,"context_line":"            \u0027status\u0027,"},{"line_number":67,"context_line":"        ]"},{"line_number":68,"context_line":"        for search_opt in search_opts:"},{"line_number":69,"context_line":"            if search_opt in req.GET:"}],"source_content_type":"text/x-python","patch_set":7,"id":"25b58063_496af1ca","line":66,"range":{"start_line":66,"start_character":12,"end_line":66,"end_character":21},"updated":"2024-08-30 17:40:02.000000000","message":"maybe we should allow to filter by ``ensuring`` as well","commit_id":"7a30ef65a98db5b9996ed1e79c97f30bd41d6581"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"128b6bc1d9c5f7df735f7662e3ecfd16b2525d4a","unresolved":true,"context_lines":[{"line_number":63,"context_line":"            \u0027binary\u0027,"},{"line_number":64,"context_line":"            \u0027zone\u0027,"},{"line_number":65,"context_line":"            \u0027state\u0027,"},{"line_number":66,"context_line":"            \u0027status\u0027,"},{"line_number":67,"context_line":"        ]"},{"line_number":68,"context_line":"        for search_opt in search_opts:"},{"line_number":69,"context_line":"            if search_opt in req.GET:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ae72f57e_22409dbc","line":66,"range":{"start_line":66,"start_character":12,"end_line":66,"end_character":21},"in_reply_to":"25b58063_496af1ca","updated":"2024-09-03 23:02:02.000000000","message":"+1","commit_id":"7a30ef65a98db5b9996ed1e79c97f30bd41d6581"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7c205ac898b91adcbe101479e43151e26c8654dd","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            \u0027binary\u0027,"},{"line_number":64,"context_line":"            \u0027zone\u0027,"},{"line_number":65,"context_line":"            \u0027state\u0027,"},{"line_number":66,"context_line":"            \u0027status\u0027,"},{"line_number":67,"context_line":"        ]"},{"line_number":68,"context_line":"        for search_opt in search_opts:"},{"line_number":69,"context_line":"            if search_opt in req.GET:"}],"source_content_type":"text/x-python","patch_set":7,"id":"2fa1fc7c_0a4d20f2","line":66,"range":{"start_line":66,"start_character":12,"end_line":66,"end_character":21},"in_reply_to":"ae72f57e_22409dbc","updated":"2024-09-09 17:38:37.000000000","message":"Done","commit_id":"7a30ef65a98db5b9996ed1e79c97f30bd41d6581"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"128b6bc1d9c5f7df735f7662e3ecfd16b2525d4a","unresolved":true,"context_lines":[{"line_number":173,"context_line":"        \"\"\"Starts ensure shares for a given manila-share binary.\"\"\""},{"line_number":174,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        policy.check_policy(context, \u0027service\u0027, \u0027ensure_shares\u0027)"},{"line_number":177,"context_line":"        host \u003d body.get(\u0027host\u0027, None)"},{"line_number":178,"context_line":"        if not host:"},{"line_number":179,"context_line":"            raise webob.exc.HTTPBadRequest(\u0027Missing host parameter.\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"84b90687_d722e798","line":176,"range":{"start_line":176,"start_character":0,"end_line":176,"end_character":64},"updated":"2024-09-03 23:02:02.000000000","message":"no need for this now that you have the authorize decorator","commit_id":"101becf9b4e7326d1079bdba43c7d5bc537f5737"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7c205ac898b91adcbe101479e43151e26c8654dd","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        \"\"\"Starts ensure shares for a given manila-share binary.\"\"\""},{"line_number":174,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        policy.check_policy(context, \u0027service\u0027, \u0027ensure_shares\u0027)"},{"line_number":177,"context_line":"        host \u003d body.get(\u0027host\u0027, None)"},{"line_number":178,"context_line":"        if not host:"},{"line_number":179,"context_line":"            raise webob.exc.HTTPBadRequest(\u0027Missing host parameter.\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"293e48f3_7b80cd65","line":176,"range":{"start_line":176,"start_character":0,"end_line":176,"end_character":64},"in_reply_to":"84b90687_d722e798","updated":"2024-09-09 17:38:37.000000000","message":"Done","commit_id":"101becf9b4e7326d1079bdba43c7d5bc537f5737"}],"manila/policies/service.py":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"183aa9ce767fa47c921a89eb268f4b64a913fb1e","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    name\u003dBASE_POLICY_NAME % \u0027ensure_shares\u0027,"},{"line_number":39,"context_line":"    check_str\u003dbase.RULE_ADMIN_API,"},{"line_number":40,"context_line":"    deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":41,"context_line":"    deprecated_since\u003d\u00272024.2\u0027"},{"line_number":42,"context_line":")"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"4f2c3c09_78c35856","line":41,"range":{"start_line":41,"start_character":22,"end_line":41,"end_character":28},"updated":"2024-08-29 15:12:08.000000000","message":"`2024.2/Dalmatian` would match the pattern that was used in the previous two releases 😊","commit_id":"e21d75fa7cc101fe46015185bf465327e815972a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"cf8862286daff15a82ec1dcaacb910d74efbb72e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    name\u003dBASE_POLICY_NAME % \u0027ensure_shares\u0027,"},{"line_number":39,"context_line":"    check_str\u003dbase.RULE_ADMIN_API,"},{"line_number":40,"context_line":"    deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":41,"context_line":"    deprecated_since\u003d\u00272024.2\u0027"},{"line_number":42,"context_line":")"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ae250da8_c9c49b7a","line":41,"range":{"start_line":41,"start_character":22,"end_line":41,"end_character":28},"in_reply_to":"4f2c3c09_78c35856","updated":"2024-08-29 22:00:18.000000000","message":"Done","commit_id":"e21d75fa7cc101fe46015185bf465327e815972a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1b278d1605cf3f144df05f10d93a567e4258650a","unresolved":true,"context_lines":[{"line_number":89,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027ensure_shares\u0027,"},{"line_number":90,"context_line":"        check_str\u003dbase.ADMIN,"},{"line_number":91,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":92,"context_line":"        description\u003d\"Run the ensure shares for a manila-share binary.\","},{"line_number":93,"context_line":"        operations\u003d["},{"line_number":94,"context_line":"            {"},{"line_number":95,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"e130ed6e_8e766f72","line":92,"range":{"start_line":92,"start_character":25,"end_line":92,"end_character":28},"updated":"2024-08-30 01:16:27.000000000","message":"s/the//","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b80cf0593b5b2c15091b4abb7435a5cd79ac136a","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027ensure_shares\u0027,"},{"line_number":90,"context_line":"        check_str\u003dbase.ADMIN,"},{"line_number":91,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":92,"context_line":"        description\u003d\"Run the ensure shares for a manila-share binary.\","},{"line_number":93,"context_line":"        operations\u003d["},{"line_number":94,"context_line":"            {"},{"line_number":95,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"d33f4d48_b8f26dde","line":92,"range":{"start_line":92,"start_character":25,"end_line":92,"end_character":28},"in_reply_to":"e130ed6e_8e766f72","updated":"2024-08-30 13:15:46.000000000","message":"Done","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"}],"manila/service/api.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bc1ba7c3871891ad3e9fc7c7528a7f1eba4da073","unresolved":true,"context_lines":[{"line_number":9,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":"\"\"\""},{"line_number":13,"context_line":"Handles all requests related to resource locks."},{"line_number":14,"context_line":"\"\"\""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_config import cfg"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from webob import exc"}],"source_content_type":"text/x-python","patch_set":1,"id":"ce8e9a9a_86726fab","line":15,"range":{"start_line":12,"start_character":0,"end_line":15,"end_character":0},"updated":"2024-07-17 14:02:21.000000000","message":"remove - copy and paste from resource locks licensing","commit_id":"16e8df3b174570f3b60297e0499d1e8785a6ae45"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"2b2b95690c93a6b9c4e2173d8abe0af0566575d4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":"\"\"\""},{"line_number":13,"context_line":"Handles all requests related to resource locks."},{"line_number":14,"context_line":"\"\"\""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_config import cfg"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from webob import exc"}],"source_content_type":"text/x-python","patch_set":1,"id":"2203ea28_6b8f41fa","line":15,"range":{"start_line":12,"start_character":0,"end_line":15,"end_character":0},"in_reply_to":"ce8e9a9a_86726fab","updated":"2024-08-13 14:29:02.000000000","message":"Done","commit_id":"16e8df3b174570f3b60297e0499d1e8785a6ae45"}],"manila/services/api.py":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"183aa9ce767fa47c921a89eb268f4b64a913fb1e","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        if service[\u0027state\u0027] !\u003d \"up\":"},{"line_number":34,"context_line":"            raise exc.HTTPConflict("},{"line_number":35,"context_line":"                \"The service must be enabled and its state should be set to \""},{"line_number":36,"context_line":"                \"\u0027up\u0027 prior to running ensure shares.\")"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        update_instances_status \u003d getattr("}],"source_content_type":"text/x-python","patch_set":5,"id":"ec6ba652_7f16d404","line":35,"range":{"start_line":35,"start_character":29,"end_line":35,"end_character":44},"updated":"2024-08-29 15:12:08.000000000","message":"The message needs to be updated, please. The service can be disabled, too, now with this patchset.","commit_id":"e21d75fa7cc101fe46015185bf465327e815972a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"cf8862286daff15a82ec1dcaacb910d74efbb72e","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        if service[\u0027state\u0027] !\u003d \"up\":"},{"line_number":34,"context_line":"            raise exc.HTTPConflict("},{"line_number":35,"context_line":"                \"The service must be enabled and its state should be set to \""},{"line_number":36,"context_line":"                \"\u0027up\u0027 prior to running ensure shares.\")"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        update_instances_status \u003d getattr("}],"source_content_type":"text/x-python","patch_set":5,"id":"3bcb3f9c_8d5c239a","line":35,"range":{"start_line":35,"start_character":29,"end_line":35,"end_character":44},"in_reply_to":"ec6ba652_7f16d404","updated":"2024-08-29 22:00:18.000000000","message":"Good catch, thank you","commit_id":"e21d75fa7cc101fe46015185bf465327e815972a"}],"manila/share/manager.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1b278d1605cf3f144df05f10d93a567e4258650a","unresolved":true,"context_lines":[{"line_number":429,"context_line":"            new_backend_info_hash \u003d hashlib.sha1(str("},{"line_number":430,"context_line":"                sorted(new_backend_info.items())).encode(\u0027utf-8\u0027)).hexdigest()"},{"line_number":431,"context_line":"        if ((old_backend_info_hash \u003d\u003d new_backend_info_hash and"},{"line_number":432,"context_line":"                backend_info_implemented) and not skip_backend_info_check):"},{"line_number":433,"context_line":"            LOG.debug("},{"line_number":434,"context_line":"                (\"Ensure shares is being skipped because the %(host)s\u0027s old \""},{"line_number":435,"context_line":"                 \"backend info is the same as its new backend info.\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"48e6dc1a_ec48b2f2","line":432,"range":{"start_line":432,"start_character":50,"end_line":432,"end_character":73},"updated":"2024-08-30 01:16:27.000000000","message":"if skip_backend_info_check is set, we could avoid 413 to 437 altogether?","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b80cf0593b5b2c15091b4abb7435a5cd79ac136a","unresolved":false,"context_lines":[{"line_number":429,"context_line":"            new_backend_info_hash \u003d hashlib.sha1(str("},{"line_number":430,"context_line":"                sorted(new_backend_info.items())).encode(\u0027utf-8\u0027)).hexdigest()"},{"line_number":431,"context_line":"        if ((old_backend_info_hash \u003d\u003d new_backend_info_hash and"},{"line_number":432,"context_line":"                backend_info_implemented) and not skip_backend_info_check):"},{"line_number":433,"context_line":"            LOG.debug("},{"line_number":434,"context_line":"                (\"Ensure shares is being skipped because the %(host)s\u0027s old \""},{"line_number":435,"context_line":"                 \"backend info is the same as its new backend info.\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"8a58b1dd_abeef083","line":432,"range":{"start_line":432,"start_character":50,"end_line":432,"end_character":73},"in_reply_to":"48e6dc1a_ec48b2f2","updated":"2024-08-30 13:15:46.000000000","message":"Done","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"86b4021f491f87eb0755ba1127ada692c4e5d772","unresolved":true,"context_lines":[{"line_number":582,"context_line":"                            \"Unexpected error occurred while updating \""},{"line_number":583,"context_line":"                            \"access rules for snapshot instance %s.\","},{"line_number":584,"context_line":"                            snap_instance[\u0027id\u0027])"},{"line_number":585,"context_line":"            if not backend_provided_status:"},{"line_number":586,"context_line":"                self.db.share_instance_update("},{"line_number":587,"context_line":"                    ctxt, share_instance[\u0027id\u0027],"},{"line_number":588,"context_line":"                    {\u0027status\u0027: constants.STATUS_AVAILABLE}"}],"source_content_type":"text/x-python","patch_set":6,"id":"9406038a_b5f0d201","line":585,"updated":"2024-08-30 10:43:11.000000000","message":"I am struggling to understand, because I would expect checking same variable `update_instances_status` like on Line 478","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"91b7bcecb018d0a487cc032a6c7a14d45a89db2e","unresolved":true,"context_lines":[{"line_number":582,"context_line":"                            \"Unexpected error occurred while updating \""},{"line_number":583,"context_line":"                            \"access rules for snapshot instance %s.\","},{"line_number":584,"context_line":"                            snap_instance[\u0027id\u0027])"},{"line_number":585,"context_line":"            if not backend_provided_status:"},{"line_number":586,"context_line":"                self.db.share_instance_update("},{"line_number":587,"context_line":"                    ctxt, share_instance[\u0027id\u0027],"},{"line_number":588,"context_line":"                    {\u0027status\u0027: constants.STATUS_AVAILABLE}"}],"source_content_type":"text/x-python","patch_set":6,"id":"e8b32755_fafadbd1","line":585,"in_reply_to":"9406038a_b5f0d201","updated":"2024-08-30 11:31:43.000000000","message":"I would say better combine those two, we can avoid it when the share instance status was not updated\n```suggestion\n            if update_instances_status AND not backend_provided_status:\n```","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b80cf0593b5b2c15091b4abb7435a5cd79ac136a","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                            \"Unexpected error occurred while updating \""},{"line_number":583,"context_line":"                            \"access rules for snapshot instance %s.\","},{"line_number":584,"context_line":"                            snap_instance[\u0027id\u0027])"},{"line_number":585,"context_line":"            if not backend_provided_status:"},{"line_number":586,"context_line":"                self.db.share_instance_update("},{"line_number":587,"context_line":"                    ctxt, share_instance[\u0027id\u0027],"},{"line_number":588,"context_line":"                    {\u0027status\u0027: constants.STATUS_AVAILABLE}"}],"source_content_type":"text/x-python","patch_set":6,"id":"13d89543_9df88943","line":585,"in_reply_to":"e8b32755_fafadbd1","updated":"2024-08-30 13:15:46.000000000","message":"Done, and I moved getting the CONF option here, otherwise it wouldn\u0027t be valid in case the service was restarted. In that case, we\u0027d always update the shares status to ensuring and we would respect the admins config option value.","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"}],"manila/share/rpcapi.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"7211c2f14f835dfe48202384a5a25c47bc575159","unresolved":true,"context_lines":[{"line_number":543,"context_line":"                                 metadata\u003dmetadata)"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"    def ensure_shares(self, context, host, update_instances_status\u003dTrue):"},{"line_number":546,"context_line":"        host \u003d utils.extract_host(host)"},{"line_number":547,"context_line":"        call_context \u003d self.client.prepare(server\u003dhost, version\u003d\u00271.29\u0027)"},{"line_number":548,"context_line":"        return call_context.cast("},{"line_number":549,"context_line":"            context,"}],"source_content_type":"text/x-python","patch_set":6,"id":"a11ed2fb_ea077338","line":546,"range":{"start_line":546,"start_character":8,"end_line":546,"end_character":39},"updated":"2024-08-30 03:27:43.000000000","message":"maybe we no need this line.\nthe format of host is already \u0027HostA@BackendB\u0027. on need to extract_host again.\n\nadmin get host from manila service-list. the host format is \u0027HostA@BackendB\u0027. of course, it not go wrong with this line.","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"e24ec94cb88f44f7b4dca44d249e782204cdbd51","unresolved":false,"context_lines":[{"line_number":543,"context_line":"                                 metadata\u003dmetadata)"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"    def ensure_shares(self, context, host, update_instances_status\u003dTrue):"},{"line_number":546,"context_line":"        host \u003d utils.extract_host(host)"},{"line_number":547,"context_line":"        call_context \u003d self.client.prepare(server\u003dhost, version\u003d\u00271.29\u0027)"},{"line_number":548,"context_line":"        return call_context.cast("},{"line_number":549,"context_line":"            context,"}],"source_content_type":"text/x-python","patch_set":6,"id":"6025d57b_130dcff6","line":546,"range":{"start_line":546,"start_character":8,"end_line":546,"end_character":39},"in_reply_to":"87571bd3_06334361","updated":"2024-09-03 08:29:17.000000000","message":"Done","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b80cf0593b5b2c15091b4abb7435a5cd79ac136a","unresolved":true,"context_lines":[{"line_number":543,"context_line":"                                 metadata\u003dmetadata)"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"    def ensure_shares(self, context, host, update_instances_status\u003dTrue):"},{"line_number":546,"context_line":"        host \u003d utils.extract_host(host)"},{"line_number":547,"context_line":"        call_context \u003d self.client.prepare(server\u003dhost, version\u003d\u00271.29\u0027)"},{"line_number":548,"context_line":"        return call_context.cast("},{"line_number":549,"context_line":"            context,"}],"source_content_type":"text/x-python","patch_set":6,"id":"87571bd3_06334361","line":546,"range":{"start_line":546,"start_character":8,"end_line":546,"end_character":39},"in_reply_to":"a11ed2fb_ea077338","updated":"2024-08-30 13:15:46.000000000","message":"yep, that is correct. I only added it to maintain consistency between all of the other methods doing it. I believe it would be harmless to keep it here and add this extra layer of checking. Is that okay?","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"128b6bc1d9c5f7df735f7662e3ecfd16b2525d4a","unresolved":true,"context_lines":[{"line_number":89,"context_line":"            restore_backup() methods"},{"line_number":90,"context_line":"        1.27 - Update delete_share_instance() and delete_snapshot() methods"},{"line_number":91,"context_line":"        1.28 - Add update_share_from_metadata() method"},{"line_number":92,"context_line":"        1.29 - Add ensure_shares()"},{"line_number":93,"context_line":"    \"\"\""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    BASE_RPC_API_VERSION \u003d \u00271.0\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"a9909266_6f8abe0e","line":92,"range":{"start_line":92,"start_character":19,"end_line":92,"end_character":32},"updated":"2024-09-03 23:02:02.000000000","message":"the method name is `ensure_driver_resources`","commit_id":"101becf9b4e7326d1079bdba43c7d5bc537f5737"}],"releasenotes/notes/add-ensure-shares-api-9ac10877a99ab0c5.yaml":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"183aa9ce767fa47c921a89eb268f4b64a913fb1e","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    shares\u0027 export location without necessarily restarting the shares manager"},{"line_number":7,"context_line":"    service."},{"line_number":8,"context_line":"    Additionally, a new configuration option named"},{"line_number":9,"context_line":"    `update_shares_status_on_ensure` is now avaialble to help OpenStack"},{"line_number":10,"context_line":"    administrators determine whether the shares\u0027 status should be modified"},{"line_number":11,"context_line":"    during the ensure shares procedure or not."},{"line_number":12,"context_line":"upgrade:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"978f84be_20208dcd","line":9,"range":{"start_line":9,"start_character":44,"end_line":9,"end_character":53},"updated":"2024-08-29 15:12:08.000000000","message":"nit: available","commit_id":"e21d75fa7cc101fe46015185bf465327e815972a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"cf8862286daff15a82ec1dcaacb910d74efbb72e","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    shares\u0027 export location without necessarily restarting the shares manager"},{"line_number":7,"context_line":"    service."},{"line_number":8,"context_line":"    Additionally, a new configuration option named"},{"line_number":9,"context_line":"    `update_shares_status_on_ensure` is now avaialble to help OpenStack"},{"line_number":10,"context_line":"    administrators determine whether the shares\u0027 status should be modified"},{"line_number":11,"context_line":"    during the ensure shares procedure or not."},{"line_number":12,"context_line":"upgrade:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"8f32e599_f0f08552","line":9,"range":{"start_line":9,"start_character":44,"end_line":9,"end_character":53},"in_reply_to":"978f84be_20208dcd","updated":"2024-08-29 22:00:18.000000000","message":"Done","commit_id":"e21d75fa7cc101fe46015185bf465327e815972a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1b278d1605cf3f144df05f10d93a567e4258650a","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new API to start the ensure shares procedure for Manila has been added."},{"line_number":5,"context_line":"    Through this API, OpenStack administrators will be able to recalculate the"},{"line_number":6,"context_line":"    shares\u0027 export location without necessarily restarting the shares manager"},{"line_number":7,"context_line":"    service."},{"line_number":8,"context_line":"    Additionally, a new configuration option named"},{"line_number":9,"context_line":"    `update_shares_status_on_ensure` is now available to help OpenStack"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"1a2318b3_5be16ed4","line":6,"range":{"start_line":6,"start_character":36,"end_line":6,"end_character":47},"updated":"2024-08-30 01:16:27.000000000","message":"s/necessarily//","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b80cf0593b5b2c15091b4abb7435a5cd79ac136a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new API to start the ensure shares procedure for Manila has been added."},{"line_number":5,"context_line":"    Through this API, OpenStack administrators will be able to recalculate the"},{"line_number":6,"context_line":"    shares\u0027 export location without necessarily restarting the shares manager"},{"line_number":7,"context_line":"    service."},{"line_number":8,"context_line":"    Additionally, a new configuration option named"},{"line_number":9,"context_line":"    `update_shares_status_on_ensure` is now available to help OpenStack"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"157f7279_4d8a5cbd","line":6,"range":{"start_line":6,"start_character":36,"end_line":6,"end_character":47},"in_reply_to":"1a2318b3_5be16ed4","updated":"2024-08-30 13:15:46.000000000","message":"Done","commit_id":"6ffe7543d34952d4156b3233a121802c7d3ba2dd"}]}
