)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4d940f858452b7ec35f386bb8050e281eaf48f1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"48aaa270_b1325d69","updated":"2024-02-24 09:43:29.000000000","message":"recheck","commit_id":"c87e178892c7fe280219c18f7c077ba674953ba0"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1dacdb4b_5fc42270","updated":"2024-04-15 09:20:24.000000000","message":"thanks for your change, Kiran Pawar\nplease see my commonts inline.","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b9e1b082_08e3f7df","updated":"2024-04-17 09:39:00.000000000","message":"hi, Kiran Pawar, i test it in my devstack env. found some problems.\ni have place comments inlines.","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"f705a6393992da42aaa8c2898277e7ea53ea8e4d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f529b2b9_85b6ab07","updated":"2024-04-18 01:10:15.000000000","message":"LGTM， you could test url with encryption. if work fine +2 is ok. wait other reviewer.","commit_id":"ccb821df1db3fb493c04ed18e6f25ccf8fa41b92"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"bf6fe267_a1f4bb79","updated":"2024-04-22 02:11:38.000000000","message":"hi, Kiran Pawar. i test in my env again. some comments inlines.","commit_id":"0bccc970c6c9b5c50e344724bfa560737754d745"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8ee0bf88980403cd65fe632a1f78a6f158ead7dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"35b1ee46_9e09c395","updated":"2024-04-26 01:38:46.000000000","message":"thanks for your change Kiran Pawar. just noe nit. LGTM.","commit_id":"77ceb26699cbb16326d5b64adde9f96b05aee322"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"ded4e3502e9a0bed67b0b53502bebc1460cd28e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e1990e8e_e999f525","updated":"2024-05-06 08:07:31.000000000","message":"Also, I didn\u0027t find any key validation against Cipher. Is it handled any other place which is not part of PR?","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"b0a84e76f31ea642c65a5bcc130cd44c6164fdf8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"dea87ea6_d39ed08a","updated":"2024-05-06 03:08:59.000000000","message":"code looks good to me now. thanks.","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b2d66cd24989bfb6df0b96e3bf36d8d5b3b4b350","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"7b54d092_3e7894a6","updated":"2024-04-29 16:06:53.000000000","message":"recheck","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"d8f5f66746ba4d07a27a1e04aff55149bfe8d5c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"eb0640f7_c23765a7","updated":"2024-05-01 11:05:38.000000000","message":"recheck","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":33807,"name":"Jacob Wang","email":"jacob_wang1@dell.com","username":"jacob0522"},"change_message_id":"3379431fc548af8c93a6bea7c6e0c830d0df15f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"44f5fcd5_e4eed074","updated":"2024-05-07 08:25:01.000000000","message":"run-DellEMC Unity CI","commit_id":"c0bc697103819cb4263577f0c075cb853e84e39b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"585beaf5254de5a5fbede5875cceb62dda8b5654","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"489714d0_88e92928","updated":"2024-05-08 01:25:59.000000000","message":"recheck","commit_id":"e3f38184a35405ec1d83a39616db592df852fb96"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"fc772fa021bbf2d75488f93c74a90b1fe2ebb19b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"3187ea59_a1ad5e4d","updated":"2024-10-24 01:52:00.000000000","message":"hi, thanks for your change, the main code LGTM. \nUpdate the api documentation about share type with encryption when you have time. Finally, we need to add a releasenote","commit_id":"11d11d4493ba400de22b280e877111928d37cb0f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"d3c8b5c657a26d700936b9de168bac728317e485","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"18a1c44c_c50b9692","updated":"2025-01-20 07:02:25.000000000","message":"manila_tempest_tests/tests/api/test_rules.py\", line 177, in test_update_access_rule\nDetails: {\u0027code\u0027: 404, \u0027message\u0027: \u0027The resource could not be found.\u0027}\n\nI found that this patch and other patches should be due to the above error causing the zuul check to fail. Looks like we need to analyze this.","commit_id":"36fd209b12735e651a19f6b3ad698cccc779a23e"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"a1b0aa36944327ab1f638e2d4acb85ffad7e765d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"307b0116_34810033","updated":"2025-01-20 06:54:59.000000000","message":"recheck","commit_id":"36fd209b12735e651a19f6b3ad698cccc779a23e"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"e9aaa0c6c84df7c496a2b2b8eff7c1da1a419dcc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"454af933_6b508f45","in_reply_to":"18a1c44c_c50b9692","updated":"2025-01-20 07:35:27.000000000","message":"in error log, manila tempest test use \u0027x-openstack-manila-api-version\u0027: \u00272.87\u0027 in header.  But we already set max_api_microversion\u003d2.88 in manila tempest test..\nThat\u0027s weird. Why is the version number wrong","commit_id":"36fd209b12735e651a19f6b3ad698cccc779a23e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"834484e5aaaeb8359075517e3546b554535335db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"a7e831ca_9ea03255","in_reply_to":"18a1c44c_c50b9692","updated":"2025-01-20 07:14:02.000000000","message":"the test runs with 2.87 microversion, not sure why. Might be devstack installed with 2024.2 instead of master branch.","commit_id":"36fd209b12735e651a19f6b3ad698cccc779a23e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c5849ba2b970e85d8f29a9824c4a4a2ff1201a7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"a1ad1b57_14993e34","updated":"2025-07-10 21:52:56.000000000","message":"@kinpaa@gmail.com: Were you planning to abandon this change?","commit_id":"00c2f6c5ffc8eb7273a789c096d28a4b2069e161"}],"manila/api/v2/router.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":660,"context_line":""},{"line_number":661,"context_line":"        self.resources[\"encryption\"] \u003d ("},{"line_number":662,"context_line":"            share_types_encryption.create_resource())"},{"line_number":663,"context_line":"        mapper.resource(\"encryption\", \"encryption\","},{"line_number":664,"context_line":"                        controller\u003dself.resources[\"encryption\"],"},{"line_number":665,"context_line":"                        parent_resource\u003ddict(member_name\u003d\"type\","},{"line_number":666,"context_line":"                                             collection_name\u003d\"types\"))"}],"source_content_type":"text/x-python","patch_set":4,"id":"880df106_7f8a75ea","line":666,"range":{"start_line":663,"start_character":8,"end_line":666,"end_character":70},"updated":"2024-04-15 09:20:24.000000000","message":"mapper.resource(\"encryption\", \"encryption\",\n                    controller\u003dself.resources[\"encryption\"],\n                    collection\u003d{\"encryption\": \"GET\"},\n                    parent_resource\u003ddict(member_name\u003d\"type\",\n                                         collection_name\u003d\"types\"))\n                                         \nto support \nGET \u0027/types/encryption\u0027\nto get all types with encryption info.\n\nor we need to add \"encryption\": \"GET\" to line 473   ????\nand add new function in api/v2/share_types.py  def encryption()","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":660,"context_line":""},{"line_number":661,"context_line":"        self.resources[\"encryption\"] \u003d ("},{"line_number":662,"context_line":"            share_types_encryption.create_resource())"},{"line_number":663,"context_line":"        mapper.resource(\"encryption\", \"encryption\","},{"line_number":664,"context_line":"                        controller\u003dself.resources[\"encryption\"],"},{"line_number":665,"context_line":"                        parent_resource\u003ddict(member_name\u003d\"type\","},{"line_number":666,"context_line":"                                             collection_name\u003d\"types\"))"}],"source_content_type":"text/x-python","patch_set":4,"id":"4b18312c_603745fc","line":666,"range":{"start_line":663,"start_character":8,"end_line":666,"end_character":70},"in_reply_to":"880df106_7f8a75ea","updated":"2024-04-16 16:32:52.000000000","message":"Done","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":661,"context_line":"        self.resources[\"encryption\"] \u003d ("},{"line_number":662,"context_line":"            share_types_encryption.create_resource())"},{"line_number":663,"context_line":"        mapper.resource(\"encryption\", \"encryption\","},{"line_number":664,"context_line":"                        collection\u003d{\"encryption\": \"GET\"},"},{"line_number":665,"context_line":"                        controller\u003dself.resources[\"encryption\"],"},{"line_number":666,"context_line":"                        parent_resource\u003ddict(member_name\u003d\"type\","},{"line_number":667,"context_line":"                                             collection_name\u003d\"types\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"86805c1c_5aa20163","line":664,"range":{"start_line":664,"start_character":23,"end_line":664,"end_character":57},"updated":"2024-04-17 09:39:00.000000000","message":"I have tested this line, it is invalid, just delete it","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ace9ca612b6b00225643a4136e9235701a92b9d","unresolved":false,"context_lines":[{"line_number":661,"context_line":"        self.resources[\"encryption\"] \u003d ("},{"line_number":662,"context_line":"            share_types_encryption.create_resource())"},{"line_number":663,"context_line":"        mapper.resource(\"encryption\", \"encryption\","},{"line_number":664,"context_line":"                        collection\u003d{\"encryption\": \"GET\"},"},{"line_number":665,"context_line":"                        controller\u003dself.resources[\"encryption\"],"},{"line_number":666,"context_line":"                        parent_resource\u003ddict(member_name\u003d\"type\","},{"line_number":667,"context_line":"                                             collection_name\u003d\"types\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"852a7b58_e495c08e","line":664,"range":{"start_line":664,"start_character":23,"end_line":664,"end_character":57},"in_reply_to":"86805c1c_5aa20163","updated":"2024-04-17 16:44:48.000000000","message":"deleted","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":658,"context_line":"        mapper.resource(\"resource-lock\", \"resource-locks\","},{"line_number":659,"context_line":"                        controller\u003dself.resources[\"resource_locks\"])"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"        self.resources[\"encryption\"] \u003d ("},{"line_number":662,"context_line":"            share_types_encryption.create_resource())"},{"line_number":663,"context_line":"        mapper.resource(\"encryption\", \"encryption\","},{"line_number":664,"context_line":"                        collection\u003d{\"encryption\": \"GET\"},"},{"line_number":665,"context_line":"                        controller\u003dself.resources[\"encryption\"],"},{"line_number":666,"context_line":"                        parent_resource\u003ddict(member_name\u003d\"type\","},{"line_number":667,"context_line":"                                             collection_name\u003d\"types\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"0e4f6e18_c72e7921","line":667,"range":{"start_line":661,"start_character":8,"end_line":667,"end_character":70},"updated":"2024-04-17 09:39:00.000000000","message":"In general, member_name and collection_name cannot be the same. so\n\n    self.resources[\"encryptions\"] \u003d (\n            share_types_encryption.create_resource())\n        mapper.resource(\"encryption\", \"encryptions\",\n                        controller\u003dself.resources[\"encryptions\"],\n                        parent_resource\u003ddict(member_name\u003d\"type\",\n                                             collection_name\u003d\"types\"))","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ace9ca612b6b00225643a4136e9235701a92b9d","unresolved":true,"context_lines":[{"line_number":658,"context_line":"        mapper.resource(\"resource-lock\", \"resource-locks\","},{"line_number":659,"context_line":"                        controller\u003dself.resources[\"resource_locks\"])"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"        self.resources[\"encryption\"] \u003d ("},{"line_number":662,"context_line":"            share_types_encryption.create_resource())"},{"line_number":663,"context_line":"        mapper.resource(\"encryption\", \"encryption\","},{"line_number":664,"context_line":"                        collection\u003d{\"encryption\": \"GET\"},"},{"line_number":665,"context_line":"                        controller\u003dself.resources[\"encryption\"],"},{"line_number":666,"context_line":"                        parent_resource\u003ddict(member_name\u003d\"type\","},{"line_number":667,"context_line":"                                             collection_name\u003d\"types\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1fb51f9e_2f22ad3b","line":667,"range":{"start_line":661,"start_character":8,"end_line":667,"end_character":70},"in_reply_to":"0e4f6e18_c72e7921","updated":"2024-04-17 16:44:48.000000000","message":"I am not sure encryption or encryptions. Share type can have multiple extra specs but only one encryption and so I prefer to keep encryption. It is also as per doc https://specs.openstack.org/openstack/manila-specs/specs/dalmatian/share_encryption.html\n\nIf you still think otherwise, let me know and I will update to encryptions.","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"f705a6393992da42aaa8c2898277e7ea53ea8e4d","unresolved":false,"context_lines":[{"line_number":658,"context_line":"        mapper.resource(\"resource-lock\", \"resource-locks\","},{"line_number":659,"context_line":"                        controller\u003dself.resources[\"resource_locks\"])"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"        self.resources[\"encryption\"] \u003d ("},{"line_number":662,"context_line":"            share_types_encryption.create_resource())"},{"line_number":663,"context_line":"        mapper.resource(\"encryption\", \"encryption\","},{"line_number":664,"context_line":"                        collection\u003d{\"encryption\": \"GET\"},"},{"line_number":665,"context_line":"                        controller\u003dself.resources[\"encryption\"],"},{"line_number":666,"context_line":"                        parent_resource\u003ddict(member_name\u003d\"type\","},{"line_number":667,"context_line":"                                             collection_name\u003d\"types\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"8297fced_1ca47b2a","line":667,"range":{"start_line":661,"start_character":8,"end_line":667,"end_character":70},"in_reply_to":"1fb51f9e_2f22ad3b","updated":"2024-04-18 01:10:15.000000000","message":"you cloud test all url with encryption in your test env.\nif work fine, i am ok.  here just for recommend.","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":true,"context_lines":[{"line_number":660,"context_line":""},{"line_number":661,"context_line":"        self.resources[\"encryption\"] \u003d ("},{"line_number":662,"context_line":"            share_types_encryption.create_resource())"},{"line_number":663,"context_line":"        mapper.resource(\"encryption\", \"encryption\","},{"line_number":664,"context_line":"                        controller\u003dself.resources[\"encryption\"],"},{"line_number":665,"context_line":"                        parent_resource\u003ddict(member_name\u003d\"type\","},{"line_number":666,"context_line":"                                             collection_name\u003d\"types\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"13dbd498_9f9b59b3","line":666,"range":{"start_line":663,"start_character":8,"end_line":666,"end_character":70},"updated":"2024-04-22 02:11:38.000000000","message":"add new collection function to support\nDELETE types/{share_type_id}/encryption\nPUT    types/{share_type_id}/encryption\n\n    mapper.resource(\"encryption\", \"encryption\",\n                        controller\u003dself.resources[\"encryption\"],\n                        collection\u003d{\"delete_encryption\": \"DELETE\",\n                                    \"update_encryption\": \"PUT\"},\n                        parent_resource\u003ddict(member_name\u003d\"type\",\n                                             collection_name\u003d\"types\"))","commit_id":"0bccc970c6c9b5c50e344724bfa560737754d745"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"f8ae09aabeb99444b48e444ba38c0658b2af3d1f","unresolved":false,"context_lines":[{"line_number":660,"context_line":""},{"line_number":661,"context_line":"        self.resources[\"encryption\"] \u003d ("},{"line_number":662,"context_line":"            share_types_encryption.create_resource())"},{"line_number":663,"context_line":"        mapper.resource(\"encryption\", \"encryption\","},{"line_number":664,"context_line":"                        controller\u003dself.resources[\"encryption\"],"},{"line_number":665,"context_line":"                        parent_resource\u003ddict(member_name\u003d\"type\","},{"line_number":666,"context_line":"                                             collection_name\u003d\"types\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"07652ffd_1d63b72d","line":666,"range":{"start_line":663,"start_character":8,"end_line":666,"end_character":70},"in_reply_to":"13dbd498_9f9b59b3","updated":"2024-04-22 16:59:30.000000000","message":"Done","commit_id":"0bccc970c6c9b5c50e344724bfa560737754d745"}],"manila/api/v2/share_types.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":true,"context_lines":[{"line_number":75,"context_line":"        types_encryptions \u003d []"},{"line_number":76,"context_line":"        add_encryptions_info \u003d (req.api_version_request \u003e\u003d"},{"line_number":77,"context_line":"                                api_version.APIVersionRequest(\"2.86\"))"},{"line_number":78,"context_line":"        encryption_info_asked \u003d req.params.get(\u0027encryption\u0027, {})"},{"line_number":79,"context_line":"        if add_encryptions_info and encryption_info_asked:"},{"line_number":80,"context_line":"            for share_type in limited_types:"},{"line_number":81,"context_line":"                encryption \u003d share_types.get_share_type_encryption("}],"source_content_type":"text/x-python","patch_set":7,"id":"dab2f4e3_1b5c344a","line":78,"range":{"start_line":78,"start_character":8,"end_line":78,"end_character":64},"updated":"2024-04-22 02:11:38.000000000","message":"What type of encryption do you want? Boolean or string?\nI think we could write it better like this:\n\n    search_opts \u003d {}\n    search_opts.update(req.GET)\n    with_encryption \u003d False\n    if \u0027with_encryption\u0027 in search_opts:\n        with_encryption \u003d utils.get_bool_from_api_params(\n                \u0027with_encryption\u0027, search_opts)","commit_id":"0bccc970c6c9b5c50e344724bfa560737754d745"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"f8ae09aabeb99444b48e444ba38c0658b2af3d1f","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        types_encryptions \u003d []"},{"line_number":76,"context_line":"        add_encryptions_info \u003d (req.api_version_request \u003e\u003d"},{"line_number":77,"context_line":"                                api_version.APIVersionRequest(\"2.86\"))"},{"line_number":78,"context_line":"        encryption_info_asked \u003d req.params.get(\u0027encryption\u0027, {})"},{"line_number":79,"context_line":"        if add_encryptions_info and encryption_info_asked:"},{"line_number":80,"context_line":"            for share_type in limited_types:"},{"line_number":81,"context_line":"                encryption \u003d share_types.get_share_type_encryption("}],"source_content_type":"text/x-python","patch_set":7,"id":"dfef6ec3_00ec26ed","line":78,"range":{"start_line":78,"start_character":8,"end_line":78,"end_character":64},"in_reply_to":"dab2f4e3_1b5c344a","updated":"2024-04-22 16:59:30.000000000","message":"Done","commit_id":"0bccc970c6c9b5c50e344724bfa560737754d745"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"827982e74f1024137e24c1ebca60c966998962ea","unresolved":true,"context_lines":[{"line_number":89,"context_line":"            for share_type in limited_types:"},{"line_number":90,"context_line":"                encryption \u003d share_types.get_share_type_encryption("},{"line_number":91,"context_line":"                    context, share_type[\u0027id\u0027])"},{"line_number":92,"context_line":"                share_type.update({\u0027encryption\u0027: encryption})"},{"line_number":93,"context_line":"                types_encryptions.append(share_type)"},{"line_number":94,"context_line":"        if types_encryptions:"},{"line_number":95,"context_line":"            limited_types \u003d types_encryptions"}],"source_content_type":"text/x-python","patch_set":10,"id":"81b92762_eb05beee","line":92,"updated":"2024-04-28 05:39:40.000000000","message":"Encryption details are share over wire. Any mechanism in place so that MOM(i.e. man in middle) can\u0027t view this information.","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"d8f5f66746ba4d07a27a1e04aff55149bfe8d5c5","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            for share_type in limited_types:"},{"line_number":90,"context_line":"                encryption \u003d share_types.get_share_type_encryption("},{"line_number":91,"context_line":"                    context, share_type[\u0027id\u0027])"},{"line_number":92,"context_line":"                share_type.update({\u0027encryption\u0027: encryption})"},{"line_number":93,"context_line":"                types_encryptions.append(share_type)"},{"line_number":94,"context_line":"        if types_encryptions:"},{"line_number":95,"context_line":"            limited_types \u003d types_encryptions"}],"source_content_type":"text/x-python","patch_set":10,"id":"b9045466_ea2ca479","line":92,"in_reply_to":"50e0b55c_4abbae7d","updated":"2024-05-01 11:05:38.000000000","message":"Done","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b2d66cd24989bfb6df0b96e3bf36d8d5b3b4b350","unresolved":true,"context_lines":[{"line_number":89,"context_line":"            for share_type in limited_types:"},{"line_number":90,"context_line":"                encryption \u003d share_types.get_share_type_encryption("},{"line_number":91,"context_line":"                    context, share_type[\u0027id\u0027])"},{"line_number":92,"context_line":"                share_type.update({\u0027encryption\u0027: encryption})"},{"line_number":93,"context_line":"                types_encryptions.append(share_type)"},{"line_number":94,"context_line":"        if types_encryptions:"},{"line_number":95,"context_line":"            limited_types \u003d types_encryptions"}],"source_content_type":"text/x-python","patch_set":10,"id":"50e0b55c_4abbae7d","line":92,"in_reply_to":"81b92762_eb05beee","updated":"2024-04-29 16:06:53.000000000","message":"we are not showing encryption key to user, the metadata used to create encryption should be ok to be seen by user.","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"c908421bcb2e564450510b9e5466f60d727365af","unresolved":true,"context_lines":[{"line_number":212,"context_line":"                msg \u003d _(\"Use 2.86 or greater microversion to be able \""},{"line_number":213,"context_line":"                        \"to set \u0027encryption\u0027 in share type.\")"},{"line_number":214,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":215,"context_line":"            share_type.check_encryption_key_names(encryption.keys())"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        is_public \u003d share_type.get("},{"line_number":218,"context_line":"            \u0027os-share-type-access:is_public\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"38b20b60_465365d4","line":215,"range":{"start_line":215,"start_character":12,"end_line":215,"end_character":22},"updated":"2024-05-07 02:44:31.000000000","message":"share_types","commit_id":"c0bc697103819cb4263577f0c075cb853e84e39b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5917238075b02ed6d5b3edaca018a997837284cc","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                msg \u003d _(\"Use 2.86 or greater microversion to be able \""},{"line_number":213,"context_line":"                        \"to set \u0027encryption\u0027 in share type.\")"},{"line_number":214,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":215,"context_line":"            share_type.check_encryption_key_names(encryption.keys())"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        is_public \u003d share_type.get("},{"line_number":218,"context_line":"            \u0027os-share-type-access:is_public\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"621bd631_24f60a40","line":215,"range":{"start_line":215,"start_character":12,"end_line":215,"end_character":22},"in_reply_to":"38b20b60_465365d4","updated":"2024-05-07 08:56:49.000000000","message":"Done","commit_id":"c0bc697103819cb4263577f0c075cb853e84e39b"}],"manila/api/v2/share_types_encryption.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from manila.share import share_types"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"MIN_SUPPORTED_API_VERSION \u003d \u00272.86\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class ShareTypeEncryptionController(wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":4,"id":"d128e5ff_11d9a931","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":25},"updated":"2024-04-15 09:20:24.000000000","message":"mybe SHARE_TYPE_ENCRYPTION_SUPPORT could be better.","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from manila.share import share_types"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"MIN_SUPPORTED_API_VERSION \u003d \u00272.86\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class ShareTypeEncryptionController(wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fc4523a2_a8aff7f1","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":25},"in_reply_to":"d128e5ff_11d9a931","updated":"2024-04-16 16:32:52.000000000","message":"Its local to file and helps to keep line within limit of 80.","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":65,"context_line":"        if self._get_share_type_encryption(context, type_id):"},{"line_number":66,"context_line":"            msg \u003d _(\u0027Cannot create encryption. Already Exist.\u0027)"},{"line_number":67,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        encryption_specs \u003d body[\u0027encryption\u0027]"},{"line_number":70,"context_line":"        self._check_key_names(encryption_specs.keys())"},{"line_number":71,"context_line":"        encryption \u003d db.share_type_encryption_update_or_create("}],"source_content_type":"text/x-python","patch_set":4,"id":"6967acd5_7b40409c","line":68,"updated":"2024-04-15 09:20:24.000000000","message":"here also need to check \n\n        if self._encrypted_type_in_use(context, type_id):\n            msg \u003d _(\u0027Cannot create encryption. Share type in use.\u0027)\n            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        if self._get_share_type_encryption(context, type_id):"},{"line_number":66,"context_line":"            msg \u003d _(\u0027Cannot create encryption. Already Exist.\u0027)"},{"line_number":67,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        encryption_specs \u003d body[\u0027encryption\u0027]"},{"line_number":70,"context_line":"        self._check_key_names(encryption_specs.keys())"},{"line_number":71,"context_line":"        encryption \u003d db.share_type_encryption_update_or_create("}],"source_content_type":"text/x-python","patch_set":4,"id":"c295e49e_80d8b00f","line":68,"in_reply_to":"6967acd5_7b40409c","updated":"2024-04-16 16:32:52.000000000","message":"why do we need to check encryption type in use, just having encryption type for given share type is enough to raise error for create API.","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        if self._get_share_type_encryption(context, type_id):"},{"line_number":66,"context_line":"            msg \u003d _(\u0027Cannot create encryption. Already Exist.\u0027)"},{"line_number":67,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        encryption_specs \u003d body[\u0027encryption\u0027]"},{"line_number":70,"context_line":"        self._check_key_names(encryption_specs.keys())"},{"line_number":71,"context_line":"        encryption \u003d db.share_type_encryption_update_or_create("}],"source_content_type":"text/x-python","patch_set":4,"id":"a783a3b2_3baf9163","line":68,"in_reply_to":"c295e49e_80d8b00f","updated":"2024-04-17 09:39:00.000000000","message":"i thought about it again, and it really doesn\u0027t need to check here.  because binding encryption to share type doesn\u0027t affect the previously unencrypted share","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":89,"context_line":"            msg \u003d _(\u0027Invalid share type encryption id\u0027)"},{"line_number":90,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        self._check_type(context, type_id)"},{"line_number":93,"context_line":"        if self._encrypted_type_in_use(context, type_id):"},{"line_number":94,"context_line":"            msg \u003d _(\u0027Cannot update encryption. Share type in use.\u0027)"},{"line_number":95,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"c52d57bb_e08fe56c","line":92,"range":{"start_line":92,"start_character":8,"end_line":92,"end_character":42},"updated":"2024-04-15 09:20:24.000000000","message":"move this to line 86,\nwe need check type exist first, then check type\u0027s encryption info.","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            msg \u003d _(\u0027Invalid share type encryption id\u0027)"},{"line_number":90,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        self._check_type(context, type_id)"},{"line_number":93,"context_line":"        if self._encrypted_type_in_use(context, type_id):"},{"line_number":94,"context_line":"            msg \u003d _(\u0027Cannot update encryption. Share type in use.\u0027)"},{"line_number":95,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"4f4b5e95_5d71d5f0","line":92,"range":{"start_line":92,"start_character":8,"end_line":92,"end_character":42},"in_reply_to":"c52d57bb_e08fe56c","updated":"2024-04-16 16:32:52.000000000","message":"Done","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":104,"context_line":"    @wsgi.Controller.authorize"},{"line_number":105,"context_line":"    def index(self, req, type_id):"},{"line_number":106,"context_line":"        \"\"\"Returns the list of encryption types for share type.\"\"\""},{"line_number":107,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":108,"context_line":"        self._check_type(context, type_id)"},{"line_number":109,"context_line":"        encryption \u003d self._get_share_type_encryption(context, type_id)"},{"line_number":110,"context_line":"        return {\"encryption\": encryption}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":113,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb56d4c_07798e1d","line":110,"range":{"start_line":105,"start_character":4,"end_line":110,"end_character":41},"updated":"2024-04-15 09:20:24.000000000","message":"I think this should list all share types with encrypted information, not the encryption information of a share type, so you cannot specify type_id here.\nThis should match:\nopenstack share type list [--encryption-type]\nGET /v2/types/encryption\nrouter.py also need to add collection\u003d{\"encryption\": \"GET\"}\n\nshould return \n{\u0027share_type_id1\u0027:{encryption_dict},\u0027share_type_id2\u0027:{encryption_dict}}\n\nneed add new api in db/api.py to get all encyption info from encyption table.","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":104,"context_line":"    @wsgi.Controller.authorize"},{"line_number":105,"context_line":"    def index(self, req, type_id):"},{"line_number":106,"context_line":"        \"\"\"Returns the list of encryption types for share type.\"\"\""},{"line_number":107,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":108,"context_line":"        self._check_type(context, type_id)"},{"line_number":109,"context_line":"        encryption \u003d self._get_share_type_encryption(context, type_id)"},{"line_number":110,"context_line":"        return {\"encryption\": encryption}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":113,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a40c81f_7231811f","line":110,"range":{"start_line":105,"start_character":4,"end_line":110,"end_character":41},"in_reply_to":"4256488b_e7da442c","updated":"2024-04-17 09:39:00.000000000","message":"What you said is also a way, and I think it is OK. Add encryption information for each type based on the original share type list.","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":true,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":104,"context_line":"    @wsgi.Controller.authorize"},{"line_number":105,"context_line":"    def index(self, req, type_id):"},{"line_number":106,"context_line":"        \"\"\"Returns the list of encryption types for share type.\"\"\""},{"line_number":107,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":108,"context_line":"        self._check_type(context, type_id)"},{"line_number":109,"context_line":"        encryption \u003d self._get_share_type_encryption(context, type_id)"},{"line_number":110,"context_line":"        return {\"encryption\": encryption}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":113,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":4,"id":"4256488b_e7da442c","line":110,"range":{"start_line":105,"start_character":4,"end_line":110,"end_character":41},"in_reply_to":"bfb56d4c_07798e1d","updated":"2024-04-16 16:32:52.000000000","message":"I was under impression..\nopenstack share type list [--encryption-type]\ntriggered from manilaclient this command first get the list of share types and then query encryption information of each share type and return updated share types list to end user. \n\nBut as you said, then openstack share type list and openstack share type list --encryption-type will have different output list","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":113,"context_line":"    @wsgi.Controller.authorize"},{"line_number":114,"context_line":"    def show(self, req, type_id, id):"},{"line_number":115,"context_line":"        \"\"\"Return a share type encryption item.\"\"\""},{"line_number":116,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":117,"context_line":"        self._check_type(context, type_id)"},{"line_number":118,"context_line":"        encryption \u003d self._get_share_type_encryption(context, type_id)"},{"line_number":119,"context_line":"        if id not in encryption.values():"},{"line_number":120,"context_line":"            msg \u003d _(\u0027Invalid share type encryption id\u0027)"},{"line_number":121,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":122,"context_line":"        return {\"encryption\": encryption}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":125,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":4,"id":"db4e0547_0c08f006","line":122,"range":{"start_line":115,"start_character":8,"end_line":122,"end_character":41},"updated":"2024-04-15 09:20:24.000000000","message":"A share type has a maximum of one encryption information. If you want to query the encryption information of a share type, you do not need to specify the encryption_id, this should match:\nopenstack share type show [--encryption-type] \u003cshare-type\u003e\nGET /v2/types/{share_type_id}/encryption\n\n    def show(self, req, type_id):\n        \"\"\"Return a share type encryption item.\"\"\"\n        context \u003d req.environ[\u0027manila.context\u0027]\n        self._check_type(context, type_id)\n        encryption \u003d self._get_share_type_encryption(context, type_id)\n        return {\"encryption\": encryption}","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":113,"context_line":"    @wsgi.Controller.authorize"},{"line_number":114,"context_line":"    def show(self, req, type_id, id):"},{"line_number":115,"context_line":"        \"\"\"Return a share type encryption item.\"\"\""},{"line_number":116,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":117,"context_line":"        self._check_type(context, type_id)"},{"line_number":118,"context_line":"        encryption \u003d self._get_share_type_encryption(context, type_id)"},{"line_number":119,"context_line":"        if id not in encryption.values():"},{"line_number":120,"context_line":"            msg \u003d _(\u0027Invalid share type encryption id\u0027)"},{"line_number":121,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":122,"context_line":"        return {\"encryption\": encryption}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":125,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":4,"id":"8df33bb5_cf1eb88c","line":122,"range":{"start_line":115,"start_character":8,"end_line":122,"end_character":41},"in_reply_to":"db4e0547_0c08f006","updated":"2024-04-16 16:32:52.000000000","message":"Done","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":139,"context_line":"        return webob.Response(status_int\u003d202)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _check_key_names(self, keys):"},{"line_number":142,"context_line":"        if not common.validate_key_names(keys):"},{"line_number":143,"context_line":"            msg \u003d _(\u0027Key names can only contain alphanumeric characters, \u0027"},{"line_number":144,"context_line":"                    \u0027underscores, periods, colons and hyphens.\u0027)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        valid_keys \u003d [\u0027key_size\u0027, \u0027cipher\u0027, \u0027provider\u0027]"},{"line_number":149,"context_line":"        for key in keys:"}],"source_content_type":"text/x-python","patch_set":4,"id":"c9549ae3_644fc767","line":146,"range":{"start_line":142,"start_character":8,"end_line":146,"end_character":59},"updated":"2024-04-15 09:20:24.000000000","message":"no need to check characters, keys can only be \n[\u0027key_size\u0027, \u0027cipher\u0027, \u0027provider\u0027, \u0027control_location\u0027]\n\nUser-defined key values are not supported here, so you don\u0027t need to check them like extra specs","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        return webob.Response(status_int\u003d202)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _check_key_names(self, keys):"},{"line_number":142,"context_line":"        if not common.validate_key_names(keys):"},{"line_number":143,"context_line":"            msg \u003d _(\u0027Key names can only contain alphanumeric characters, \u0027"},{"line_number":144,"context_line":"                    \u0027underscores, periods, colons and hyphens.\u0027)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        valid_keys \u003d [\u0027key_size\u0027, \u0027cipher\u0027, \u0027provider\u0027]"},{"line_number":149,"context_line":"        for key in keys:"}],"source_content_type":"text/x-python","patch_set":4,"id":"a872fbf1_b758f781","line":146,"range":{"start_line":142,"start_character":8,"end_line":146,"end_character":59},"in_reply_to":"c9549ae3_644fc767","updated":"2024-04-16 16:32:52.000000000","message":"Done","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        valid_keys \u003d [\u0027key_size\u0027, \u0027cipher\u0027, \u0027provider\u0027]"},{"line_number":149,"context_line":"        for key in keys:"},{"line_number":150,"context_line":"            if key not in valid_keys:"},{"line_number":151,"context_line":"                msg \u003d _(\u0027Cannot update encryption. Invalid encryption info.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"05e9a548_b4f0f2c2","line":148,"range":{"start_line":148,"start_character":8,"end_line":148,"end_character":55},"updated":"2024-04-15 09:20:24.000000000","message":"Although the default value of control_location is back-end, which can be omitted when created, control_location is still a legal key value. If front-end encryption is supported later, control_location needs to be configured here.\n\n    valid_keys \u003d [\u0027key_size\u0027, \u0027cipher\u0027, \u0027provider\u0027, \u0027control_location\u0027]","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        valid_keys \u003d [\u0027key_size\u0027, \u0027cipher\u0027, \u0027provider\u0027]"},{"line_number":149,"context_line":"        for key in keys:"},{"line_number":150,"context_line":"            if key not in valid_keys:"},{"line_number":151,"context_line":"                msg \u003d _(\u0027Cannot update encryption. Invalid encryption info.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"4b2b1ef9_c4386fc2","line":148,"range":{"start_line":148,"start_character":8,"end_line":148,"end_character":55},"in_reply_to":"05e9a548_b4f0f2c2","updated":"2024-04-16 16:32:52.000000000","message":"Done","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":148,"context_line":"        valid_keys \u003d [\u0027key_size\u0027, \u0027cipher\u0027, \u0027provider\u0027]"},{"line_number":149,"context_line":"        for key in keys:"},{"line_number":150,"context_line":"            if key not in valid_keys:"},{"line_number":151,"context_line":"                msg \u003d _(\u0027Cannot update encryption. Invalid encryption info.\u0027)"},{"line_number":152,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"4380789d_a1d35c0a","line":151,"range":{"start_line":151,"start_character":16,"end_line":151,"end_character":77},"updated":"2024-04-15 09:20:24.000000000","message":"msg \u003d _(\u0027Invalid encryption key %s, only support key_size,\u0027\n                        \u0027cipher, provider, control_location\u0027) % key","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        valid_keys \u003d [\u0027key_size\u0027, \u0027cipher\u0027, \u0027provider\u0027]"},{"line_number":149,"context_line":"        for key in keys:"},{"line_number":150,"context_line":"            if key not in valid_keys:"},{"line_number":151,"context_line":"                msg \u003d _(\u0027Cannot update encryption. Invalid encryption info.\u0027)"},{"line_number":152,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"af86bbec_0d02c3b4","line":151,"range":{"start_line":151,"start_character":16,"end_line":151,"end_character":77},"in_reply_to":"4380789d_a1d35c0a","updated":"2024-04-16 16:32:52.000000000","message":"Done","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":27,"context_line":"class ShareTypeEncryptionController(wsgi.Controller):"},{"line_number":28,"context_line":"    \"\"\"The share type encryption API controller for the OpenStack API.\"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    resource_name \u003d \u0027encryption\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _encrypted_type_in_use(self, context, type_id):"},{"line_number":33,"context_line":"        share_list \u003d db.share_get_all(context.elevated(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"8ea106fe_95e8d727","line":30,"range":{"start_line":30,"start_character":4,"end_line":30,"end_character":32},"updated":"2024-04-17 09:39:00.000000000","message":"resource_name \u003d \u0027share_types_encryption\u0027","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ace9ca612b6b00225643a4136e9235701a92b9d","unresolved":false,"context_lines":[{"line_number":27,"context_line":"class ShareTypeEncryptionController(wsgi.Controller):"},{"line_number":28,"context_line":"    \"\"\"The share type encryption API controller for the OpenStack API.\"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    resource_name \u003d \u0027encryption\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _encrypted_type_in_use(self, context, type_id):"},{"line_number":33,"context_line":"        share_list \u003d db.share_get_all(context.elevated(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"1164f957_7a13f315","line":30,"range":{"start_line":30,"start_character":4,"end_line":30,"end_character":32},"in_reply_to":"8ea106fe_95e8d727","updated":"2024-04-17 16:44:48.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":43,"context_line":"        except exception.NotFound as ex:"},{"line_number":44,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dex.msg)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _get_share_type_encryption(self, context, type_id):"},{"line_number":47,"context_line":"        encryption_ref \u003d db.share_type_encryption_get(context, type_id)"},{"line_number":48,"context_line":"        encryption_specs \u003d {}"},{"line_number":49,"context_line":"        if not encryption_ref:"},{"line_number":50,"context_line":"            return encryption_specs"},{"line_number":51,"context_line":"        for key, value in encryption_ref.items():"},{"line_number":52,"context_line":"            encryption_specs[key] \u003d value"},{"line_number":53,"context_line":"        return encryption_specs"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":56,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":5,"id":"4e5906aa_e9052aaa","line":53,"range":{"start_line":46,"start_character":4,"end_line":53,"end_character":31},"updated":"2024-04-17 09:39:00.000000000","message":"move this function to manila/share/share_types.py\nthen we can use \nencryption \u003d share_types.get_share_type_encryption(context, type_id)\nto get encryption info.","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ace9ca612b6b00225643a4136e9235701a92b9d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        except exception.NotFound as ex:"},{"line_number":44,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dex.msg)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _get_share_type_encryption(self, context, type_id):"},{"line_number":47,"context_line":"        encryption_ref \u003d db.share_type_encryption_get(context, type_id)"},{"line_number":48,"context_line":"        encryption_specs \u003d {}"},{"line_number":49,"context_line":"        if not encryption_ref:"},{"line_number":50,"context_line":"            return encryption_specs"},{"line_number":51,"context_line":"        for key, value in encryption_ref.items():"},{"line_number":52,"context_line":"            encryption_specs[key] \u003d value"},{"line_number":53,"context_line":"        return encryption_specs"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":56,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":5,"id":"60fefd41_5fadedb4","line":53,"range":{"start_line":46,"start_character":4,"end_line":53,"end_character":31},"in_reply_to":"4e5906aa_e9052aaa","updated":"2024-04-17 16:44:48.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":61,"context_line":"            raise webob.exc.HTTPBadRequest()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        self._check_type(context, type_id)"},{"line_number":64,"context_line":"        if self._get_share_type_encryption(context, type_id):"},{"line_number":65,"context_line":"            msg \u003d _(\u0027Cannot create encryption. Already Exist.\u0027)"},{"line_number":66,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"52949dbc_bc87e1e4","line":64,"range":{"start_line":64,"start_character":7,"end_line":64,"end_character":61},"updated":"2024-04-17 09:39:00.000000000","message":"encryption \u003d share_types.get_share_type_encryption(context, type_id)","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ace9ca612b6b00225643a4136e9235701a92b9d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            raise webob.exc.HTTPBadRequest()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        self._check_type(context, type_id)"},{"line_number":64,"context_line":"        if self._get_share_type_encryption(context, type_id):"},{"line_number":65,"context_line":"            msg \u003d _(\u0027Cannot create encryption. Already Exist.\u0027)"},{"line_number":66,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"54788015_c3b19032","line":64,"range":{"start_line":64,"start_character":7,"end_line":64,"end_character":61},"in_reply_to":"52949dbc_bc87e1e4","updated":"2024-04-17 16:44:48.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":88,"context_line":"            msg \u003d _(\u0027Cannot update encryption. Share type in use.\u0027)"},{"line_number":89,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        encryption \u003d self._get_share_type_encryption(context, type_id)"},{"line_number":92,"context_line":"        if id not in encryption.values():"},{"line_number":93,"context_line":"            msg \u003d _(\u0027Invalid share type encryption id\u0027)"},{"line_number":94,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"20525948_39f635fe","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":70},"updated":"2024-04-17 09:39:00.000000000","message":"encryption \u003d share_types.get_share_type_encryption(context, type_id)","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ace9ca612b6b00225643a4136e9235701a92b9d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            msg \u003d _(\u0027Cannot update encryption. Share type in use.\u0027)"},{"line_number":89,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        encryption \u003d self._get_share_type_encryption(context, type_id)"},{"line_number":92,"context_line":"        if id not in encryption.values():"},{"line_number":93,"context_line":"            msg \u003d _(\u0027Invalid share type encryption id\u0027)"},{"line_number":94,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"695cc71a_3a39b98a","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":70},"in_reply_to":"20525948_39f635fe","updated":"2024-04-17 16:44:48.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":103,"context_line":"    @wsgi.Controller.authorize"},{"line_number":104,"context_line":"    def index(self, req):"},{"line_number":105,"context_line":"        \"\"\"Returns the list of encryption types for share type.\"\"\""},{"line_number":106,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":107,"context_line":"        share_type_list \u003d db.share_type_get_all(context.elevated())"},{"line_number":108,"context_line":"        for share_type in share_type_list:"},{"line_number":109,"context_line":"            encryption \u003d self._get_share_type_encryption(context,"},{"line_number":110,"context_line":"                                                         share_type[\u0027id\u0027])"},{"line_number":111,"context_line":"            share_type.update({\u0027encryption\u0027: encryption})"},{"line_number":112,"context_line":"        return share_type_list"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":115,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":5,"id":"c820e9b5_c09667cc","line":112,"range":{"start_line":104,"start_character":4,"end_line":112,"end_character":30},"updated":"2024-04-17 09:39:00.000000000","message":"GET /types/{share_type_id}/encryptions will go into def def index(self, req, type_id) function.  so type_id is needed.\n\n    def index(self, req, type_id):\n        \"\"\"Return a share type encryption item.\"\"\"\n        context \u003d req.environ[\u0027manila.context\u0027]\n        self._check_type(context, type_id)\n        encryption \u003d share_types.get_share_type_encryption(context, type_id)\n        return {\"encryption\": encryption}\n        \nin order to get share types list with encryption info. we can update the original share type list interface\n\nupdate manila/api/v2/share_types.py line 71. update def index() function:\n\n    @wsgi.Controller.authorize\n    def index(self, req):\n        \"\"\"Returns the list of share types.\"\"\"\n\n        context \u003d req.environ[\u0027manila.context\u0027]\n        limited_types \u003d self._get_share_types(req)\n        types_encryptions \u003d []\n        add_encryptions_info \u003d (req.api_version_request \u003e\u003d\n                                api_version.APIVersionRequest(\"2.86\"))\n        if add_encryptions_info:\n            for share_type in limited_types:\n                encryption \u003d share_types.get_share_type_encryption(\n                    context, share_type[\u0027id\u0027])\n                share_type.update({\u0027encryption\u0027: encryption})\n                types_encryptions.append(share_type)\n        finally_types \u003d types_encryptions if types_encryptions else limited_types\n        req.cache_db_share_types(finally_types)\n        return self._view_builder.index(req, finally_types)\n        \nthen we call GET share/v2/types return type dict will contain encryption.\n        \nupdate manila/share/share_types.py Append a function at end.\n\n    def get_share_type_encryption(context, type_id):\n        encryption_ref \u003d db.share_type_encryption_get(context, type_id)\n        encryption_specs \u003d {}\n        if not encryption_ref:\n            return encryption_specs\n        for key, value in encryption_ref.items():\n            encryption_specs[key] \u003d value\n        return encryption_specs\n\nupdate manila/api/views/types.py  append a function in line 88:\n\n    @common.ViewBuilder.versioned_method(\"2.86\")\n    def add_is_public_attr_extension_like(self, context, share_type_dict,\n                                          share_type):\n        share_type_dict[\u0027encryption\u0027] \u003d share_type.get(\u0027encryption\u0027, {})","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ace9ca612b6b00225643a4136e9235701a92b9d","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":103,"context_line":"    @wsgi.Controller.authorize"},{"line_number":104,"context_line":"    def index(self, req):"},{"line_number":105,"context_line":"        \"\"\"Returns the list of encryption types for share type.\"\"\""},{"line_number":106,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":107,"context_line":"        share_type_list \u003d db.share_type_get_all(context.elevated())"},{"line_number":108,"context_line":"        for share_type in share_type_list:"},{"line_number":109,"context_line":"            encryption \u003d self._get_share_type_encryption(context,"},{"line_number":110,"context_line":"                                                         share_type[\u0027id\u0027])"},{"line_number":111,"context_line":"            share_type.update({\u0027encryption\u0027: encryption})"},{"line_number":112,"context_line":"        return share_type_list"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":115,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":5,"id":"6273a671_42c22908","line":112,"range":{"start_line":104,"start_character":4,"end_line":112,"end_character":30},"in_reply_to":"c820e9b5_c09667cc","updated":"2024-04-17 16:44:48.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":115,"context_line":"    @wsgi.Controller.authorize"},{"line_number":116,"context_line":"    def show(self, req, type_id):"},{"line_number":117,"context_line":"        \"\"\"Return a share type encryption item.\"\"\""},{"line_number":118,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":119,"context_line":"        self._check_type(context, type_id)"},{"line_number":120,"context_line":"        encryption \u003d self._get_share_type_encryption(context, type_id)"},{"line_number":121,"context_line":"        return {\"encryption\": encryption}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":124,"context_line":"    @wsgi.Controller.authorize"},{"line_number":125,"context_line":"    def delete(self, req, type_id, id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"a3c5b244_afc6c120","line":122,"range":{"start_line":116,"start_character":4,"end_line":122,"end_character":0},"updated":"2024-04-17 09:39:00.000000000","message":"i found if we want to use def show, it must be \ndef show(self, req, type_id, encryption_id):\nbut index function already can be used to get encryption info for a share type.\nso delete this function.","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ace9ca612b6b00225643a4136e9235701a92b9d","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":115,"context_line":"    @wsgi.Controller.authorize"},{"line_number":116,"context_line":"    def show(self, req, type_id):"},{"line_number":117,"context_line":"        \"\"\"Return a share type encryption item.\"\"\""},{"line_number":118,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":119,"context_line":"        self._check_type(context, type_id)"},{"line_number":120,"context_line":"        encryption \u003d self._get_share_type_encryption(context, type_id)"},{"line_number":121,"context_line":"        return {\"encryption\": encryption}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":124,"context_line":"    @wsgi.Controller.authorize"},{"line_number":125,"context_line":"    def delete(self, req, type_id, id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"05dca17f_a10e57f6","line":122,"range":{"start_line":116,"start_character":4,"end_line":122,"end_character":0},"in_reply_to":"a3c5b244_afc6c120","updated":"2024-04-17 16:44:48.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":true,"context_lines":[{"line_number":62,"context_line":"            context, type_id, encryption_specs)"},{"line_number":63,"context_line":"        return {\"encryption\": encryption}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":66,"context_line":"    @wsgi.Controller.authorize"},{"line_number":67,"context_line":"    def update(self, req, type_id, id, body\u003dNone):"},{"line_number":68,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"751d09e8_e769eea7","line":65,"range":{"start_line":65,"start_character":60,"end_line":65,"end_character":77},"updated":"2024-04-22 02:11:38.000000000","message":"why need experimental\u003dTrue?\ni found if add experimental\u003dTrue, the url will return resource not found.","commit_id":"ccb821df1db3fb493c04ed18e6f25ccf8fa41b92"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8ee0bf88980403cd65fe632a1f78a6f158ead7dc","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            context, type_id, encryption_specs)"},{"line_number":63,"context_line":"        return {\"encryption\": encryption}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":66,"context_line":"    @wsgi.Controller.authorize"},{"line_number":67,"context_line":"    def update(self, req, type_id, id, body\u003dNone):"},{"line_number":68,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f48f57e_657be953","line":65,"range":{"start_line":65,"start_character":60,"end_line":65,"end_character":77},"in_reply_to":"751d09e8_e769eea7","updated":"2024-04-26 01:38:46.000000000","message":"Done","commit_id":"ccb821df1db3fb493c04ed18e6f25ccf8fa41b92"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":true,"context_lines":[{"line_number":62,"context_line":"            context, type_id, encryption_specs)"},{"line_number":63,"context_line":"        return {\"encryption\": encryption}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":66,"context_line":"    @wsgi.Controller.authorize"},{"line_number":67,"context_line":"    def update(self, req, type_id, id, body\u003dNone):"},{"line_number":68,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":69,"context_line":"        if not body:"},{"line_number":70,"context_line":"            msg \u003d _(\u0027Request body empty\u0027)"},{"line_number":71,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        if not self.is_valid_body(body, \u0027encryption\u0027):"},{"line_number":74,"context_line":"            msg \u003d _(\"Body does not contain \u0027encryption\u0027 information.\")"},{"line_number":75,"context_line":"            raise webob.exc.HTTPUnprocessableEntity(explanation\u003dmsg)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self._check_type(context, type_id)"},{"line_number":78,"context_line":"        if self._encrypted_type_in_use(context, type_id):"},{"line_number":79,"context_line":"            msg \u003d _(\u0027Cannot update encryption. Share type in use.\u0027)"},{"line_number":80,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        encryption \u003d share_types.get_share_type_encryption(context, type_id)"},{"line_number":83,"context_line":"        if id not in encryption.values():"},{"line_number":84,"context_line":"            msg \u003d _(\u0027Invalid share type encryption id\u0027)"},{"line_number":85,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        encryption_specs \u003d body[\u0027encryption\u0027]"},{"line_number":88,"context_line":"        self._check_key_names(encryption_specs.keys())"},{"line_number":89,"context_line":"        encryption \u003d db.share_type_encryption_update_or_create("},{"line_number":90,"context_line":"            context, type_id, encryption_specs)"},{"line_number":91,"context_line":"        return {\"encryption\": encryption}"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":94,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":6,"id":"7b285476_11c07621","line":91,"range":{"start_line":65,"start_character":4,"end_line":91,"end_character":0},"updated":"2024-04-22 02:11:38.000000000","message":"rename this function to:\n\n    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)\n    @wsgi.Controller.authorize\n    def update_encryption(self, req, type_id, body\u003dNone):\n        context \u003d req.environ[\u0027manila.context\u0027]\n        if not body:\n            msg \u003d _(\u0027Request body empty\u0027)\n            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)\n\n        if not self.is_valid_body(body, \u0027encryption\u0027):\n            msg \u003d _(\"Body does not contain \u0027encryption\u0027 information.\")\n            raise webob.exc.HTTPUnprocessableEntity(explanation\u003dmsg)\n\n        self._check_type(context, type_id)\n        if self._encrypted_type_in_use(context, type_id):\n            msg \u003d _(\u0027Cannot update encryption. Share type in use.\u0027)\n            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)\n\n        encryption \u003d share_types.get_share_type_encryption(context, type_id)\n        if not encryption:\n            msg \u003d _(\u0027Missing encryption for share type. Please use create API \u0027\n                    \u0027to create share type encryption\u0027)\n            raise webob.exc.HTTPNotFound(explanation\u003dmsg)\n\n        encryption_specs \u003d body[\u0027encryption\u0027]\n        self._check_key_names(encryption_specs.keys())\n        try:\n            encryption \u003d db.share_type_encryption_update_or_create(\n                context, type_id, encryption_specs)\n        except Exception:\n            raise exception.ShareTypeEncryptionUpdateFailed()\n        return {\"encryption\": encryption}","commit_id":"ccb821df1db3fb493c04ed18e6f25ccf8fa41b92"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"f8ae09aabeb99444b48e444ba38c0658b2af3d1f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            context, type_id, encryption_specs)"},{"line_number":63,"context_line":"        return {\"encryption\": encryption}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":66,"context_line":"    @wsgi.Controller.authorize"},{"line_number":67,"context_line":"    def update(self, req, type_id, id, body\u003dNone):"},{"line_number":68,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":69,"context_line":"        if not body:"},{"line_number":70,"context_line":"            msg \u003d _(\u0027Request body empty\u0027)"},{"line_number":71,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        if not self.is_valid_body(body, \u0027encryption\u0027):"},{"line_number":74,"context_line":"            msg \u003d _(\"Body does not contain \u0027encryption\u0027 information.\")"},{"line_number":75,"context_line":"            raise webob.exc.HTTPUnprocessableEntity(explanation\u003dmsg)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self._check_type(context, type_id)"},{"line_number":78,"context_line":"        if self._encrypted_type_in_use(context, type_id):"},{"line_number":79,"context_line":"            msg \u003d _(\u0027Cannot update encryption. Share type in use.\u0027)"},{"line_number":80,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        encryption \u003d share_types.get_share_type_encryption(context, type_id)"},{"line_number":83,"context_line":"        if id not in encryption.values():"},{"line_number":84,"context_line":"            msg \u003d _(\u0027Invalid share type encryption id\u0027)"},{"line_number":85,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        encryption_specs \u003d body[\u0027encryption\u0027]"},{"line_number":88,"context_line":"        self._check_key_names(encryption_specs.keys())"},{"line_number":89,"context_line":"        encryption \u003d db.share_type_encryption_update_or_create("},{"line_number":90,"context_line":"            context, type_id, encryption_specs)"},{"line_number":91,"context_line":"        return {\"encryption\": encryption}"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":94,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":6,"id":"80ff4561_4e167cfe","line":91,"range":{"start_line":65,"start_character":4,"end_line":91,"end_character":0},"in_reply_to":"7b285476_11c07621","updated":"2024-04-22 16:59:30.000000000","message":"Done","commit_id":"ccb821df1db3fb493c04ed18e6f25ccf8fa41b92"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":true,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":103,"context_line":"    @wsgi.Controller.authorize"},{"line_number":104,"context_line":"    def delete(self, req, type_id, id):"},{"line_number":105,"context_line":"        \"\"\"Deletes an existing encryption.\"\"\""},{"line_number":106,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":107,"context_line":"        self._check_type(context, type_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"31c0d882_81c5630a","line":104,"range":{"start_line":104,"start_character":35,"end_line":104,"end_character":37},"updated":"2024-04-22 02:11:38.000000000","message":"i test it in my env,  if we remove id.\nthe DELETE share/{share_type_id}/encryption\nwill get 404 Not Found The resource could not be found.\n\nif you want use DELETE share/{share_type_id}/encryption to delete encryption for a share type. you need define a new function in router. this function def delete() always need id as member, so:\n\nrename this function to def delete_encryption():\n\n    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)\n    @wsgi.Controller.authorize\n        def delete_encryption(self, req, type_id):\n        \"\"\"Deletes an existing encryption.\"\"\"\n        context \u003d req.environ[\u0027manila.context\u0027]\n        self._check_type(context, type_id)\n        if self._encrypted_type_in_use(context, type_id):\n            msg \u003d _(\u0027Cannot delete encryption. Share type in use.\u0027)\n            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)\n\n        try:\n            db.share_type_encryption_delete(context, type_id)\n        except exception.ShareTypeEncryptionNotFound as error:\n            raise webob.exc.HTTPNotFound(explanation\u003derror.msg)\n\n        return webob.Response(status_int\u003d202)","commit_id":"ccb821df1db3fb493c04ed18e6f25ccf8fa41b92"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"f8ae09aabeb99444b48e444ba38c0658b2af3d1f","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION, experimental\u003dTrue)"},{"line_number":103,"context_line":"    @wsgi.Controller.authorize"},{"line_number":104,"context_line":"    def delete(self, req, type_id, id):"},{"line_number":105,"context_line":"        \"\"\"Deletes an existing encryption.\"\"\""},{"line_number":106,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":107,"context_line":"        self._check_type(context, type_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3197e676_39151ae0","line":104,"range":{"start_line":104,"start_character":35,"end_line":104,"end_character":37},"in_reply_to":"31c0d882_81c5630a","updated":"2024-04-22 16:59:30.000000000","message":"Done","commit_id":"ccb821df1db3fb493c04ed18e6f25ccf8fa41b92"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8ee0bf88980403cd65fe632a1f78a6f158ead7dc","unresolved":true,"context_lines":[{"line_number":101,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":102,"context_line":"        self._check_type(context, type_id)"},{"line_number":103,"context_line":"        encryption \u003d share_types.get_share_type_encryption(context, type_id)"},{"line_number":104,"context_line":"        return {\"encryption\": encryption}"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION)"},{"line_number":107,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":9,"id":"9d5ee7b5_dc205e84","line":104,"range":{"start_line":104,"start_character":8,"end_line":104,"end_character":34},"updated":"2024-04-26 01:38:46.000000000","message":"i test in my env. the response body is:\n\n    {\n    \"encryption\": {\n        \"encryption_id\": \"f777a056-56ab-422a-8c5f-facbda9f77ee\",\n        \"cipher\": \"aes-xts-plain64\",\n        \"key_size\": 256,\n        \"provider\": \"luks\",\n        \"control_location\": \"back-end\",\n        \"share_type_id\": \"b5138831-4979-45c5-84ff-64b5cc71eed8\",\n        \"created_at\": \"2024-04-22T01:52:17.000000\",\n        \"updated_at\": \"2024-04-22T01:54:10.000000\",\n        \"deleted_at\": null,\n        \"deleted\": \"0\"}\n    }\n\ni think we should remove \"deleted_at\" and \"deleted\", no need return this to end \nuser.","commit_id":"77ceb26699cbb16326d5b64adde9f96b05aee322"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"eebb05290cbfe4ccba0d91ce29d4d451a4fff608","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":102,"context_line":"        self._check_type(context, type_id)"},{"line_number":103,"context_line":"        encryption \u003d share_types.get_share_type_encryption(context, type_id)"},{"line_number":104,"context_line":"        return {\"encryption\": encryption}"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    @wsgi.Controller.api_version(MIN_SUPPORTED_API_VERSION)"},{"line_number":107,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":9,"id":"abad41de_988ef139","line":104,"range":{"start_line":104,"start_character":8,"end_line":104,"end_character":34},"in_reply_to":"9d5ee7b5_dc205e84","updated":"2024-04-26 12:19:27.000000000","message":"this was fixed in patchset 9.","commit_id":"77ceb26699cbb16326d5b64adde9f96b05aee322"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"ca0c27ed719b12a179334c08e565af239757c6e7","unresolved":true,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        return webob.Response(status_int\u003d202)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def _check_key_names(self, keys):"},{"line_number":124,"context_line":"        valid_keys \u003d [\u0027key_size\u0027, \u0027cipher\u0027, \u0027provider\u0027, \u0027control_location\u0027]"},{"line_number":125,"context_line":"        for key in keys:"},{"line_number":126,"context_line":"            if key not in valid_keys:"}],"source_content_type":"text/x-python","patch_set":10,"id":"9fa72daa_dacb6a9f","line":123,"updated":"2024-04-28 06:03:47.000000000","message":"what is control_location and provider. Comments will help","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"d8f5f66746ba4d07a27a1e04aff55149bfe8d5c5","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        return webob.Response(status_int\u003d202)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def _check_key_names(self, keys):"},{"line_number":124,"context_line":"        valid_keys \u003d [\u0027key_size\u0027, \u0027cipher\u0027, \u0027provider\u0027, \u0027control_location\u0027]"},{"line_number":125,"context_line":"        for key in keys:"},{"line_number":126,"context_line":"            if key not in valid_keys:"}],"source_content_type":"text/x-python","patch_set":10,"id":"43488eee_f57cca92","line":123,"in_reply_to":"3202601a_50fae6d6","updated":"2024-05-01 11:05:38.000000000","message":"Done","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b2d66cd24989bfb6df0b96e3bf36d8d5b3b4b350","unresolved":true,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        return webob.Response(status_int\u003d202)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def _check_key_names(self, keys):"},{"line_number":124,"context_line":"        valid_keys \u003d [\u0027key_size\u0027, \u0027cipher\u0027, \u0027provider\u0027, \u0027control_location\u0027]"},{"line_number":125,"context_line":"        for key in keys:"},{"line_number":126,"context_line":"            if key not in valid_keys:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3202601a_50fae6d6","line":123,"in_reply_to":"9fa72daa_dacb6a9f","updated":"2024-04-29 16:06:53.000000000","message":"control location will be either front-end or back-end. Manila supports in-house backend based encryption only i.e. performed by backend driver or hardware but not by Manila.","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"}],"manila/api/views/types.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"336d05b105647af692ed7b9c3209673e47a8d16e","unresolved":true,"context_lines":[{"line_number":32,"context_line":"        \"add_inferred_optional_extra_specs\","},{"line_number":33,"context_line":"        \"add_description_attr\","},{"line_number":34,"context_line":"        \"add_is_default_attr\","},{"line_number":35,"context_line":"        \"add_encryption_attr\","},{"line_number":36,"context_line":"    ]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def show(self, request, share_type, brief\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"78a85730_ebc36941","line":35,"range":{"start_line":35,"start_character":7,"end_line":35,"end_character":30},"updated":"2024-04-26 02:49:29.000000000","message":"Similarly, we also need to add “add_encryption_key_id_field” for share instance and share snapshot.","commit_id":"77ceb26699cbb16326d5b64adde9f96b05aee322"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"eebb05290cbfe4ccba0d91ce29d4d451a4fff608","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \"add_inferred_optional_extra_specs\","},{"line_number":33,"context_line":"        \"add_description_attr\","},{"line_number":34,"context_line":"        \"add_is_default_attr\","},{"line_number":35,"context_line":"        \"add_encryption_attr\","},{"line_number":36,"context_line":"    ]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def show(self, request, share_type, brief\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"77d93086_b8ae0d50","line":35,"range":{"start_line":35,"start_character":7,"end_line":35,"end_character":30},"in_reply_to":"78a85730_ebc36941","updated":"2024-04-26 12:19:27.000000000","message":"added in dependent patch","commit_id":"77ceb26699cbb16326d5b64adde9f96b05aee322"}],"manila/db/migrations/alembic/versions/a21df038edad_add_share_type_encryption.py":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"827982e74f1024137e24c1ebca60c966998962ea","unresolved":true,"context_lines":[{"line_number":30,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"encryption_table_name \u003d \u0027share_type_encryption\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":10,"id":"ae57d74d_ad23a8b0","line":33,"updated":"2024-04-28 05:39:40.000000000","message":"Accessing cipher key will expose client data from share. Is is there any supported mechanism for Client or Tenet to have his key with him and not share with OpenStack?","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"d8f5f66746ba4d07a27a1e04aff55149bfe8d5c5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"encryption_table_name \u003d \u0027share_type_encryption\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":10,"id":"9b397e60_9dacb092","line":33,"in_reply_to":"74735a72_c7456c0a","updated":"2024-05-01 11:05:38.000000000","message":"Done","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b2d66cd24989bfb6df0b96e3bf36d8d5b3b4b350","unresolved":true,"context_lines":[{"line_number":30,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"encryption_table_name \u003d \u0027share_type_encryption\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":10,"id":"74735a72_c7456c0a","line":33,"in_reply_to":"ae57d74d_ad23a8b0","updated":"2024-04-29 16:06:53.000000000","message":"1) metadata to create key \n2) user defined key\n  are two ways to support encryption and handled on follow-up patch. So this will take care of tenant use his key.","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"827982e74f1024137e24c1ebca60c966998962ea","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    try:"},{"line_number":39,"context_line":"        op.create_table("},{"line_number":40,"context_line":"            encryption_table_name,"},{"line_number":41,"context_line":"            sa.Column(\u0027encryption_id\u0027, sa.String(length\u003d36),"},{"line_number":42,"context_line":"                      primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":43,"context_line":"            sa.Column(\u0027created_at\u0027, sa.DateTime),"},{"line_number":44,"context_line":"            sa.Column(\u0027updated_at\u0027, sa.DateTime),"}],"source_content_type":"text/x-python","patch_set":10,"id":"af26d329_58121bc8","line":41,"updated":"2024-04-28 05:39:40.000000000","message":"Spec:\"The user can also encrypt the share using their own keys. Such keys are stored in key store supported by driver\". If store has information about keys. Why different DB record is required with Cipher? Is it only for symmetric key or any Key.","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b2d66cd24989bfb6df0b96e3bf36d8d5b3b4b350","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    try:"},{"line_number":39,"context_line":"        op.create_table("},{"line_number":40,"context_line":"            encryption_table_name,"},{"line_number":41,"context_line":"            sa.Column(\u0027encryption_id\u0027, sa.String(length\u003d36),"},{"line_number":42,"context_line":"                      primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":43,"context_line":"            sa.Column(\u0027created_at\u0027, sa.DateTime),"},{"line_number":44,"context_line":"            sa.Column(\u0027updated_at\u0027, sa.DateTime),"}],"source_content_type":"text/x-python","patch_set":10,"id":"fd4d5a41_62114dd3","line":41,"in_reply_to":"af26d329_58121bc8","updated":"2024-04-29 16:06:53.000000000","message":"the db record is needed to associate key as entity with share/snapshot resource. In case, service goes down and comes back again, fetching information from db and continue operation is safe way I believe. Any key.","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"d8f5f66746ba4d07a27a1e04aff55149bfe8d5c5","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    try:"},{"line_number":39,"context_line":"        op.create_table("},{"line_number":40,"context_line":"            encryption_table_name,"},{"line_number":41,"context_line":"            sa.Column(\u0027encryption_id\u0027, sa.String(length\u003d36),"},{"line_number":42,"context_line":"                      primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":43,"context_line":"            sa.Column(\u0027created_at\u0027, sa.DateTime),"},{"line_number":44,"context_line":"            sa.Column(\u0027updated_at\u0027, sa.DateTime),"}],"source_content_type":"text/x-python","patch_set":10,"id":"bc63c172_4cb7d5c1","line":41,"in_reply_to":"fd4d5a41_62114dd3","updated":"2024-05-01 11:05:38.000000000","message":"Done","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"272475316ce931e27da6f90bb6f52813d2c56b62","unresolved":true,"context_lines":[{"line_number":44,"context_line":"            sa.Column(\u0027updated_at\u0027, sa.DateTime),"},{"line_number":45,"context_line":"            sa.Column(\u0027deleted_at\u0027, sa.DateTime),"},{"line_number":46,"context_line":"            sa.Column(\u0027deleted\u0027, sa.String(length\u003d36), default\u003d\u0027False\u0027),"},{"line_number":47,"context_line":"            sa.Column(\u0027cipher\u0027, sa.String(length\u003d255)),"},{"line_number":48,"context_line":"            sa.Column(\u0027control_location\u0027, sa.String(length\u003d255),"},{"line_number":49,"context_line":"                      default\u003d\u0027back-end\u0027),"},{"line_number":50,"context_line":"            sa.Column(\u0027key_size\u0027, sa.Integer),"}],"source_content_type":"text/x-python","patch_set":10,"id":"6cca45bf_ef468ffa","line":47,"updated":"2024-04-28 06:01:20.000000000","message":"Some of the ciphers may become vulnerable with time. Is there a way to black list these ciphers so that client can choose right ciphers for encryption?","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"d8f5f66746ba4d07a27a1e04aff55149bfe8d5c5","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            sa.Column(\u0027updated_at\u0027, sa.DateTime),"},{"line_number":45,"context_line":"            sa.Column(\u0027deleted_at\u0027, sa.DateTime),"},{"line_number":46,"context_line":"            sa.Column(\u0027deleted\u0027, sa.String(length\u003d36), default\u003d\u0027False\u0027),"},{"line_number":47,"context_line":"            sa.Column(\u0027cipher\u0027, sa.String(length\u003d255)),"},{"line_number":48,"context_line":"            sa.Column(\u0027control_location\u0027, sa.String(length\u003d255),"},{"line_number":49,"context_line":"                      default\u003d\u0027back-end\u0027),"},{"line_number":50,"context_line":"            sa.Column(\u0027key_size\u0027, sa.Integer),"}],"source_content_type":"text/x-python","patch_set":10,"id":"248c1361_3e8e46c9","line":47,"in_reply_to":"5e1590e0_7b48f655","updated":"2024-05-01 11:05:38.000000000","message":"Done","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b2d66cd24989bfb6df0b96e3bf36d8d5b3b4b350","unresolved":true,"context_lines":[{"line_number":44,"context_line":"            sa.Column(\u0027updated_at\u0027, sa.DateTime),"},{"line_number":45,"context_line":"            sa.Column(\u0027deleted_at\u0027, sa.DateTime),"},{"line_number":46,"context_line":"            sa.Column(\u0027deleted\u0027, sa.String(length\u003d36), default\u003d\u0027False\u0027),"},{"line_number":47,"context_line":"            sa.Column(\u0027cipher\u0027, sa.String(length\u003d255)),"},{"line_number":48,"context_line":"            sa.Column(\u0027control_location\u0027, sa.String(length\u003d255),"},{"line_number":49,"context_line":"                      default\u003d\u0027back-end\u0027),"},{"line_number":50,"context_line":"            sa.Column(\u0027key_size\u0027, sa.Integer),"}],"source_content_type":"text/x-python","patch_set":10,"id":"5e1590e0_7b48f655","line":47,"in_reply_to":"6cca45bf_ef468ffa","updated":"2024-04-29 16:06:53.000000000","message":"This is admin only resource and assumed that admin will take of not using blacklisted ciphers. Also, I dont see this is handled in cinder. So we can defer this request for future work.","commit_id":"4b030557b87a03c7d67a8e9d46cbc8b148e5d769"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":5948,"context_line":"        share_type_id\u003did,"},{"line_number":5949,"context_line":"    ).soft_delete()"},{"line_number":5950,"context_line":"    # Encryption has no attribute \u0027id\u0027"},{"line_number":5951,"context_line":"    query_ref \u003d model_query("},{"line_number":5952,"context_line":"        context, models.Encryption,"},{"line_number":5953,"context_line":"    ).filter_by("},{"line_number":5954,"context_line":"        share_type_id\u003did,"},{"line_number":5955,"context_line":"    ).first()"},{"line_number":5956,"context_line":"    if query_ref:"},{"line_number":5957,"context_line":"        query_ref.update({"},{"line_number":5958,"context_line":"            \u0027deleted\u0027: True,"},{"line_number":5959,"context_line":"            \u0027deleted_at\u0027: timeutils.utcnow(),"},{"line_number":5960,"context_line":"            \u0027updated_at\u0027: query_ref.updated_at,"},{"line_number":5961,"context_line":"        })"},{"line_number":5962,"context_line":"    model_query("},{"line_number":5963,"context_line":"        context, models.ShareTypes,"},{"line_number":5964,"context_line":"    ).filter_by("}],"source_content_type":"text/x-python","patch_set":4,"id":"b92b4a0b_e970d7e0","line":5961,"range":{"start_line":5951,"start_character":4,"end_line":5961,"end_character":10},"updated":"2024-04-15 09:20:24.000000000","message":"why not use soft_delete?\n\n    model_query(\n        context, models.Encryption,\n    ).filter_by(\n        share_type_id\u003did,\n    ).soft_delete()\n    \nThe type of deleted in models.Encryption is int not bool. so i think we can also use soft_deleted.","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":false,"context_lines":[{"line_number":5948,"context_line":"        share_type_id\u003did,"},{"line_number":5949,"context_line":"    ).soft_delete()"},{"line_number":5950,"context_line":"    # Encryption has no attribute \u0027id\u0027"},{"line_number":5951,"context_line":"    query_ref \u003d model_query("},{"line_number":5952,"context_line":"        context, models.Encryption,"},{"line_number":5953,"context_line":"    ).filter_by("},{"line_number":5954,"context_line":"        share_type_id\u003did,"},{"line_number":5955,"context_line":"    ).first()"},{"line_number":5956,"context_line":"    if query_ref:"},{"line_number":5957,"context_line":"        query_ref.update({"},{"line_number":5958,"context_line":"            \u0027deleted\u0027: True,"},{"line_number":5959,"context_line":"            \u0027deleted_at\u0027: timeutils.utcnow(),"},{"line_number":5960,"context_line":"            \u0027updated_at\u0027: query_ref.updated_at,"},{"line_number":5961,"context_line":"        })"},{"line_number":5962,"context_line":"    model_query("},{"line_number":5963,"context_line":"        context, models.ShareTypes,"},{"line_number":5964,"context_line":"    ).filter_by("}],"source_content_type":"text/x-python","patch_set":4,"id":"c576e424_2b960a31","line":5961,"range":{"start_line":5951,"start_character":4,"end_line":5961,"end_character":10},"in_reply_to":"aae0a4d1_5a4f802e","updated":"2024-04-17 09:39:00.000000000","message":"Done","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":5948,"context_line":"        share_type_id\u003did,"},{"line_number":5949,"context_line":"    ).soft_delete()"},{"line_number":5950,"context_line":"    # Encryption has no attribute \u0027id\u0027"},{"line_number":5951,"context_line":"    query_ref \u003d model_query("},{"line_number":5952,"context_line":"        context, models.Encryption,"},{"line_number":5953,"context_line":"    ).filter_by("},{"line_number":5954,"context_line":"        share_type_id\u003did,"},{"line_number":5955,"context_line":"    ).first()"},{"line_number":5956,"context_line":"    if query_ref:"},{"line_number":5957,"context_line":"        query_ref.update({"},{"line_number":5958,"context_line":"            \u0027deleted\u0027: True,"},{"line_number":5959,"context_line":"            \u0027deleted_at\u0027: timeutils.utcnow(),"},{"line_number":5960,"context_line":"            \u0027updated_at\u0027: query_ref.updated_at,"},{"line_number":5961,"context_line":"        })"},{"line_number":5962,"context_line":"    model_query("},{"line_number":5963,"context_line":"        context, models.ShareTypes,"},{"line_number":5964,"context_line":"    ).filter_by("}],"source_content_type":"text/x-python","patch_set":4,"id":"aae0a4d1_5a4f802e","line":5961,"range":{"start_line":5951,"start_character":4,"end_line":5961,"end_character":10},"in_reply_to":"b92b4a0b_e970d7e0","updated":"2024-04-16 16:32:52.000000000","message":"soft delete needs primary key of table as \u0027id\u0027, here we are using \u0027encryption_id\u0027.","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":7586,"context_line":"    if not encryption_ref:"},{"line_number":7587,"context_line":"        raise exception.ShareTypeEncryptionNotFound("},{"line_number":7588,"context_line":"            share_type_id\u003dshare_type_id)"},{"line_number":7589,"context_line":"    encryption_ref.update("},{"line_number":7590,"context_line":"        {"},{"line_number":7591,"context_line":"            \u0027deleted\u0027: True,"},{"line_number":7592,"context_line":"            \u0027deleted_at\u0027: timeutils.utcnow(),"},{"line_number":7593,"context_line":"            \u0027updated_at\u0027: encryption_ref.updated_at,"},{"line_number":7594,"context_line":"        },"},{"line_number":7595,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":4,"id":"64870eef_5277b83c","line":7595,"range":{"start_line":7589,"start_character":4,"end_line":7595,"end_character":5},"updated":"2024-04-15 09:20:24.000000000","message":"encryption_ref.soft_delete()","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":false,"context_lines":[{"line_number":7586,"context_line":"    if not encryption_ref:"},{"line_number":7587,"context_line":"        raise exception.ShareTypeEncryptionNotFound("},{"line_number":7588,"context_line":"            share_type_id\u003dshare_type_id)"},{"line_number":7589,"context_line":"    encryption_ref.update("},{"line_number":7590,"context_line":"        {"},{"line_number":7591,"context_line":"            \u0027deleted\u0027: True,"},{"line_number":7592,"context_line":"            \u0027deleted_at\u0027: timeutils.utcnow(),"},{"line_number":7593,"context_line":"            \u0027updated_at\u0027: encryption_ref.updated_at,"},{"line_number":7594,"context_line":"        },"},{"line_number":7595,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":4,"id":"905184eb_329fc6fb","line":7595,"range":{"start_line":7589,"start_character":4,"end_line":7595,"end_character":5},"in_reply_to":"157ad55b_87bc2f6c","updated":"2024-04-17 09:39:00.000000000","message":"Done","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":7586,"context_line":"    if not encryption_ref:"},{"line_number":7587,"context_line":"        raise exception.ShareTypeEncryptionNotFound("},{"line_number":7588,"context_line":"            share_type_id\u003dshare_type_id)"},{"line_number":7589,"context_line":"    encryption_ref.update("},{"line_number":7590,"context_line":"        {"},{"line_number":7591,"context_line":"            \u0027deleted\u0027: True,"},{"line_number":7592,"context_line":"            \u0027deleted_at\u0027: timeutils.utcnow(),"},{"line_number":7593,"context_line":"            \u0027updated_at\u0027: encryption_ref.updated_at,"},{"line_number":7594,"context_line":"        },"},{"line_number":7595,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":4,"id":"157ad55b_87bc2f6c","line":7595,"range":{"start_line":7589,"start_character":4,"end_line":7595,"end_character":5},"in_reply_to":"64870eef_5277b83c","updated":"2024-04-16 16:32:52.000000000","message":"same as above, soft_delete hardcoded to consider \u0027id\u0027 as primary key","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"}],"manila/db/sqlalchemy/models.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"b2c0be070906b151d328daaa9ef40eca2843306a","unresolved":true,"context_lines":[{"line_number":192,"context_line":"    __tablename__ \u003d \u0027shares\u0027"},{"line_number":193,"context_line":"    _extra_keys \u003d [\u0027name\u0027, \u0027export_location\u0027, \u0027export_locations\u0027, \u0027status\u0027,"},{"line_number":194,"context_line":"                   \u0027host\u0027, \u0027share_server_id\u0027, \u0027share_network_id\u0027,"},{"line_number":195,"context_line":"                   \u0027availability_zone\u0027, \u0027access_rules_status\u0027, \u0027share_type_id\u0027]"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    @property"},{"line_number":198,"context_line":"    def name(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"5bb42af6_0ef2d2f7","line":195,"range":{"start_line":195,"start_character":63,"end_line":195,"end_character":79},"updated":"2024-05-09 03:36:48.000000000","message":"better append encryption_key_id.","commit_id":"e3f38184a35405ec1d83a39616db592df852fb96"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"c69e89df88cbf985334b231dc85eb70c2aab231c","unresolved":false,"context_lines":[{"line_number":192,"context_line":"    __tablename__ \u003d \u0027shares\u0027"},{"line_number":193,"context_line":"    _extra_keys \u003d [\u0027name\u0027, \u0027export_location\u0027, \u0027export_locations\u0027, \u0027status\u0027,"},{"line_number":194,"context_line":"                   \u0027host\u0027, \u0027share_server_id\u0027, \u0027share_network_id\u0027,"},{"line_number":195,"context_line":"                   \u0027availability_zone\u0027, \u0027access_rules_status\u0027, \u0027share_type_id\u0027]"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    @property"},{"line_number":198,"context_line":"    def name(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"f17948ae_b5eef83d","line":195,"range":{"start_line":195,"start_character":63,"end_line":195,"end_character":79},"in_reply_to":"5bb42af6_0ef2d2f7","updated":"2024-07-25 11:24:28.000000000","message":"Done","commit_id":"e3f38184a35405ec1d83a39616db592df852fb96"}],"manila/policies/share_types_encryption.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":75,"context_line":"        operations\u003d["},{"line_number":76,"context_line":"            {"},{"line_number":77,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":78,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption/{encryption_id}\u0027,"},{"line_number":79,"context_line":"            }"},{"line_number":80,"context_line":"        ],"},{"line_number":81,"context_line":"        deprecated_rule\u003ddeprecated_encryption_show"}],"source_content_type":"text/x-python","patch_set":4,"id":"a8351642_2071a122","line":78,"range":{"start_line":78,"start_character":16,"end_line":78,"end_character":76},"updated":"2024-04-15 09:20:24.000000000","message":"one share type can only have one encryption, so i think no need encryption_id here.\n\n    \u0027path\u0027: \u0027/types/{share_type_id}/encryption\u0027,\n    \nin spec:\n**To show an encryption type for an existing share type.**::\n\n    GET /v2/types/{share_type_id}/encryption\n\nResponse(200 OK)::\n\n    {\n        \"encryption\": {\n            \"share_type_id\": \"77eb3421-4549-4789-ac39-0d5185d68c20\",\n            \"control_location\": \"back-end\",\n            \"encryption_id\": \"81e069c6-7394-4856-8df7-3b237ca61f74\",\n            \"key_size\": 256,\n            \"provider\": \"luks\",\n            \"cipher\": \"aes-xts-plain64\"\n        }\n    }","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        operations\u003d["},{"line_number":76,"context_line":"            {"},{"line_number":77,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":78,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption/{encryption_id}\u0027,"},{"line_number":79,"context_line":"            }"},{"line_number":80,"context_line":"        ],"},{"line_number":81,"context_line":"        deprecated_rule\u003ddeprecated_encryption_show"}],"source_content_type":"text/x-python","patch_set":4,"id":"4d8b2080_22d314c1","line":78,"range":{"start_line":78,"start_character":16,"end_line":78,"end_character":76},"in_reply_to":"a8351642_2071a122","updated":"2024-04-16 16:32:52.000000000","message":"Done","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"23b49f8cfe10755d42dc7961e45fad03b3b00e70","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        operations\u003d["},{"line_number":89,"context_line":"            {"},{"line_number":90,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":91,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption/\u0027,"},{"line_number":92,"context_line":"            },"},{"line_number":93,"context_line":"        ],"},{"line_number":94,"context_line":"        deprecated_rule\u003ddeprecated_encryption_index"}],"source_content_type":"text/x-python","patch_set":4,"id":"46bf0083_af40c78f","line":91,"range":{"start_line":91,"start_character":16,"end_line":91,"end_character":61},"updated":"2024-04-15 09:20:24.000000000","message":"please see my comment in router.py\n\n    \u0027path\u0027: \u0027/types/encryption\u0027,","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ec39586c286a9ab462a3b1560dc5edc24a7830e","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        operations\u003d["},{"line_number":89,"context_line":"            {"},{"line_number":90,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":91,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption/\u0027,"},{"line_number":92,"context_line":"            },"},{"line_number":93,"context_line":"        ],"},{"line_number":94,"context_line":"        deprecated_rule\u003ddeprecated_encryption_index"}],"source_content_type":"text/x-python","patch_set":4,"id":"47a67adc_ccdca4ef","line":91,"range":{"start_line":91,"start_character":16,"end_line":91,"end_character":61},"in_reply_to":"46bf0083_af40c78f","updated":"2024-04-16 16:32:52.000000000","message":"Done","commit_id":"034df2fa36f64bd2a559a82ce896e79dfed5b06b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"cc259ffe_8757a016","line":1,"range":{"start_line":1,"start_character":5,"end_line":1,"end_character":24},"updated":"2024-04-17 09:39:00.000000000","message":"you must add share_types_encryption to manila/policies/__init__.py\n\n    from manila.policies import share_type\n    from manila.policies import share_types_encryption # need add this line\n    from manila.policies import share_types_extra_spec\n    \nand\n\n    def list_rules():\n    return itertools.chain(\n        base.list_rules(),\n        availability_zone.list_rules(),\n        scheduler_stats.list_rules(),\n        shares.list_rules(),\n        share_instance_export_location.list_rules(),\n        share_type.list_rules(),\n        share_types_encryption.list_rules(),   #add this line\n        share_types_extra_spec.list_rules(),","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ace9ca612b6b00225643a4136e9235701a92b9d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"bcd8c0c3_12352f28","line":1,"range":{"start_line":1,"start_character":5,"end_line":1,"end_character":24},"in_reply_to":"cc259ffe_8757a016","updated":"2024-04-17 16:44:48.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        operations\u003d["},{"line_number":63,"context_line":"            {"},{"line_number":64,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":65,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption\u0027,"},{"line_number":66,"context_line":"            }"},{"line_number":67,"context_line":"        ],"},{"line_number":68,"context_line":"        deprecated_rule\u003ddeprecated_encryption_create"}],"source_content_type":"text/x-python","patch_set":5,"id":"0fd7a148_f160acb6","line":65,"range":{"start_line":65,"start_character":48,"end_line":65,"end_character":58},"updated":"2024-04-17 09:39:00.000000000","message":"encryptions","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        operations\u003d["},{"line_number":63,"context_line":"            {"},{"line_number":64,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":65,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption\u0027,"},{"line_number":66,"context_line":"            }"},{"line_number":67,"context_line":"        ],"},{"line_number":68,"context_line":"        deprecated_rule\u003ddeprecated_encryption_create"}],"source_content_type":"text/x-python","patch_set":5,"id":"be871f08_7b91f818","line":65,"range":{"start_line":65,"start_character":48,"end_line":65,"end_character":58},"in_reply_to":"0fd7a148_f160acb6","updated":"2024-04-22 02:11:38.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":67,"context_line":"        ],"},{"line_number":68,"context_line":"        deprecated_rule\u003ddeprecated_encryption_create"},{"line_number":69,"context_line":"    ),"},{"line_number":70,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":71,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027show\u0027,"},{"line_number":72,"context_line":"        check_str\u003dbase.ADMIN,"},{"line_number":73,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":74,"context_line":"        description\u003d\"Get share type encryption of a given share type.\","},{"line_number":75,"context_line":"        operations\u003d["},{"line_number":76,"context_line":"            {"},{"line_number":77,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":78,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption/\u0027,"},{"line_number":79,"context_line":"            }"},{"line_number":80,"context_line":"        ],"},{"line_number":81,"context_line":"        deprecated_rule\u003ddeprecated_encryption_show"},{"line_number":82,"context_line":"    ),"},{"line_number":83,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":84,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027index\u0027,"},{"line_number":85,"context_line":"        check_str\u003dbase.ADMIN,"}],"source_content_type":"text/x-python","patch_set":5,"id":"b882c322_97f15408","line":82,"range":{"start_line":70,"start_character":4,"end_line":82,"end_character":6},"updated":"2024-04-17 09:39:00.000000000","message":"delete it, we no need show.","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ace9ca612b6b00225643a4136e9235701a92b9d","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        ],"},{"line_number":68,"context_line":"        deprecated_rule\u003ddeprecated_encryption_create"},{"line_number":69,"context_line":"    ),"},{"line_number":70,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":71,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027show\u0027,"},{"line_number":72,"context_line":"        check_str\u003dbase.ADMIN,"},{"line_number":73,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":74,"context_line":"        description\u003d\"Get share type encryption of a given share type.\","},{"line_number":75,"context_line":"        operations\u003d["},{"line_number":76,"context_line":"            {"},{"line_number":77,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":78,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption/\u0027,"},{"line_number":79,"context_line":"            }"},{"line_number":80,"context_line":"        ],"},{"line_number":81,"context_line":"        deprecated_rule\u003ddeprecated_encryption_show"},{"line_number":82,"context_line":"    ),"},{"line_number":83,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":84,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027index\u0027,"},{"line_number":85,"context_line":"        check_str\u003dbase.ADMIN,"}],"source_content_type":"text/x-python","patch_set":5,"id":"78b049fd_c7be318e","line":82,"range":{"start_line":70,"start_character":4,"end_line":82,"end_character":6},"in_reply_to":"b882c322_97f15408","updated":"2024-04-17 16:44:48.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        operations\u003d["},{"line_number":89,"context_line":"            {"},{"line_number":90,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":91,"context_line":"                \u0027path\u0027: \u0027/types/encryption/\u0027,"},{"line_number":92,"context_line":"            },"},{"line_number":93,"context_line":"        ],"},{"line_number":94,"context_line":"        deprecated_rule\u003ddeprecated_encryption_index"}],"source_content_type":"text/x-python","patch_set":5,"id":"76bcb2e5_ac894e35","line":91,"range":{"start_line":91,"start_character":25,"end_line":91,"end_character":43},"updated":"2024-04-17 09:39:00.000000000","message":"/types/{share_type_id}/encryptions","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        operations\u003d["},{"line_number":89,"context_line":"            {"},{"line_number":90,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":91,"context_line":"                \u0027path\u0027: \u0027/types/encryption/\u0027,"},{"line_number":92,"context_line":"            },"},{"line_number":93,"context_line":"        ],"},{"line_number":94,"context_line":"        deprecated_rule\u003ddeprecated_encryption_index"}],"source_content_type":"text/x-python","patch_set":5,"id":"45c5c461_f9dc2299","line":91,"range":{"start_line":91,"start_character":25,"end_line":91,"end_character":43},"in_reply_to":"76bcb2e5_ac894e35","updated":"2024-04-22 02:11:38.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":101,"context_line":"        operations\u003d["},{"line_number":102,"context_line":"            {"},{"line_number":103,"context_line":"                \u0027method\u0027: \u0027PUT\u0027,"},{"line_number":104,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption/{encryption_id}\u0027,"},{"line_number":105,"context_line":"            }"},{"line_number":106,"context_line":"        ],"},{"line_number":107,"context_line":"        deprecated_rule\u003ddeprecated_encryption_update"}],"source_content_type":"text/x-python","patch_set":5,"id":"0a9f91db_1aa486e0","line":104,"range":{"start_line":104,"start_character":48,"end_line":104,"end_character":58},"updated":"2024-04-17 09:39:00.000000000","message":"encryptions","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        operations\u003d["},{"line_number":102,"context_line":"            {"},{"line_number":103,"context_line":"                \u0027method\u0027: \u0027PUT\u0027,"},{"line_number":104,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption/{encryption_id}\u0027,"},{"line_number":105,"context_line":"            }"},{"line_number":106,"context_line":"        ],"},{"line_number":107,"context_line":"        deprecated_rule\u003ddeprecated_encryption_update"}],"source_content_type":"text/x-python","patch_set":5,"id":"53ea9b50_a28cce91","line":104,"range":{"start_line":104,"start_character":48,"end_line":104,"end_character":58},"in_reply_to":"0a9f91db_1aa486e0","updated":"2024-04-22 02:11:38.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"0d0509e28cab0dcb074330dac65e1704ef44e63f","unresolved":true,"context_lines":[{"line_number":114,"context_line":"        operations\u003d["},{"line_number":115,"context_line":"            {"},{"line_number":116,"context_line":"                \u0027method\u0027: \u0027DELETE\u0027,"},{"line_number":117,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption/{encryption_id}\u0027,"},{"line_number":118,"context_line":"            }"},{"line_number":119,"context_line":"        ],"},{"line_number":120,"context_line":"        deprecated_rule\u003ddeprecated_encryption_delete"}],"source_content_type":"text/x-python","patch_set":5,"id":"3bb6df4c_35f99728","line":117,"range":{"start_line":117,"start_character":48,"end_line":117,"end_character":58},"updated":"2024-04-17 09:39:00.000000000","message":"encryptions","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        operations\u003d["},{"line_number":115,"context_line":"            {"},{"line_number":116,"context_line":"                \u0027method\u0027: \u0027DELETE\u0027,"},{"line_number":117,"context_line":"                \u0027path\u0027: \u0027/types/{share_type_id}/encryption/{encryption_id}\u0027,"},{"line_number":118,"context_line":"            }"},{"line_number":119,"context_line":"        ],"},{"line_number":120,"context_line":"        deprecated_rule\u003ddeprecated_encryption_delete"}],"source_content_type":"text/x-python","patch_set":5,"id":"d129e6fe_3a738c01","line":117,"range":{"start_line":117,"start_character":48,"end_line":117,"end_character":58},"in_reply_to":"3bb6df4c_35f99728","updated":"2024-04-22 02:11:38.000000000","message":"Done","commit_id":"7173257f3c0f48a4fa763e75fd06c8f2dfcfca7b"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":true,"context_lines":[{"line_number":75,"context_line":"        deprecated_rule\u003ddeprecated_encryption_index"},{"line_number":76,"context_line":"    ),"},{"line_number":77,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":78,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027update\u0027,"},{"line_number":79,"context_line":"        check_str\u003dbase.ADMIN,"},{"line_number":80,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":81,"context_line":"        description\u003d\"Update share type encryption.\","}],"source_content_type":"text/x-python","patch_set":7,"id":"dd0bbd95_4aefc68e","line":78,"range":{"start_line":78,"start_character":33,"end_line":78,"end_character":39},"updated":"2024-04-22 02:11:38.000000000","message":"update_encryption","commit_id":"0bccc970c6c9b5c50e344724bfa560737754d745"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"f8ae09aabeb99444b48e444ba38c0658b2af3d1f","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        deprecated_rule\u003ddeprecated_encryption_index"},{"line_number":76,"context_line":"    ),"},{"line_number":77,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":78,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027update\u0027,"},{"line_number":79,"context_line":"        check_str\u003dbase.ADMIN,"},{"line_number":80,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":81,"context_line":"        description\u003d\"Update share type encryption.\","}],"source_content_type":"text/x-python","patch_set":7,"id":"cc2c05c9_2c2d8a8d","line":78,"range":{"start_line":78,"start_character":33,"end_line":78,"end_character":39},"in_reply_to":"dd0bbd95_4aefc68e","updated":"2024-04-22 16:59:30.000000000","message":"Done","commit_id":"0bccc970c6c9b5c50e344724bfa560737754d745"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"81376da96a3bd1391a906f39c326a0fa8051b83d","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        deprecated_rule\u003ddeprecated_encryption_update"},{"line_number":89,"context_line":"    ),"},{"line_number":90,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":91,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027delete\u0027,"},{"line_number":92,"context_line":"        check_str\u003dbase.ADMIN,"},{"line_number":93,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":94,"context_line":"        description\u003d\"Delete share type encryption.\","}],"source_content_type":"text/x-python","patch_set":7,"id":"aedc81f2_86d9c226","line":91,"range":{"start_line":91,"start_character":33,"end_line":91,"end_character":39},"updated":"2024-04-22 02:11:38.000000000","message":"delete_encryption","commit_id":"0bccc970c6c9b5c50e344724bfa560737754d745"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"f8ae09aabeb99444b48e444ba38c0658b2af3d1f","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        deprecated_rule\u003ddeprecated_encryption_update"},{"line_number":89,"context_line":"    ),"},{"line_number":90,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":91,"context_line":"        name\u003dBASE_POLICY_NAME % \u0027delete\u0027,"},{"line_number":92,"context_line":"        check_str\u003dbase.ADMIN,"},{"line_number":93,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":94,"context_line":"        description\u003d\"Delete share type encryption.\","}],"source_content_type":"text/x-python","patch_set":7,"id":"bfca35b0_4831f2f7","line":91,"range":{"start_line":91,"start_character":33,"end_line":91,"end_character":39},"in_reply_to":"aedc81f2_86d9c226","updated":"2024-04-22 16:59:30.000000000","message":"Done","commit_id":"0bccc970c6c9b5c50e344724bfa560737754d745"}]}
