)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"18fe45bce216837acafdec1b7e98d48f7e1208c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"174a53d8_fa944b09","updated":"2022-05-25 14:31:55.000000000","message":"Hi Maari, thanks for the review. I replied your comments inline. We intend to upload a new patch soon.","commit_id":"2721dab871838c71d10c000c75ede01113d0673f"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"d2c9810ab8a9702c5bf777b01e33e2d8e91e05c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f28d7dc0_e80f63f2","updated":"2022-05-24 20:34:05.000000000","message":"Thanks for working on this Nahim and Lucas! I left some thoughts inline :) ","commit_id":"2721dab871838c71d10c000c75ede01113d0673f"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"f713dd46061862fe2c8142605575fdc8e1c9387f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"70a9b8cd_0d0a5120","updated":"2022-05-24 16:59:24.000000000","message":"recheck : Python support was fixed [1]\n\n[1] https://review.opendev.org/c/openstack/python-manilaclient/+/842722","commit_id":"2721dab871838c71d10c000c75ede01113d0673f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d43f204d931460e02ccefb29bbaf1c8d26de21d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"79ad7610_ef35c723","updated":"2022-05-31 20:13:49.000000000","message":"Looking good, only have a minor comment, but I\u0027m okay with it not being addressed if you don\u0027t judge it necessary. :)","commit_id":"db3dd88d18fcfeaf7451db1c7131d8a729794e03"},{"author":{"_account_id":33986,"name":"Lucas Morais de oliveira","email":"lucasmoliveira059@gmail.com","username":"lucasmoliveira059"},"change_message_id":"08d79b0549473ff69e4d090f18817afe1a188972","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"59e3f546_272a6cf5","updated":"2022-05-30 16:12:52.000000000","message":"Thank you Maari for review \u003d)\nWe uploaded a new patch with the changes.","commit_id":"db3dd88d18fcfeaf7451db1c7131d8a729794e03"},{"author":{"_account_id":30025,"name":"Vida Haririan","display_name":"Vida Haririan","email":"vhariria@redhat.com","username":"vhari"},"change_message_id":"430e09a89d0d361a3874a770565cb1bbc66f3548","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"aeaea658_ed095616","updated":"2022-06-01 19:18:27.000000000","message":"Validated, looks good. Noted code optimization suggestion by carloss.","commit_id":"db3dd88d18fcfeaf7451db1c7131d8a729794e03"},{"author":{"_account_id":33986,"name":"Lucas Morais de oliveira","email":"lucasmoliveira059@gmail.com","username":"lucasmoliveira059"},"change_message_id":"a15694633ef3cc5ff4024c1d345cdaecf71ae2cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5cf81372_6ab66388","updated":"2022-05-31 13:18:50.000000000","message":"recheck","commit_id":"db3dd88d18fcfeaf7451db1c7131d8a729794e03"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"cb8d9eb35f98d31f9a79267bf62deca1e54e1616","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6a4e10e3_805e1737","updated":"2022-06-27 19:32:55.000000000","message":"Thanks Nahim and Lucas!","commit_id":"6786284cc209f12702958254576604f4ab94a799"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9650469ea72356c766aae5690ec996ed007dea3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f2e023c5_56bf70c4","updated":"2022-06-29 19:56:30.000000000","message":"Thanks Nahim and Lucas! LGTM","commit_id":"6786284cc209f12702958254576604f4ab94a799"}],"manilaclient/tests/functional/osc/base.py":[{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"d2c9810ab8a9702c5bf777b01e33e2d8e91e05c3","unresolved":true,"context_lines":[{"line_number":157,"context_line":"                                 access_level\u003dNone, wait\u003dFalse):"},{"line_number":158,"context_line":"        cmd \u003d \u0027access create \u0027"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        if share:"},{"line_number":161,"context_line":"            cmd +\u003d f\u0027{share} \u0027"},{"line_number":162,"context_line":"        if access_type:"},{"line_number":163,"context_line":"            cmd +\u003d f\u0027{access_type} \u0027"},{"line_number":164,"context_line":"        if access_to:"},{"line_number":165,"context_line":"            cmd +\u003d f\u0027{access_to} \u0027"},{"line_number":166,"context_line":"        if access_level:"},{"line_number":167,"context_line":"            cmd +\u003d f\u0027--access-level {access_level} \u0027"},{"line_number":168,"context_line":"        if properties:"},{"line_number":169,"context_line":"            cmd +\u003d f\u0027--properties {properties} \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"f00eb5a0_4f25336f","line":166,"range":{"start_line":160,"start_character":0,"end_line":166,"end_character":0},"updated":"2022-05-24 20:34:05.000000000","message":"these three are positional arguments in the command so I\u0027d drop the None defaults and the if clauses here and add them to the initial cmd definition.","commit_id":"2721dab871838c71d10c000c75ede01113d0673f"},{"author":{"_account_id":33986,"name":"Lucas Morais de oliveira","email":"lucasmoliveira059@gmail.com","username":"lucasmoliveira059"},"change_message_id":"08d79b0549473ff69e4d090f18817afe1a188972","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                                 access_level\u003dNone, wait\u003dFalse):"},{"line_number":158,"context_line":"        cmd \u003d \u0027access create \u0027"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        if share:"},{"line_number":161,"context_line":"            cmd +\u003d f\u0027{share} \u0027"},{"line_number":162,"context_line":"        if access_type:"},{"line_number":163,"context_line":"            cmd +\u003d f\u0027{access_type} \u0027"},{"line_number":164,"context_line":"        if access_to:"},{"line_number":165,"context_line":"            cmd +\u003d f\u0027{access_to} \u0027"},{"line_number":166,"context_line":"        if access_level:"},{"line_number":167,"context_line":"            cmd +\u003d f\u0027--access-level {access_level} \u0027"},{"line_number":168,"context_line":"        if properties:"},{"line_number":169,"context_line":"            cmd +\u003d f\u0027--properties {properties} \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"96d76d3f_df0893ff","line":166,"range":{"start_line":160,"start_character":0,"end_line":166,"end_character":0},"in_reply_to":"b106274f_37b3e5e8","updated":"2022-05-30 16:12:52.000000000","message":"Done","commit_id":"2721dab871838c71d10c000c75ede01113d0673f"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"18fe45bce216837acafdec1b7e98d48f7e1208c3","unresolved":true,"context_lines":[{"line_number":157,"context_line":"                                 access_level\u003dNone, wait\u003dFalse):"},{"line_number":158,"context_line":"        cmd \u003d \u0027access create \u0027"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        if share:"},{"line_number":161,"context_line":"            cmd +\u003d f\u0027{share} \u0027"},{"line_number":162,"context_line":"        if access_type:"},{"line_number":163,"context_line":"            cmd +\u003d f\u0027{access_type} \u0027"},{"line_number":164,"context_line":"        if access_to:"},{"line_number":165,"context_line":"            cmd +\u003d f\u0027{access_to} \u0027"},{"line_number":166,"context_line":"        if access_level:"},{"line_number":167,"context_line":"            cmd +\u003d f\u0027--access-level {access_level} \u0027"},{"line_number":168,"context_line":"        if properties:"},{"line_number":169,"context_line":"            cmd +\u003d f\u0027--properties {properties} \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"b106274f_37b3e5e8","line":166,"range":{"start_line":160,"start_character":0,"end_line":166,"end_character":0},"in_reply_to":"f00eb5a0_4f25336f","updated":"2022-05-25 14:31:55.000000000","message":"I agree, we are going to change that.","commit_id":"2721dab871838c71d10c000c75ede01113d0673f"},{"author":{"_account_id":31213,"name":"Maari Tamm","email":"maari.tamm@citynetwork.eu","username":"maaritamm"},"change_message_id":"d2c9810ab8a9702c5bf777b01e33e2d8e91e05c3","unresolved":true,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        return access_rule"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def delete_share_access_rule(self, share, id, wait\u003dFalse):"},{"line_number":178,"context_line":"        cmd \u003d f\u0027access delete {share} {id} \u0027"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        if wait:"}],"source_content_type":"text/x-python","patch_set":3,"id":"533890ac_c6af685d","line":177,"updated":"2022-05-24 20:34:05.000000000","message":"I\u0027d replace this by calling self.openstack(\u0027share\u0027, f\u0027access delete {share} {id} --wait) straight from tests.\n\nI took the approach of adding to the base class as little as possible, I\u0027d suggest the same for the list/show/set/unset additions below, curious to get yours and other reviewers thoughts on that though :)","commit_id":"2721dab871838c71d10c000c75ede01113d0673f"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"18fe45bce216837acafdec1b7e98d48f7e1208c3","unresolved":true,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        return access_rule"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def delete_share_access_rule(self, share, id, wait\u003dFalse):"},{"line_number":178,"context_line":"        cmd \u003d f\u0027access delete {share} {id} \u0027"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        if wait:"}],"source_content_type":"text/x-python","patch_set":3,"id":"88847280_998cde6c","line":177,"in_reply_to":"533890ac_c6af685d","updated":"2022-05-25 14:31:55.000000000","message":"Initially, we follow some of the examples and decided to add all the functions to prepare the command strings in the base.py, so we would be able to reuse them. \n\nMost of the calls are very simple, so I don\u0027t see a problem in removing them from base.py, and keeping only \"create_share_access_rule\" (because it is reused in all the tests). \n\nWe can change that in the next patch, unless any other reviewer thinks we should keep as is.","commit_id":"2721dab871838c71d10c000c75ede01113d0673f"},{"author":{"_account_id":33986,"name":"Lucas Morais de oliveira","email":"lucasmoliveira059@gmail.com","username":"lucasmoliveira059"},"change_message_id":"08d79b0549473ff69e4d090f18817afe1a188972","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        return access_rule"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def delete_share_access_rule(self, share, id, wait\u003dFalse):"},{"line_number":178,"context_line":"        cmd \u003d f\u0027access delete {share} {id} \u0027"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        if wait:"}],"source_content_type":"text/x-python","patch_set":3,"id":"2cc5d2a8_3afe1e06","line":177,"in_reply_to":"88847280_998cde6c","updated":"2022-05-30 16:12:52.000000000","message":"Done","commit_id":"2721dab871838c71d10c000c75ede01113d0673f"}],"manilaclient/tests/functional/osc/test_share_access_rules.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d43f204d931460e02ccefb29bbaf1c8d26de21d0","unresolved":true,"context_lines":[{"line_number":168,"context_line":"                       params\u003df\u0027access set {access_rule[\"id\"]} \u0027"},{"line_number":169,"context_line":"                       f\u0027--property foo\u003dbar\u0027)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        access_rule \u003d self.dict_result("},{"line_number":172,"context_line":"            \u0027share\u0027,"},{"line_number":173,"context_line":"            f\u0027access show {access_rule[\"id\"]}\u0027)"},{"line_number":174,"context_line":"        self.assertEqual(access_rule[\u0027properties\u0027], \u0027foo : bar\u0027)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"375f019d_feec90ae","line":173,"range":{"start_line":171,"start_character":8,"end_line":173,"end_character":47},"updated":"2022-05-31 20:13:49.000000000","message":"if you wanted to validate the properties as a dict, you could do self.openstack() instead of self.dict_result and modify the output to -f json in the command you send.\nThen, if you do a json.loads on the output, you\u0027d get a dictionary and would be able to handle with it dynamically :)","commit_id":"db3dd88d18fcfeaf7451db1c7131d8a729794e03"},{"author":{"_account_id":33986,"name":"Lucas Morais de oliveira","email":"lucasmoliveira059@gmail.com","username":"lucasmoliveira059"},"change_message_id":"a3032633206e7ad6760801790f44b7f08fd04a3e","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                       params\u003df\u0027access set {access_rule[\"id\"]} \u0027"},{"line_number":169,"context_line":"                       f\u0027--property foo\u003dbar\u0027)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        access_rule \u003d self.dict_result("},{"line_number":172,"context_line":"            \u0027share\u0027,"},{"line_number":173,"context_line":"            f\u0027access show {access_rule[\"id\"]}\u0027)"},{"line_number":174,"context_line":"        self.assertEqual(access_rule[\u0027properties\u0027], \u0027foo : bar\u0027)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"15b3603a_bfae98f5","line":173,"range":{"start_line":171,"start_character":8,"end_line":173,"end_character":47},"in_reply_to":"375f019d_feec90ae","updated":"2022-06-27 15:25:51.000000000","message":"Thanks for the suggestion, Carlos. After our conversation on IRC, we decided to keep the code.","commit_id":"db3dd88d18fcfeaf7451db1c7131d8a729794e03"}]}
