)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"34b45fe25406ca04913fc893e1cc77ce40dcb639","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Franca Mgbogu \u003cfranciedigital@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-11-04 04:15:00 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add --wait flag to the share access/deny rule"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch set adds the --wait flag to the share access/"},{"line_number":10,"context_line":"deny rule operation. This will make the CLI to wait for the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"409621e1_86c1c1c2","line":7,"updated":"2021-11-04 07:23:35.000000000","message":"Might want to update the commit message as we are not adding the flag to access deny command :)","commit_id":"c5fafc40a5f23469473f88b285a3a29d8aa7c357"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"0c60028482f0fd5f7ca4b86eab757e99ad7021e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3688eca4_fd80351d","updated":"2021-11-02 19:08:33.000000000","message":"Thank you so much for working on this Franca! It\u0027s a bit tricky so thank you for your patience. I left some comments inline, let me know if you have any questions :) ","commit_id":"60d5bd7b30d1293d9a3d7815b1244febde1bd958"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"34b45fe25406ca04913fc893e1cc77ce40dcb639","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5ad7240d_5ec61084","updated":"2021-11-04 07:23:35.000000000","message":"Thanks Franca! Please have another look at the _find method, I believe it is causing an error. I left comments inline, let me know if you have any questions.","commit_id":"c5fafc40a5f23469473f88b285a3a29d8aa7c357"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"0bac79478b89406459f9e1f391590f9c7cced44d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3e759d31_455d74e6","updated":"2021-11-04 17:58:34.000000000","message":"Thanks Franca! I\u0027ve tested this in my environment and it works as expected, great job! Let\u0027s also try to add a test to this patch. You can see the access allow tests here: https://github.com/openstack/python-manilaclient/blob/master/manilaclient/tests/unit/v2/test_shell.py#L2113\nAnd you should also find examples for the \u0027--wait\u0027 tests, for example: https://github.com/openstack/python-manilaclient/blob/master/manilaclient/tests/unit/v2/test_shell.py#L2106\nLet me know if you have any questions :) \n","commit_id":"d1d8326e12f926105d6c63e905a39297bbc709a4"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c962fe3c0b1cfcbb7980133e26ea594fb1877596","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b6c0c324_1ad459cd","in_reply_to":"3e759d31_455d74e6","updated":"2021-11-05 12:26:13.000000000","message":"+1 :)","commit_id":"d1d8326e12f926105d6c63e905a39297bbc709a4"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"c48aec1966d7d9dc3d3168560e95f819f66d9ebb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"362581db_0bee1b43","updated":"2021-11-10 15:01:06.000000000","message":"Looks good Franca! Some tweaks are needed to make the test work, but overall is in good shape. Thanks!","commit_id":"25275d13bd1ef7d5fc2375571e307eaaa46a78e2"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"d96342c6c30128bbe3323f48ebb32db0ff8cb8ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"e7471900_958dd335","updated":"2021-11-12 10:15:00.000000000","message":"recheck","commit_id":"590a4615f4466667fc8392dfa38179fe8d3c415e"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"6dae15f3e0a5264361589fb687483e27901e8115","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"ad41458e_efad6ab5","updated":"2021-11-15 12:42:25.000000000","message":"Looks good to me, thanks Franca!","commit_id":"a45d48ecd5e13c45357fcddc3ecbb60d8d45fe22"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4ecd7027779d1af06070b251aa515ee93557fb54","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"9f35363d_a4bb688c","updated":"2022-01-06 00:43:20.000000000","message":"Thank you Franca - see comment inline.. ","commit_id":"a45d48ecd5e13c45357fcddc3ecbb60d8d45fe22"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"78e131a3904ebe4dd6c8f13388e4bac3b309b2a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"8fad78c8_30771dcb","updated":"2022-04-05 10:08:45.000000000","message":"Hi Franca! I see you updated the patch but the gate is failing, do you need some assistance with debugging this? :) ","commit_id":"5806d4f0c82fed649e393f9fdc9721e81909a121"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"101d77f20c33545cb0786d766a4bdf7f640e8896","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3d6fd1fb_0817ebc3","updated":"2022-04-06 23:53:58.000000000","message":"Thanks for working on this change, Franca!\nPlease check the comment inline","commit_id":"5806d4f0c82fed649e393f9fdc9721e81909a121"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"247344f5e90b994a13e478cfb9aebd54293bb9a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"da317f2d_80396d03","in_reply_to":"8fad78c8_30771dcb","updated":"2022-04-06 14:32:22.000000000","message":"This is a PEP8 issue, I ran locally `tox -e pep8` but that did not complete a full run. Let me use `git diff` and try and fix the bug related to `pep8`. If the gate isn\u0027t happy after then I call for help. Thanks","commit_id":"5806d4f0c82fed649e393f9fdc9721e81909a121"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"29a0bd2e8c8ce440e7db78698ba52fb392171d43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"05adeaa6_1cd0410d","updated":"2022-04-07 12:19:02.000000000","message":"Thank you for working on the comments, Franca\nAdded a few more that will help you to fix the unit tests. Please check them inline","commit_id":"fae4e5f24a6549b63f09cdc901b18fac31d22c9d"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"4f839171bc25784548048bc024fada46d3ace508","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"944d0741_cde79ee3","updated":"2022-04-09 10:24:53.000000000","message":"Thanks for working on this Franca! I\u0027ve tested this in my environment now and the microversion check is working as expected :) I only left one more refactoring note, please see inline.","commit_id":"0683a214d378225f734f9bb27feddecc7ac2bda3"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"59263eea775e00a5b4672f38adb23a8ff3f68ce1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"072f86ec_d95bf4a2","updated":"2022-04-11 06:08:49.000000000","message":"Thanks Franca, I\u0027ve tested it again just now and realised I gave you bad advise, sorry about that, see notes inline :) ","commit_id":"e76d4ea5792bab0dfe6689a72d10ceee9126e73c"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"31badce317e649a188b777fe3f0a663eac83ced0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"84975860_4f58f12e","updated":"2022-04-19 05:20:51.000000000","message":"Hi Franca, I tested it again in my environment and found one more issue with the final result we print out to the user, please see comments inline. Let me know if you have any questions. Thanks!","commit_id":"d22368635e26799f8db2bcdaf8e99265db4f4d38"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"a023480ce1df05021cbce1320fb50d9458e00d22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"d93d7095_01394c28","updated":"2022-04-21 08:41:14.000000000","message":"Please also rebase this on the latest master, ping me on IRC if you need help on how to do that :) ","commit_id":"a13c4db0f8f1e6569d3e1cccd16a57791c867a96"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"50168259862a80f4f7235bca364213116069c5b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"4d0d0ddb_d8068858","updated":"2022-04-21 08:31:02.000000000","message":"Thanks for making the changes Franca, I left notes inline about fixing the test.","commit_id":"a13c4db0f8f1e6569d3e1cccd16a57791c867a96"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"e055d592b0bb39fba24d7a348544f7e68c133f44","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"958ee7e9_17b17e00","in_reply_to":"d93d7095_01394c28","updated":"2022-04-21 12:29:55.000000000","message":"\u003e Please also rebase this on the latest master, ping me on IRC if you need help on how to do that :) \n\nPlease confirm, I rebased before pushing.\nThanks for the review","commit_id":"a13c4db0f8f1e6569d3e1cccd16a57791c867a96"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7effe6e097a4139c7a2ba443f55c0128e9345297","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"56547bfa_891be93e","updated":"2022-04-29 19:06:22.000000000","message":"Looking good to me! Thank you Franca","commit_id":"2075cba0a9c1c1e798653d53b4a9351f0abcc089"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"51db6b0ad4595a8ce47a88021ac6a6fa6651a581","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"5d4a1344_38d48f9d","updated":"2022-04-29 19:06:37.000000000","message":"Tested and is working just fine :)","commit_id":"2075cba0a9c1c1e798653d53b4a9351f0abcc089"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"8f5fe4818d72f8e0d777c3f4646b3318127a4a97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"05f9d9bd_00dcb444","updated":"2022-04-21 14:44:07.000000000","message":"Thanks Franca! I\u0027ve tested this again in my environment and it worked as expected now. LGTM!","commit_id":"2075cba0a9c1c1e798653d53b4a9351f0abcc089"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"cc8b686dfbf6353fbd8b178c1b2dd878dc66e1fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"83e3e454_e1bee656","in_reply_to":"05f9d9bd_00dcb444","updated":"2022-04-22 08:50:15.000000000","message":"\u003e Thanks Franca! I\u0027ve tested this again in my environment and it worked as expected now. LGTM!\n\nThanks for the assists all along","commit_id":"2075cba0a9c1c1e798653d53b4a9351f0abcc089"}],"manilaclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"c48aec1966d7d9dc3d3168560e95f819f66d9ebb","unresolved":true,"context_lines":[{"line_number":2257,"context_line":"        cliutils.print_dict.assert_called_with("},{"line_number":2258,"context_line":"            {\u0027access_type\u0027: \u0027ip\u0027, \u0027access_to\u0027: \u00271.1.1.1\u0027})"},{"line_number":2259,"context_line":""},{"line_number":2260,"context_line":"    @ddt.data({\u0027share\u0027: \u0027fake_share\u0027},"},{"line_number":2261,"context_line":"              {\u0027access_type\u0027: \u0027ip\u0027},"},{"line_number":2262,"context_line":"              {\u0027access_to\u0027: \u002710.0.0.1\u0027}"},{"line_number":2263,"context_line":"              )"}],"source_content_type":"text/x-python","patch_set":10,"id":"41598672_39e3d0fb","line":2260,"updated":"2021-11-10 15:01:06.000000000","message":"No need to use ddt for this. We want to test that the wait param works and that the prompt won\u0027t return unless we have a confirmation that the operation is finished. Having said this, we don\u0027t really need to test with different values for each parameters, something for we would need to use ddt.\n\nDrop L2260 TO 2264","commit_id":"25275d13bd1ef7d5fc2375571e307eaaa46a78e2"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"15500b10fb2440ffa39fd812a418733c03303e29","unresolved":true,"context_lines":[{"line_number":2257,"context_line":"        cliutils.print_dict.assert_called_with("},{"line_number":2258,"context_line":"            {\u0027access_type\u0027: \u0027ip\u0027, \u0027access_to\u0027: \u00271.1.1.1\u0027})"},{"line_number":2259,"context_line":""},{"line_number":2260,"context_line":"    @ddt.data({\u0027share\u0027: \u0027fake_share\u0027},"},{"line_number":2261,"context_line":"              {\u0027access_type\u0027: \u0027ip\u0027},"},{"line_number":2262,"context_line":"              {\u0027access_to\u0027: \u002710.0.0.1\u0027}"},{"line_number":2263,"context_line":"              )"}],"source_content_type":"text/x-python","patch_set":10,"id":"b77a4ae5_85ffe53b","line":2260,"in_reply_to":"41598672_39e3d0fb","updated":"2021-11-11 11:53:22.000000000","message":"\u003e No need to use ddt for this. We want to test that the wait param works and that the prompt won\u0027t return unless we have a confirmation that the operation is finished. Having said this, we don\u0027t really need to test with different values for each parameters, something for we would need to use ddt.\n\u003e \n\u003e Drop L2260 TO 2264\n\nGot it! Thanks","commit_id":"25275d13bd1ef7d5fc2375571e307eaaa46a78e2"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"c48aec1966d7d9dc3d3168560e95f819f66d9ebb","unresolved":true,"context_lines":[{"line_number":2262,"context_line":"              {\u0027access_to\u0027: \u002710.0.0.1\u0027}"},{"line_number":2263,"context_line":"              )"},{"line_number":2264,"context_line":"    @ddt.unpack"},{"line_number":2265,"context_line":"    def test_allow_access_wait(self, share, access_type, access_to):"},{"line_number":2266,"context_line":"        self.mock_object(shell_v2, \u0027_find_share\u0027, share)"},{"line_number":2267,"context_line":"        expected \u003d {"},{"line_number":2268,"context_line":"            \"allow_access\": {"}],"source_content_type":"text/x-python","patch_set":10,"id":"af292b52_2066ec7c","line":2265,"updated":"2021-11-10 15:01:06.000000000","message":"Remove share, access_type and access_to from the test signature since we will hardwire some values","commit_id":"25275d13bd1ef7d5fc2375571e307eaaa46a78e2"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"c48aec1966d7d9dc3d3168560e95f819f66d9ebb","unresolved":true,"context_lines":[{"line_number":2263,"context_line":"              )"},{"line_number":2264,"context_line":"    @ddt.unpack"},{"line_number":2265,"context_line":"    def test_allow_access_wait(self, share, access_type, access_to):"},{"line_number":2266,"context_line":"        self.mock_object(shell_v2, \u0027_find_share\u0027, share)"},{"line_number":2267,"context_line":"        expected \u003d {"},{"line_number":2268,"context_line":"            \"allow_access\": {"},{"line_number":2269,"context_line":"                \"access_type\": \"ip\","}],"source_content_type":"text/x-python","patch_set":10,"id":"a45bc5e6_b9234763","line":2266,"updated":"2021-11-10 15:01:06.000000000","message":"We can drop this","commit_id":"25275d13bd1ef7d5fc2375571e307eaaa46a78e2"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"c48aec1966d7d9dc3d3168560e95f819f66d9ebb","unresolved":true,"context_lines":[{"line_number":2264,"context_line":"    @ddt.unpack"},{"line_number":2265,"context_line":"    def test_allow_access_wait(self, share, access_type, access_to):"},{"line_number":2266,"context_line":"        self.mock_object(shell_v2, \u0027_find_share\u0027, share)"},{"line_number":2267,"context_line":"        expected \u003d {"},{"line_number":2268,"context_line":"            \"allow_access\": {"},{"line_number":2269,"context_line":"                \"access_type\": \"ip\","},{"line_number":2270,"context_line":"                \"access_to\": \"10.0.0.1\","}],"source_content_type":"text/x-python","patch_set":10,"id":"3dc8ad66_55e25e70","line":2267,"updated":"2021-11-10 15:01:06.000000000","message":"We can drop this","commit_id":"25275d13bd1ef7d5fc2375571e307eaaa46a78e2"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"c48aec1966d7d9dc3d3168560e95f819f66d9ebb","unresolved":true,"context_lines":[{"line_number":2271,"context_line":"            }"},{"line_number":2272,"context_line":"        }"},{"line_number":2273,"context_line":"        self.run_command("},{"line_number":2274,"context_line":"            \"access_allow\" + share + access_type + access_to + \" --wait\")"},{"line_number":2275,"context_line":"        self.assert_called(\"POST\", \"/shares/{share}/action\", body\u003dexpected)"},{"line_number":2276,"context_line":""},{"line_number":2277,"context_line":"    def test_snapshot_access_deny(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"c8d8c4df_07a2c32d","line":2274,"updated":"2021-11-10 15:01:06.000000000","message":"Replace share, access_type and access_to for the desired values. E.g. \"access_allow fake_share ip 10.0.0.1 --wait\"","commit_id":"25275d13bd1ef7d5fc2375571e307eaaa46a78e2"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"77b6a41b29fb826cfe4d98d501f44a3b80d49f85","unresolved":true,"context_lines":[{"line_number":2273,"context_line":"        self.run_command("},{"line_number":2274,"context_line":"            \"access_allow\" + share + access_type + access_to + \" --wait\")"},{"line_number":2275,"context_line":"        self.assert_called(\"POST\", \"/shares/{share}/action\", body\u003dexpected)"},{"line_number":2276,"context_line":""},{"line_number":2277,"context_line":"    def test_snapshot_access_deny(self):"},{"line_number":2278,"context_line":"        self.run_command(\"snapshot-access-deny 1234 fake_id\")"},{"line_number":2279,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"4e1e5b46_7b59c9e1","line":2276,"updated":"2022-04-08 09:05:33.000000000","message":"I wonder if I need to add an `else` statement here to denote the commandError to be raised in case the user passes API version less than \u00272.45\u0027?","commit_id":"25275d13bd1ef7d5fc2375571e307eaaa46a78e2"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"c48aec1966d7d9dc3d3168560e95f819f66d9ebb","unresolved":true,"context_lines":[{"line_number":2273,"context_line":"        self.run_command("},{"line_number":2274,"context_line":"            \"access_allow\" + share + access_type + access_to + \" --wait\")"},{"line_number":2275,"context_line":"        self.assert_called(\"POST\", \"/shares/{share}/action\", body\u003dexpected)"},{"line_number":2276,"context_line":""},{"line_number":2277,"context_line":"    def test_snapshot_access_deny(self):"},{"line_number":2278,"context_line":"        self.run_command(\"snapshot-access-deny 1234 fake_id\")"},{"line_number":2279,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"99bcf823_306b82f5","line":2276,"updated":"2021-11-10 15:01:06.000000000","message":"We would need to add an assertion to check if the wait_for_resource_status function is being called.","commit_id":"25275d13bd1ef7d5fc2375571e307eaaa46a78e2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7effe6e097a4139c7a2ba443f55c0128e9345297","unresolved":true,"context_lines":[{"line_number":2273,"context_line":"        self.run_command("},{"line_number":2274,"context_line":"            \"access_allow\" + share + access_type + access_to + \" --wait\")"},{"line_number":2275,"context_line":"        self.assert_called(\"POST\", \"/shares/{share}/action\", body\u003dexpected)"},{"line_number":2276,"context_line":""},{"line_number":2277,"context_line":"    def test_snapshot_access_deny(self):"},{"line_number":2278,"context_line":"        self.run_command(\"snapshot-access-deny 1234 fake_id\")"},{"line_number":2279,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"191cd28f_2594b368","line":2276,"in_reply_to":"4e1e5b46_7b59c9e1","updated":"2022-04-29 19:06:22.000000000","message":"I wouldn\u0027t say so... You\u0027re defining a set starting from 2.45 in the DDT declaration, so the negative scenario isn\u0027t being tested on this test case","commit_id":"25275d13bd1ef7d5fc2375571e307eaaa46a78e2"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"15500b10fb2440ffa39fd812a418733c03303e29","unresolved":true,"context_lines":[{"line_number":2273,"context_line":"        self.run_command("},{"line_number":2274,"context_line":"            \"access_allow\" + share + access_type + access_to + \" --wait\")"},{"line_number":2275,"context_line":"        self.assert_called(\"POST\", \"/shares/{share}/action\", body\u003dexpected)"},{"line_number":2276,"context_line":""},{"line_number":2277,"context_line":"    def test_snapshot_access_deny(self):"},{"line_number":2278,"context_line":"        self.run_command(\"snapshot-access-deny 1234 fake_id\")"},{"line_number":2279,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"468879a7_aea0b0bd","line":2276,"in_reply_to":"99bcf823_306b82f5","updated":"2021-11-11 11:53:22.000000000","message":"\u003e We would need to add an assertion to check if the wait_for_resource_status function is being called.\n\nSure! I get it now","commit_id":"25275d13bd1ef7d5fc2375571e307eaaa46a78e2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"29a0bd2e8c8ce440e7db78698ba52fb392171d43","unresolved":true,"context_lines":[{"line_number":2271,"context_line":"        with mock.patch.object(apiclient_utils, \u0027find_resource\u0027,"},{"line_number":2272,"context_line":"                               mock.Mock(return_value\u003dfake_share)):"},{"line_number":2273,"context_line":"            is_default_in_api \u003d (api_versions.APIVersion(version) \u003e\u003d"},{"line_number":2274,"context_line":"                                 api_versions.APIVersion(\u00272.46\u0027))"},{"line_number":2275,"context_line":"            if is_default_in_api:"},{"line_number":2276,"context_line":"                self.run_command(\"access-allow fake_share ip 10.0.0.1 --wait\","},{"line_number":2277,"context_line":"                                 version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":17,"id":"561ae43e_7231a22b","line":2274,"range":{"start_line":2274,"start_character":57,"end_line":2274,"end_character":63},"updated":"2022-04-07 12:19:02.000000000","message":"this should be 2.45, as waiting is allowed in versions equal to or greater than 2.45","commit_id":"fae4e5f24a6549b63f09cdc901b18fac31d22c9d"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"50168259862a80f4f7235bca364213116069c5b5","unresolved":true,"context_lines":[{"line_number":2260,"context_line":""},{"line_number":2261,"context_line":"    @ddt.data(*set([\"2.45\", api_versions.MAX_VERSION]))"},{"line_number":2262,"context_line":"    def test_allow_access_wait(self, version):"},{"line_number":2263,"context_line":"        fake_access_rule \u003d {\u0027id\u0027: \u0027fake_id\u0027}"},{"line_number":2264,"context_line":"        fake_share \u003d mock.Mock()"},{"line_number":2265,"context_line":"        fake_share.name \u003d \u0027fake_share\u0027"},{"line_number":2266,"context_line":"        fake_share.allow \u003d mock.Mock(return_value\u003dfake_access_rule)"}],"source_content_type":"text/x-python","patch_set":22,"id":"aa24692d_b66f8503","line":2263,"updated":"2022-04-21 08:31:02.000000000","message":"we also need to mock a return value for _wait_for_resource_status here now. You could add something like:\n  fake_access \u003d mock.Mock()\n  fake_access._info \u003d fake_access_rule","commit_id":"a13c4db0f8f1e6569d3e1cccd16a57791c867a96"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"8f5fe4818d72f8e0d777c3f4646b3318127a4a97","unresolved":false,"context_lines":[{"line_number":2260,"context_line":""},{"line_number":2261,"context_line":"    @ddt.data(*set([\"2.45\", api_versions.MAX_VERSION]))"},{"line_number":2262,"context_line":"    def test_allow_access_wait(self, version):"},{"line_number":2263,"context_line":"        fake_access_rule \u003d {\u0027id\u0027: \u0027fake_id\u0027}"},{"line_number":2264,"context_line":"        fake_share \u003d mock.Mock()"},{"line_number":2265,"context_line":"        fake_share.name \u003d \u0027fake_share\u0027"},{"line_number":2266,"context_line":"        fake_share.allow \u003d mock.Mock(return_value\u003dfake_access_rule)"}],"source_content_type":"text/x-python","patch_set":22,"id":"136efaa5_6b3312e2","line":2263,"in_reply_to":"aa24692d_b66f8503","updated":"2022-04-21 14:44:07.000000000","message":"Done","commit_id":"a13c4db0f8f1e6569d3e1cccd16a57791c867a96"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"50168259862a80f4f7235bca364213116069c5b5","unresolved":true,"context_lines":[{"line_number":2265,"context_line":"        fake_share.name \u003d \u0027fake_share\u0027"},{"line_number":2266,"context_line":"        fake_share.allow \u003d mock.Mock(return_value\u003dfake_access_rule)"},{"line_number":2267,"context_line":"        self.mock_object(shell_v2, \u0027_wait_for_resource_status\u0027,"},{"line_number":2268,"context_line":"                         mock.Mock())"},{"line_number":2269,"context_line":"        self.mock_object(share_access_rules.ShareAccessRuleManager, \u0027get\u0027,"},{"line_number":2270,"context_line":"                         mock.Mock(return_value\u003dfake_access_rule))"},{"line_number":2271,"context_line":"        with mock.patch.object(apiclient_utils, \u0027find_resource\u0027,"}],"source_content_type":"text/x-python","patch_set":22,"id":"b41cee0d_a89b4542","line":2268,"range":{"start_line":2268,"start_character":25,"end_line":2268,"end_character":36},"updated":"2022-04-21 08:31:02.000000000","message":"And here we\u0027d need to give the mock the return value:\n  mock.Mock(return_value\u003dfake_access)","commit_id":"a13c4db0f8f1e6569d3e1cccd16a57791c867a96"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"8f5fe4818d72f8e0d777c3f4646b3318127a4a97","unresolved":false,"context_lines":[{"line_number":2265,"context_line":"        fake_share.name \u003d \u0027fake_share\u0027"},{"line_number":2266,"context_line":"        fake_share.allow \u003d mock.Mock(return_value\u003dfake_access_rule)"},{"line_number":2267,"context_line":"        self.mock_object(shell_v2, \u0027_wait_for_resource_status\u0027,"},{"line_number":2268,"context_line":"                         mock.Mock())"},{"line_number":2269,"context_line":"        self.mock_object(share_access_rules.ShareAccessRuleManager, \u0027get\u0027,"},{"line_number":2270,"context_line":"                         mock.Mock(return_value\u003dfake_access_rule))"},{"line_number":2271,"context_line":"        with mock.patch.object(apiclient_utils, \u0027find_resource\u0027,"}],"source_content_type":"text/x-python","patch_set":22,"id":"6331a3f3_0a64aa9b","line":2268,"range":{"start_line":2268,"start_character":25,"end_line":2268,"end_character":36},"in_reply_to":"b41cee0d_a89b4542","updated":"2022-04-21 14:44:07.000000000","message":"Done","commit_id":"a13c4db0f8f1e6569d3e1cccd16a57791c867a96"}],"manilaclient/v2/shell.py":[{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"0c60028482f0fd5f7ca4b86eab757e99ad7021e4","unresolved":true,"context_lines":[{"line_number":66,"context_line":"        \u0027share_replica\u0027: _print_share_replica,"},{"line_number":67,"context_line":"        \u0027share_group\u0027: _print_share_group,"},{"line_number":68,"context_line":"        \u0027share_group_snapshot\u0027: _print_share_group_snapshot,"},{"line_number":69,"context_line":"        \u0027share_instance\u0027: _print_share_instance,"},{"line_number":70,"context_line":"    }"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    expected_status \u003d expected_status or (\u0027available\u0027, )"}],"source_content_type":"text/x-python","patch_set":4,"id":"b5d0f394_3e05484d","line":69,"updated":"2021-11-02 19:08:33.000000000","message":"creating an access rule also returns a value, so you\u0027ll need to write up a _print_share_access_rule method and add it here.","commit_id":"60d5bd7b30d1293d9a3d7815b1244febde1bd958"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"4f839171bc25784548048bc024fada46d3ace508","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        \u0027share_replica\u0027: _print_share_replica,"},{"line_number":67,"context_line":"        \u0027share_group\u0027: _print_share_group,"},{"line_number":68,"context_line":"        \u0027share_group_snapshot\u0027: _print_share_group_snapshot,"},{"line_number":69,"context_line":"        \u0027share_instance\u0027: _print_share_instance,"},{"line_number":70,"context_line":"    }"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    expected_status \u003d expected_status or (\u0027available\u0027, )"}],"source_content_type":"text/x-python","patch_set":4,"id":"0784636c_12e2cb84","line":69,"in_reply_to":"b5d0f394_3e05484d","updated":"2022-04-09 10:24:53.000000000","message":"Done","commit_id":"60d5bd7b30d1293d9a3d7815b1244febde1bd958"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"0c60028482f0fd5f7ca4b86eab757e99ad7021e4","unresolved":true,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":"def _find_share_access_rule(cs, access_rule):"},{"line_number":248,"context_line":"    \"\"\"Get share access rule state\"\"\""},{"line_number":249,"context_line":"    return apiclient_utils.find_resource(cs.share_access_rule, access_rule)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"def _find_share_replica(cs, replica):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df034d2a_30b9694b","line":249,"range":{"start_line":249,"start_character":57,"end_line":249,"end_character":61},"updated":"2021-11-02 19:08:33.000000000","message":"rules","commit_id":"60d5bd7b30d1293d9a3d7815b1244febde1bd958"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"4f839171bc25784548048bc024fada46d3ace508","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":"def _find_share_access_rule(cs, access_rule):"},{"line_number":248,"context_line":"    \"\"\"Get share access rule state\"\"\""},{"line_number":249,"context_line":"    return apiclient_utils.find_resource(cs.share_access_rule, access_rule)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"def _find_share_replica(cs, replica):"}],"source_content_type":"text/x-python","patch_set":4,"id":"b62e90e4_7425945b","line":249,"range":{"start_line":249,"start_character":57,"end_line":249,"end_character":61},"in_reply_to":"df034d2a_30b9694b","updated":"2022-04-09 10:24:53.000000000","message":"Done","commit_id":"60d5bd7b30d1293d9a3d7815b1244febde1bd958"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"0c60028482f0fd5f7ca4b86eab757e99ad7021e4","unresolved":true,"context_lines":[{"line_number":1905,"context_line":"    if args.wait:"},{"line_number":1906,"context_line":"        try:"},{"line_number":1907,"context_line":"            _wait_for_resource_status("},{"line_number":1908,"context_line":"                cs, share_access_rule, resource_type\u003d\u0027share_access_rule\u0027,"},{"line_number":1909,"context_line":"                expected_status\u003d\u0027active\u0027)"},{"line_number":1910,"context_line":"        except exceptions.CommandError as e:"},{"line_number":1911,"context_line":"            print(e, file\u003dsys.stderr)"}],"source_content_type":"text/x-python","patch_set":4,"id":"047b9c74_441631df","line":1908,"updated":"2021-11-02 19:08:33.000000000","message":"we need to pass an access rule instance here, so you can the define the share_access_rule by fetching it by it\u0027s id within the try/except block. You can use cs.share_access_rules.get for that (https://github.com/openstack/python-manilaclient/blob/master/manilaclient/v2/share_access_rules.py#L49)","commit_id":"60d5bd7b30d1293d9a3d7815b1244febde1bd958"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"4f839171bc25784548048bc024fada46d3ace508","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"    if args.wait:"},{"line_number":1906,"context_line":"        try:"},{"line_number":1907,"context_line":"            _wait_for_resource_status("},{"line_number":1908,"context_line":"                cs, share_access_rule, resource_type\u003d\u0027share_access_rule\u0027,"},{"line_number":1909,"context_line":"                expected_status\u003d\u0027active\u0027)"},{"line_number":1910,"context_line":"        except exceptions.CommandError as e:"},{"line_number":1911,"context_line":"            print(e, file\u003dsys.stderr)"}],"source_content_type":"text/x-python","patch_set":4,"id":"31ba4c95_5b40ca57","line":1908,"in_reply_to":"047b9c74_441631df","updated":"2022-04-09 10:24:53.000000000","message":"Done","commit_id":"60d5bd7b30d1293d9a3d7815b1244febde1bd958"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"0c60028482f0fd5f7ca4b86eab757e99ad7021e4","unresolved":true,"context_lines":[{"line_number":1906,"context_line":"        try:"},{"line_number":1907,"context_line":"            _wait_for_resource_status("},{"line_number":1908,"context_line":"                cs, share_access_rule, resource_type\u003d\u0027share_access_rule\u0027,"},{"line_number":1909,"context_line":"                expected_status\u003d\u0027active\u0027)"},{"line_number":1910,"context_line":"        except exceptions.CommandError as e:"},{"line_number":1911,"context_line":"            print(e, file\u003dsys.stderr)"},{"line_number":1912,"context_line":"    cliutils.print_dict(access)"}],"source_content_type":"text/x-python","patch_set":4,"id":"8d7796e1_ca2b5cd9","line":1909,"updated":"2021-11-02 19:08:33.000000000","message":"access rule has a \u0027state\u0027 field not \u0027status\u0027, so we need to pass status_attr\u003d\u0027state\u0027 to the waiter as well.","commit_id":"60d5bd7b30d1293d9a3d7815b1244febde1bd958"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"4f839171bc25784548048bc024fada46d3ace508","unresolved":false,"context_lines":[{"line_number":1906,"context_line":"        try:"},{"line_number":1907,"context_line":"            _wait_for_resource_status("},{"line_number":1908,"context_line":"                cs, share_access_rule, resource_type\u003d\u0027share_access_rule\u0027,"},{"line_number":1909,"context_line":"                expected_status\u003d\u0027active\u0027)"},{"line_number":1910,"context_line":"        except exceptions.CommandError as e:"},{"line_number":1911,"context_line":"            print(e, file\u003dsys.stderr)"},{"line_number":1912,"context_line":"    cliutils.print_dict(access)"}],"source_content_type":"text/x-python","patch_set":4,"id":"adbdc55e_5007dff2","line":1909,"in_reply_to":"8d7796e1_ca2b5cd9","updated":"2022-04-09 10:24:53.000000000","message":"Done","commit_id":"60d5bd7b30d1293d9a3d7815b1244febde1bd958"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"34b45fe25406ca04913fc893e1cc77ce40dcb639","unresolved":true,"context_lines":[{"line_number":247,"context_line":""},{"line_number":248,"context_line":"def _find_share_access_rule(cs, access_rule):"},{"line_number":249,"context_line":"    \"\"\"Get share access rule state\"\"\""},{"line_number":250,"context_line":"    return apiclient_utils.find_resource(cs.share_access_rules.get(\u0027id\u0027),"},{"line_number":251,"context_line":"                                         access_rule)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3cefec7e_ee208dc2","line":250,"updated":"2021-11-04 07:23:35.000000000","message":"Not sure I understand the reasoning behind this change, you\u0027ll need to pass the manager and the resource, see: https://github.com/openstack/python-manilaclient/blob/master/manilaclient/common/apiclient/utils.py#L21\n\nRight now, this will cause an error: \"ERROR: Share access rule id not found.\"","commit_id":"c5fafc40a5f23469473f88b285a3a29d8aa7c357"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"4f839171bc25784548048bc024fada46d3ace508","unresolved":false,"context_lines":[{"line_number":247,"context_line":""},{"line_number":248,"context_line":"def _find_share_access_rule(cs, access_rule):"},{"line_number":249,"context_line":"    \"\"\"Get share access rule state\"\"\""},{"line_number":250,"context_line":"    return apiclient_utils.find_resource(cs.share_access_rules.get(\u0027id\u0027),"},{"line_number":251,"context_line":"                                         access_rule)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"22f286c4_1769814e","line":250,"in_reply_to":"193ea8ac_bab63544","updated":"2022-04-09 10:24:53.000000000","message":"Done","commit_id":"c5fafc40a5f23469473f88b285a3a29d8aa7c357"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"4733c728a181d3d3ae8d3c2e36317d48216d80f5","unresolved":true,"context_lines":[{"line_number":247,"context_line":""},{"line_number":248,"context_line":"def _find_share_access_rule(cs, access_rule):"},{"line_number":249,"context_line":"    \"\"\"Get share access rule state\"\"\""},{"line_number":250,"context_line":"    return apiclient_utils.find_resource(cs.share_access_rules.get(\u0027id\u0027),"},{"line_number":251,"context_line":"                                         access_rule)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"193ea8ac_bab63544","line":250,"in_reply_to":"3cefec7e_ee208dc2","updated":"2021-11-04 07:30:36.000000000","message":"\u003e Not sure I understand the reasoning behind this change, you\u0027ll need to pass the manager and the resource, see: https://github.com/openstack/python-manilaclient/blob/master/manilaclient/common/apiclient/utils.py#L21\n\u003e \n\u003e Right now, this will cause an error: \"ERROR: Share access rule id not found.\"\n\nSure! This is  fixed on the next patch","commit_id":"c5fafc40a5f23469473f88b285a3a29d8aa7c357"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"34b45fe25406ca04913fc893e1cc77ce40dcb639","unresolved":true,"context_lines":[{"line_number":253,"context_line":""},{"line_number":254,"context_line":"def _print_share_access_rule(cs, access_rule):"},{"line_number":255,"context_line":"    info \u003d access_rule._info.copy()"},{"line_number":256,"context_line":"    info.pop(\u0027links\u0027, None)"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    cliutils.print_dict(info)"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"53e9d2e7_ab770fa0","line":256,"updated":"2021-11-04 07:23:35.000000000","message":"access rule does not contain links, we can drop this line.","commit_id":"c5fafc40a5f23469473f88b285a3a29d8aa7c357"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"4f839171bc25784548048bc024fada46d3ace508","unresolved":false,"context_lines":[{"line_number":253,"context_line":""},{"line_number":254,"context_line":"def _print_share_access_rule(cs, access_rule):"},{"line_number":255,"context_line":"    info \u003d access_rule._info.copy()"},{"line_number":256,"context_line":"    info.pop(\u0027links\u0027, None)"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    cliutils.print_dict(info)"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"0964ab1f_e332ef5c","line":256,"in_reply_to":"53e9d2e7_ab770fa0","updated":"2022-04-09 10:24:53.000000000","message":"Done","commit_id":"c5fafc40a5f23469473f88b285a3a29d8aa7c357"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4ecd7027779d1af06070b251aa515ee93557fb54","unresolved":true,"context_lines":[{"line_number":1912,"context_line":"    if args.wait:"},{"line_number":1913,"context_line":"        try:"},{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1916,"context_line":"            _wait_for_resource_status("},{"line_number":1917,"context_line":"                cs, share_access_rule, resource_type\u003d\u0027share_access_rule\u0027,"},{"line_number":1918,"context_line":"                expected_status\u003d\u0027active\u0027, status_attr\u003d\u0027state\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"476eedaa_c44df4ad","line":1915,"range":{"start_line":1915,"start_character":12,"end_line":1915,"end_character":68},"updated":"2022-01-06 00:43:20.000000000","message":"this won\u0027t work if API version is \u003c2.45 so may be restrict \"--wait\" to version \n2.45 and above?\n\n\n\n\n $ manila --os-share-api-version 2.44 --debug access-allow myshare ip 10.10.10.13 --wait\n \u003csnip\u003e\n\n DEBUG (shell:739) API version \u00272.44\u0027 is not supported on \n \u0027manilaclient.v2.share_access_rules.ShareAccessRuleManager.get\u0027 method.\n Traceback (most recent call last):\n   File \"/opt/stack/python-manilaclient/manilaclient/shell.py\", line 734, in main\n     OpenStackManilaShell().main(sys.argv[1:])\n   File \"/opt/stack/python-manilaclient/manilaclient/shell.py\", line 601, in main\n     args.func(self.cs, args)\n   File \"/opt/stack/python-manilaclient/manilaclient/v2/shell.py\", line 1915, in do_access_allow\n     share_access_rule \u003d cs.share_access_rules.get(access_id)\n   File \"/opt/stack/python-manilaclient/manilaclient/api_versions.py\", line 390, in substitution\n     raise exceptions.UnsupportedVersion(\n manilaclient.common.apiclient.exceptions.UnsupportedVersion: API version \u00272.44\u0027 is not supported on \n \u0027manilaclient.v2.share_access_rules.ShareAccessRuleManager.get\u0027 method.\n ERROR: API version \u00272.44\u0027 is not supported on \u0027manilaclient.v2.share_access_rules.ShareAccessRuleManager.get\u0027 \n method.","commit_id":"a45d48ecd5e13c45357fcddc3ecbb60d8d45fe22"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"d5e0f59caf0babc7130aa826a530ddc785525638","unresolved":true,"context_lines":[{"line_number":1912,"context_line":"    if args.wait:"},{"line_number":1913,"context_line":"        try:"},{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1916,"context_line":"            _wait_for_resource_status("},{"line_number":1917,"context_line":"                cs, share_access_rule, resource_type\u003d\u0027share_access_rule\u0027,"},{"line_number":1918,"context_line":"                expected_status\u003d\u0027active\u0027, status_attr\u003d\u0027state\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"6dfefd35_eb7bb8c8","line":1915,"range":{"start_line":1915,"start_character":12,"end_line":1915,"end_character":68},"in_reply_to":"476eedaa_c44df4ad","updated":"2022-03-26 08:38:46.000000000","message":"\u003e this won\u0027t work if API version is \u003c2.45 so may be restrict \"--wait\" to version \n\u003e 2.45 and above?\n\u003e \n\u003e \n\u003e \n\u003e \n\u003e  $ manila --os-share-api-version 2.44 --debug access-allow myshare ip 10.10.10.13 --wait\n\u003e  \u003csnip\u003e\n\u003e \n\u003e  DEBUG (shell:739) API version \u00272.44\u0027 is not supported on \n\u003e  \u0027manilaclient.v2.share_access_rules.ShareAccessRuleManager.get\u0027 method.\n\u003e  Traceback (most recent call last):\n\u003e    File \"/opt/stack/python-manilaclient/manilaclient/shell.py\", line 734, in main\n\u003e      OpenStackManilaShell().main(sys.argv[1:])\n\u003e    File \"/opt/stack/python-manilaclient/manilaclient/shell.py\", line 601, in main\n\u003e      args.func(self.cs, args)\n\u003e    File \"/opt/stack/python-manilaclient/manilaclient/v2/shell.py\", line 1915, in do_access_allow\n\u003e      share_access_rule \u003d cs.share_access_rules.get(access_id)\n\u003e    File \"/opt/stack/python-manilaclient/manilaclient/api_versions.py\", line 390, in substitution\n\u003e      raise exceptions.UnsupportedVersion(\n\u003e  manilaclient.common.apiclient.exceptions.UnsupportedVersion: API version \u00272.44\u0027 is not supported on \n\u003e  \u0027manilaclient.v2.share_access_rules.ShareAccessRuleManager.get\u0027 method.\n\u003e  ERROR: API version \u00272.44\u0027 is not supported on \u0027manilaclient.v2.share_access_rules.ShareAccessRuleManager.get\u0027 \n\u003e  method.\n\nLet me fix this as I have been away for quite some time","commit_id":"a45d48ecd5e13c45357fcddc3ecbb60d8d45fe22"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"4f839171bc25784548048bc024fada46d3ace508","unresolved":false,"context_lines":[{"line_number":1912,"context_line":"    if args.wait:"},{"line_number":1913,"context_line":"        try:"},{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1916,"context_line":"            _wait_for_resource_status("},{"line_number":1917,"context_line":"                cs, share_access_rule, resource_type\u003d\u0027share_access_rule\u0027,"},{"line_number":1918,"context_line":"                expected_status\u003d\u0027active\u0027, status_attr\u003d\u0027state\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"8258dd9f_1f471015","line":1915,"range":{"start_line":1915,"start_character":12,"end_line":1915,"end_character":68},"in_reply_to":"6dfefd35_eb7bb8c8","updated":"2022-04-09 10:24:53.000000000","message":"Done","commit_id":"a45d48ecd5e13c45357fcddc3ecbb60d8d45fe22"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"101d77f20c33545cb0786d766a4bdf7f640e8896","unresolved":true,"context_lines":[{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            if cs.api_version.matches(api_versions.APIVersion(\"2.45\"),"},{"line_number":1916,"context_line":"                                      api_versions.APIVersion()):"},{"line_number":1917,"context_line":"                raise exceptions.CommandError(\"--wait flag operation\""},{"line_number":1918,"context_line":"                        \"restricted for API Version greater than 2.45\""},{"line_number":1919,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1920,"context_line":"            _wait_for_resource_status(cs, share_access_rule,"},{"line_number":1921,"context_line":"                resource_type\u003d\u0027share_access_rule\u0027, expected_status\u003d\u0027active\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9c7d1846_87b8bf54","line":1918,"range":{"start_line":1917,"start_character":46,"end_line":1918,"end_character":70},"updated":"2022-04-06 23:53:58.000000000","message":"please fix the identation for this bit and also the missing parenthesis at the end of the sentence. The block could look like:\n            if cs.api_version.matches(api_versions.APIVersion(\"2.45\"),\n                                      api_versions.APIVersion()):\n                raise exceptions.CommandError(\n                    \"Waiting on the allowing access operation is only \"\n                    \"available for API versions equal to or greater than 2.45.\"\n                )\nThis will possibly solve the issue with pep8. I also did few changes to the error message :)","commit_id":"5806d4f0c82fed649e393f9fdc9721e81909a121"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"624fb8137e49d1cc0223d4318c0f6379cd33afa9","unresolved":true,"context_lines":[{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            if cs.api_version.matches(api_versions.APIVersion(\"2.45\"),"},{"line_number":1916,"context_line":"                                      api_versions.APIVersion()):"},{"line_number":1917,"context_line":"                raise exceptions.CommandError(\"--wait flag operation\""},{"line_number":1918,"context_line":"                        \"restricted for API Version greater than 2.45\""},{"line_number":1919,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1920,"context_line":"            _wait_for_resource_status(cs, share_access_rule,"},{"line_number":1921,"context_line":"                resource_type\u003d\u0027share_access_rule\u0027, expected_status\u003d\u0027active\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"d70b7438_7d9adda1","line":1918,"range":{"start_line":1917,"start_character":46,"end_line":1918,"end_character":70},"in_reply_to":"9c7d1846_87b8bf54","updated":"2022-04-07 06:19:47.000000000","message":"\u003e please fix the identation for this bit and also the missing parenthesis at the end of the sentence. The block could look like:\n\u003e             if cs.api_version.matches(api_versions.APIVersion(\"2.45\"),\n\u003e                                       api_versions.APIVersion()):\n\u003e                 raise exceptions.CommandError(\n\u003e                     \"Waiting on the allowing access operation is only \"\n\u003e                     \"available for API versions equal to or greater than 2.45.\"\n\u003e                 )\n\u003e This will possibly solve the issue with pep8. I also did few changes to the error message :)\n\nThanks. Fixing asap","commit_id":"5806d4f0c82fed649e393f9fdc9721e81909a121"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"4f839171bc25784548048bc024fada46d3ace508","unresolved":false,"context_lines":[{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            if cs.api_version.matches(api_versions.APIVersion(\"2.45\"),"},{"line_number":1916,"context_line":"                                      api_versions.APIVersion()):"},{"line_number":1917,"context_line":"                raise exceptions.CommandError(\"--wait flag operation\""},{"line_number":1918,"context_line":"                        \"restricted for API Version greater than 2.45\""},{"line_number":1919,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1920,"context_line":"            _wait_for_resource_status(cs, share_access_rule,"},{"line_number":1921,"context_line":"                resource_type\u003d\u0027share_access_rule\u0027, expected_status\u003d\u0027active\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"c6a9e3a6_f6bddb0f","line":1918,"range":{"start_line":1917,"start_character":46,"end_line":1918,"end_character":70},"in_reply_to":"d70b7438_7d9adda1","updated":"2022-04-09 10:24:53.000000000","message":"Done","commit_id":"5806d4f0c82fed649e393f9fdc9721e81909a121"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"29a0bd2e8c8ce440e7db78698ba52fb392171d43","unresolved":true,"context_lines":[{"line_number":1912,"context_line":"    if args.wait:"},{"line_number":1913,"context_line":"        try:"},{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            if cs.api_version.matches(api_versions.APIVersion(\"2.45\"),"},{"line_number":1916,"context_line":"                                      api_versions.APIVersion()):"},{"line_number":1917,"context_line":"                raise exceptions.CommandError("},{"line_number":1918,"context_line":"                    \"Waiting on the allowing access operation is only \""}],"source_content_type":"text/x-python","patch_set":17,"id":"608829eb_564b6ea8","line":1915,"range":{"start_line":1915,"start_character":12,"end_line":1915,"end_character":15},"updated":"2022-04-07 12:19:02.000000000","message":"I believe this should be `if not`\nWe only want to raise an exception in case the API version do not match the ones stated in the .matches","commit_id":"fae4e5f24a6549b63f09cdc901b18fac31d22c9d"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"4f839171bc25784548048bc024fada46d3ace508","unresolved":false,"context_lines":[{"line_number":1912,"context_line":"    if args.wait:"},{"line_number":1913,"context_line":"        try:"},{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            if cs.api_version.matches(api_versions.APIVersion(\"2.45\"),"},{"line_number":1916,"context_line":"                                      api_versions.APIVersion()):"},{"line_number":1917,"context_line":"                raise exceptions.CommandError("},{"line_number":1918,"context_line":"                    \"Waiting on the allowing access operation is only \""}],"source_content_type":"text/x-python","patch_set":17,"id":"d2ce1157_bbc8d24a","line":1915,"range":{"start_line":1915,"start_character":12,"end_line":1915,"end_character":15},"in_reply_to":"608829eb_564b6ea8","updated":"2022-04-09 10:24:53.000000000","message":"Done","commit_id":"fae4e5f24a6549b63f09cdc901b18fac31d22c9d"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"4f839171bc25784548048bc024fada46d3ace508","unresolved":true,"context_lines":[{"line_number":1912,"context_line":"    if args.wait:"},{"line_number":1913,"context_line":"        try:"},{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            if not cs.api_version.matches(api_versions.APIVersion(\"2.45\"),"},{"line_number":1916,"context_line":"                                          api_versions.APIVersion()):"},{"line_number":1917,"context_line":"                raise exceptions.CommandError("},{"line_number":1918,"context_line":"                    \"Waiting on the allowing access operation is only \""},{"line_number":1919,"context_line":"                    \"available for API versions equal to or greater than 2.45.\""},{"line_number":1920,"context_line":"                )"},{"line_number":1921,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1922,"context_line":"            _wait_for_resource_status(cs, share_access_rule,"},{"line_number":1923,"context_line":"                                      resource_type\u003d\u0027share_access_rule\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"bc41b728_e09adf19","line":1920,"range":{"start_line":1915,"start_character":12,"end_line":1920,"end_character":17},"updated":"2022-04-09 10:24:53.000000000","message":"I would move this bit outside the try/except block. We should check the microversion right after we check if wait option was used.","commit_id":"0683a214d378225f734f9bb27feddecc7ac2bda3"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"59263eea775e00a5b4672f38adb23a8ff3f68ce1","unresolved":true,"context_lines":[{"line_number":1912,"context_line":"    if args.wait:"},{"line_number":1913,"context_line":"        try:"},{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            if not cs.api_version.matches(api_versions.APIVersion(\"2.45\"),"},{"line_number":1916,"context_line":"                                          api_versions.APIVersion()):"},{"line_number":1917,"context_line":"                raise exceptions.CommandError("},{"line_number":1918,"context_line":"                    \"Waiting on the allowing access operation is only \""},{"line_number":1919,"context_line":"                    \"available for API versions equal to or greater than 2.45.\""},{"line_number":1920,"context_line":"                )"},{"line_number":1921,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1922,"context_line":"            _wait_for_resource_status(cs, share_access_rule,"},{"line_number":1923,"context_line":"                                      resource_type\u003d\u0027share_access_rule\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"dd7be4bc_231595c9","line":1920,"range":{"start_line":1915,"start_character":12,"end_line":1920,"end_character":17},"in_reply_to":"9cad0f01_2ea24ad2","updated":"2022-04-11 06:08:49.000000000","message":"Huh, now we are losing the access rule output when using the \u0027--wait\u0027 option with microversion lower than 2.45... I didn\u0027t consider this and gave you some bad advise here. Apologies Franca. Please move the api microversion check back inside the try/except block.","commit_id":"0683a214d378225f734f9bb27feddecc7ac2bda3"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"fd6f31686db94931f1715b715690b4ccdb7dea3a","unresolved":true,"context_lines":[{"line_number":1912,"context_line":"    if args.wait:"},{"line_number":1913,"context_line":"        try:"},{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            if not cs.api_version.matches(api_versions.APIVersion(\"2.45\"),"},{"line_number":1916,"context_line":"                                          api_versions.APIVersion()):"},{"line_number":1917,"context_line":"                raise exceptions.CommandError("},{"line_number":1918,"context_line":"                    \"Waiting on the allowing access operation is only \""},{"line_number":1919,"context_line":"                    \"available for API versions equal to or greater than 2.45.\""},{"line_number":1920,"context_line":"                )"},{"line_number":1921,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1922,"context_line":"            _wait_for_resource_status(cs, share_access_rule,"},{"line_number":1923,"context_line":"                                      resource_type\u003d\u0027share_access_rule\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"9cad0f01_2ea24ad2","line":1920,"range":{"start_line":1915,"start_character":12,"end_line":1920,"end_character":17},"in_reply_to":"bc41b728_e09adf19","updated":"2022-04-11 05:26:27.000000000","message":"\u003e I would move this bit outside the try/except block. We should check the microversion right after we check if wait option was used.\n\nGot it! Let me refactor this.\nThanks","commit_id":"0683a214d378225f734f9bb27feddecc7ac2bda3"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"ee70f371dd41ff20bfae409f968818d4d26b1f8e","unresolved":true,"context_lines":[{"line_number":1912,"context_line":"    if args.wait:"},{"line_number":1913,"context_line":"        try:"},{"line_number":1914,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1915,"context_line":"            if not cs.api_version.matches(api_versions.APIVersion(\"2.45\"),"},{"line_number":1916,"context_line":"                                          api_versions.APIVersion()):"},{"line_number":1917,"context_line":"                raise exceptions.CommandError("},{"line_number":1918,"context_line":"                    \"Waiting on the allowing access operation is only \""},{"line_number":1919,"context_line":"                    \"available for API versions equal to or greater than 2.45.\""},{"line_number":1920,"context_line":"                )"},{"line_number":1921,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1922,"context_line":"            _wait_for_resource_status(cs, share_access_rule,"},{"line_number":1923,"context_line":"                                      resource_type\u003d\u0027share_access_rule\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"3b6d67b9_c6e69081","line":1920,"range":{"start_line":1915,"start_character":12,"end_line":1920,"end_character":17},"in_reply_to":"dd7be4bc_231595c9","updated":"2022-04-11 08:45:45.000000000","message":"Wow! Thanks for catching this as I did not test this case as well.\nThanks and let me fix that quickly","commit_id":"0683a214d378225f734f9bb27feddecc7ac2bda3"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"31badce317e649a188b777fe3f0a663eac83ced0","unresolved":true,"context_lines":[{"line_number":1919,"context_line":"                )"},{"line_number":1920,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1921,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1922,"context_line":"            _wait_for_resource_status(cs, share_access_rule,"},{"line_number":1923,"context_line":"                                      resource_type\u003d\u0027share_access_rule\u0027,"},{"line_number":1924,"context_line":"                                      expected_status\u003d\u0027active\u0027,"},{"line_number":1925,"context_line":"                                      status_attr\u003d\u0027state\u0027)"},{"line_number":1926,"context_line":"        except exceptions.CommandError as e:"},{"line_number":1927,"context_line":"            print(e, file\u003dsys.stderr)"},{"line_number":1928,"context_line":"    cliutils.print_dict(access)"}],"source_content_type":"text/x-python","patch_set":21,"id":"2adedfc5_b5d9dcb6","line":1925,"range":{"start_line":1922,"start_character":12,"end_line":1925,"end_character":58},"updated":"2022-04-19 05:20:51.000000000","message":"Okay, we are still missing something here...\nRight now, the wait operation works but the user will be presented with the access rule having a status \"queued to apply\".\nEventually, we are printing out \"access\" here, which means we need to override the value of that when the wait operation is used, so we print out the final status.\n\nThe wait call does return a value so I believe what we need here is something like:\n    access \u003d _wait_for_resource_status(cs, share_access_rule,\n                                       resource_type\u003d\u0027share_access_rule\u0027,\n                                       expected_status\u003d\u0027active\u0027,\n                                       status_attr\u003d\u0027state\u0027)._info","commit_id":"d22368635e26799f8db2bcdaf8e99265db4f4d38"},{"author":{"_account_id":34123,"name":"Franca Mgbogu","email":"franciedigital@gmail.com","username":"franciedigital"},"change_message_id":"5ed472d35ccfc7ba6cea218ef5097fa2d97ac350","unresolved":true,"context_lines":[{"line_number":1919,"context_line":"                )"},{"line_number":1920,"context_line":"            access_id \u003d access.get(\u0027id\u0027)"},{"line_number":1921,"context_line":"            share_access_rule \u003d cs.share_access_rules.get(access_id)"},{"line_number":1922,"context_line":"            _wait_for_resource_status(cs, share_access_rule,"},{"line_number":1923,"context_line":"                                      resource_type\u003d\u0027share_access_rule\u0027,"},{"line_number":1924,"context_line":"                                      expected_status\u003d\u0027active\u0027,"},{"line_number":1925,"context_line":"                                      status_attr\u003d\u0027state\u0027)"},{"line_number":1926,"context_line":"        except exceptions.CommandError as e:"},{"line_number":1927,"context_line":"            print(e, file\u003dsys.stderr)"},{"line_number":1928,"context_line":"    cliutils.print_dict(access)"}],"source_content_type":"text/x-python","patch_set":21,"id":"248e642b_5739f609","line":1925,"range":{"start_line":1922,"start_character":12,"end_line":1925,"end_character":58},"in_reply_to":"2adedfc5_b5d9dcb6","updated":"2022-04-19 07:56:38.000000000","message":"\u003e Okay, we are still missing something here...\n\u003e Right now, the wait operation works but the user will be presented with the access rule having a status \"queued to apply\".\n\u003e Eventually, we are printing out \"access\" here, which means we need to override the value of that when the wait operation is used, so we print out the final status.\n\u003e \n\u003e The wait call does return a value so I believe what we need here is something like:\n\u003e     access \u003d _wait_for_resource_status(cs, share_access_rule,\n\u003e                                        resource_type\u003d\u0027share_access_rule\u0027,\n\u003e                                        expected_status\u003d\u0027active\u0027,\n\u003e                                        status_attr\u003d\u0027state\u0027)._info\n\nOkay got it! Let me fix that","commit_id":"d22368635e26799f8db2bcdaf8e99265db4f4d38"}]}
