)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"b38a7499b5e2f5ee120027220ce7d72484217644","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"64ffcdf5_2f70a893","updated":"2026-01-20 13:18:58.000000000","message":"recheck","commit_id":"31d773eb7c7909568f2531a32a99ac1ac40f8562"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"c7cedaaf108db03942423c377c232572e46a41f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b4edd37c_f368ac05","updated":"2026-01-20 14:31:44.000000000","message":"recheck","commit_id":"31d773eb7c7909568f2531a32a99ac1ac40f8562"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"cc9d6d0b6d2379e44f448b0c9e8c95bfe4f6dbfb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a31739e8_d1e1566c","updated":"2026-02-02 04:05:39.000000000","message":"LGTM","commit_id":"00e37f007e2d35b08cdad8d489322db6ea52a5ed"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"59b4a144f92b37e9cde24ffc8a5f8b91d31659b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"edd0ab99_bb406ab1","updated":"2026-01-29 11:07:06.000000000","message":"Please do review!","commit_id":"00e37f007e2d35b08cdad8d489322db6ea52a5ed"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"00d19c895351f0fcaa8ccfe7c34170bc59edb093","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7194d8bc_c39e6968","updated":"2026-02-05 06:55:10.000000000","message":"Thank you for reviewing Kiran. Addressed comments.","commit_id":"5161254f47a8961b476fd7175abf96427a644991"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ae0da8a278d63797d0093dcc08520f484bb1cadb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2eaa162f_4897a4a3","updated":"2026-02-05 21:50:58.000000000","message":"Do you mind adding some functional tests here? even happy path ones would be helpful","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"267892041084c9c855d7aa6037af6161e6286ad5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"49818f0f_b01b3b36","updated":"2026-02-05 15:59:25.000000000","message":"LGTM","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c5ed18d217447cc70164bf4d7c98bad77b87e3ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"73b09b71_c843c97a","updated":"2026-02-05 21:50:37.000000000","message":"Thanks for working on this @saikumar1016@gmail.com. Please see comments inline","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9b6cd206309f09b28c434090dbd6d6230587c449","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"582932de_2cffba75","in_reply_to":"0009e2c5_3dc9d137","updated":"2026-02-25 14:13:57.000000000","message":"I\u0027d also like to request the functional tests for this change. They are vital for testing the functionality and the client. If you can\u0027t make it this week, please add as a follow-up change","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"093ade5e7cd72730c147674dcf09f61a92ba7b61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0009e2c5_3dc9d137","in_reply_to":"2eaa162f_4897a4a3","updated":"2026-02-17 16:10:46.000000000","message":"Would like to take this a backlog work and work on it later, would that be fine? Thank you.","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"25603860eea11b7cd8fbd94c18f7568ce2527bd4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"525dbabd_bec916a6","in_reply_to":"582932de_2cffba75","updated":"2026-02-26 13:25:39.000000000","message":"Sure carloss, thank you. I will have it discussed with the team once about this.","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"4f28a226fe8323068ad9c0ecf51947f1ad14aa61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c322de65_59439b3e","updated":"2026-02-19 05:19:30.000000000","message":"LGTM","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"45a0e9dfab822a123f958f9e5c465a6343823271","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4877a9e5_cd50f54b","updated":"2026-02-23 16:45:53.000000000","message":"LGTM ..!","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"b17c6c23b39f3d6d74e89d570c0f85f0c89480cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0fcf9b60_c0ec1904","updated":"2026-02-17 16:09:59.000000000","message":"Thank you so much Goutham for the review, addressed comments please do review.\n\nThank you Kiran for the comments.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9b6cd206309f09b28c434090dbd6d6230587c449","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"211a8272_97459d9c","updated":"2026-02-25 14:13:57.000000000","message":"Thanks for working on this change, please take a look at the comments inline","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"25603860eea11b7cd8fbd94c18f7568ce2527bd4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f402c704_6544ecfa","updated":"2026-02-26 13:25:39.000000000","message":"Thanks for all the comments Goutham/Carloss/Kiran. Really appreciate. Addressed the comments.\n\nNote: I encountered an issue with my environment, so I am redeploying it. I will share the testing results as soon as the new environment is ready.","commit_id":"82020db09e6b4d6c288107207d7d16369acaf0f3"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"fd9fdf249e1d8b42bb8e40acb17264657a159cef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"27ee4f02_fbe3f5e7","updated":"2026-02-26 17:05:39.000000000","message":"@gouthampravi@gmail.com @ces.eduardo98@gmail.com @kinpaa@gmail.com @gawasthi2010@gmail.com\n\nFixed the Zuul and also addressed comments. \nHere are the latest testing results:\nhttps://paste.opendev.org/show/bdJJPxbGHpTaQ1H3yXXA/\n\nPlease review and approve this patch, and request you to let this patch in for the release!!\n\nIf there are any comments, will address them as part of the follow-up(may be as a bug) patch.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"ade828d0ffd9dbcd1adf7e9bd7034cf666cab1d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"800d6343_24c278af","updated":"2026-03-11 11:00:17.000000000","message":"Hi Kiran/carloss/goutham\n\nFollow-up patch raised: https://review.opendev.org/c/openstack/python-manilaclient/+/979801\n\nI won\u0027t be available for next 2 days and functional tests are yet to be added. we will need sometime to get them added. Thank you so much !!","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"9bfbd6a573a2676a0f9d801da16622d557a96c3c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5847057b_7d0c5f42","updated":"2026-02-26 17:20:36.000000000","message":"LGTM","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"caab6d27a8e2fd6397b980adea62c7db28a4b25f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"b31700fc_d1ce4370","updated":"2026-02-26 19:00:07.000000000","message":"Lets get this in and follow up on the comments inline, including adding functional tests","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"70a21c507bd628df81ac2d3eedae0efa2535053a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"0ae143f5_a062099a","updated":"2026-02-26 17:31:59.000000000","message":"Need to add functional tests and also check --property flag with more input parameters.  But this can go as follow-up patch.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c03cc6534cde263587fc8119b8e38bc7d14ca187","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"41bb8e12_6d7ec6b2","updated":"2026-02-26 21:31:15.000000000","message":"recheck\n\nmanila change merged","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"e01b7e533b7b89c748c5c7c1af7b3c7c83395f65","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1305ea9d_4477a7be","in_reply_to":"0ae143f5_a062099a","updated":"2026-02-26 18:27:16.000000000","message":"Thank you so much Kiran, yes will add them in a follow up patch. Mentioned it to carloss also above.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"aec6fe30949b87d53164148307b1a4af1b7a0098","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c61578cf_3f0b46b1","in_reply_to":"11459e79_7c2f1c45","updated":"2026-04-20 06:02:39.000000000","message":"FTs added and the patch is merged: https://review.opendev.org/c/openstack/python-manilaclient/+/979801","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"ade828d0ffd9dbcd1adf7e9bd7034cf666cab1d5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"11459e79_7c2f1c45","in_reply_to":"1305ea9d_4477a7be","updated":"2026-03-11 11:00:17.000000000","message":"I wasn\u0027t available for few days and won\u0027t be available from tomorrow. Have limited time before RC1, addressed all other comments. This is the first time I am looking at adding functional tests and will need time to have them added.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"}],"manilaclient/osc/v2/share_replicas.py":[{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"99d517120c5add51df68e2665ba596014d9bcfe6","unresolved":true,"context_lines":[{"line_number":111,"context_line":"            \u0027share\u0027: share,"},{"line_number":112,"context_line":"            \u0027availability_zone\u0027: parsed_args.availability_zone,"},{"line_number":113,"context_line":"        }"},{"line_number":114,"context_line":"        property \u003d {}"},{"line_number":115,"context_line":"        if share_client.api_version \u003e\u003d api_versions.APIVersion(\"2.92\"):"},{"line_number":116,"context_line":"            property \u003d parsed_args.property or {}"},{"line_number":117,"context_line":"        elif parsed_args.property:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ac082d4d_d6c92f37","line":114,"updated":"2026-02-02 07:06:10.000000000","message":"Do it the way done for hints.\n\nif property:\n----if version_mismatch:\n--------raise error\n----continue processing property","commit_id":"00e37f007e2d35b08cdad8d489322db6ea52a5ed"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"00d19c895351f0fcaa8ccfe7c34170bc59edb093","unresolved":false,"context_lines":[{"line_number":111,"context_line":"            \u0027share\u0027: share,"},{"line_number":112,"context_line":"            \u0027availability_zone\u0027: parsed_args.availability_zone,"},{"line_number":113,"context_line":"        }"},{"line_number":114,"context_line":"        property \u003d {}"},{"line_number":115,"context_line":"        if share_client.api_version \u003e\u003d api_versions.APIVersion(\"2.92\"):"},{"line_number":116,"context_line":"            property \u003d parsed_args.property or {}"},{"line_number":117,"context_line":"        elif parsed_args.property:"}],"source_content_type":"text/x-python","patch_set":2,"id":"6f7d1744_41344c0d","line":114,"in_reply_to":"ac082d4d_d6c92f37","updated":"2026-02-05 06:55:10.000000000","message":"Done.","commit_id":"00e37f007e2d35b08cdad8d489322db6ea52a5ed"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"99d517120c5add51df68e2665ba596014d9bcfe6","unresolved":true,"context_lines":[{"line_number":437,"context_line":"                    {\u0027status\u0027: parsed_args.status, \u0027exception\u0027: e},"},{"line_number":438,"context_line":"                )"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"        if parsed_args.property:"},{"line_number":441,"context_line":"            try:"},{"line_number":442,"context_line":"                replica.set_metadata(parsed_args.property)"},{"line_number":443,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a9fe157_e59f0289","line":440,"updated":"2026-02-02 07:06:10.000000000","message":"version check missing.","commit_id":"00e37f007e2d35b08cdad8d489322db6ea52a5ed"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"00d19c895351f0fcaa8ccfe7c34170bc59edb093","unresolved":false,"context_lines":[{"line_number":437,"context_line":"                    {\u0027status\u0027: parsed_args.status, \u0027exception\u0027: e},"},{"line_number":438,"context_line":"                )"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"        if parsed_args.property:"},{"line_number":441,"context_line":"            try:"},{"line_number":442,"context_line":"                replica.set_metadata(parsed_args.property)"},{"line_number":443,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"e8221a5a_69620e39","line":440,"in_reply_to":"7a9fe157_e59f0289","updated":"2026-02-05 06:55:10.000000000","message":"Done.","commit_id":"00e37f007e2d35b08cdad8d489322db6ea52a5ed"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"8dfaf109ddc416e184fa0328d6c994e0b17383ae","unresolved":true,"context_lines":[{"line_number":121,"context_line":"                        \"with API microversion \u00272.92\u0027.\""},{"line_number":122,"context_line":"                    )"},{"line_number":123,"context_line":"                )"},{"line_number":124,"context_line":"            property \u003d parsed_args.property or {}"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        if property:"},{"line_number":127,"context_line":"            body[\u0027metadata\u0027] \u003d property"}],"source_content_type":"text/x-python","patch_set":4,"id":"bd318dca_4c4e9820","line":124,"updated":"2026-02-05 16:11:00.000000000","message":"you need to parse key\u003dvalue dict from value of property field and then pass to metadata. Also check if we need multiple key-value pairs as a property or just single key-value pair similar to other resources.","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"b17c6c23b39f3d6d74e89d570c0f85f0c89480cc","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                        \"with API microversion \u00272.92\u0027.\""},{"line_number":122,"context_line":"                    )"},{"line_number":123,"context_line":"                )"},{"line_number":124,"context_line":"            property \u003d parsed_args.property or {}"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        if property:"},{"line_number":127,"context_line":"            body[\u0027metadata\u0027] \u003d property"}],"source_content_type":"text/x-python","patch_set":4,"id":"1eca40c0_15384b38","line":124,"in_reply_to":"8ae79f17_7f51dc91","updated":"2026-02-17 16:09:59.000000000","message":"Thanks, Goutham! Yes, since parseractions.KeyValueAction already parses the property argument into a dict, no additional processing is needed here. Marking this as resolved.","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c5ed18d217447cc70164bf4d7c98bad77b87e3ef","unresolved":true,"context_lines":[{"line_number":121,"context_line":"                        \"with API microversion \u00272.92\u0027.\""},{"line_number":122,"context_line":"                    )"},{"line_number":123,"context_line":"                )"},{"line_number":124,"context_line":"            property \u003d parsed_args.property or {}"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        if property:"},{"line_number":127,"context_line":"            body[\u0027metadata\u0027] \u003d property"}],"source_content_type":"text/x-python","patch_set":4,"id":"8ae79f17_7f51dc91","line":124,"in_reply_to":"bd318dca_4c4e9820","updated":"2026-02-05 21:50:37.000000000","message":"when you use \"parseractions.KeyValueAction\", it creates a dict with the individual items, there\u0027s no more processing required: \n\nhttps://github.com/openstack/python-manilaclient/blob/b46eeee2f2b81d00652623baa23a064aef679c12/manilaclient/osc/v2/share.py#L330\nhttps://github.com/openstack/python-manilaclient/blob/b46eeee2f2b81d00652623baa23a064aef679c12/manilaclient/osc/v2/share_network_subnets.py#L201\nhttps://github.com/openstack/python-manilaclient/blob/b46eeee2f2b81d00652623baa23a064aef679c12/manilaclient/osc/v2/share_snapshots.py#L86-L99","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c5ed18d217447cc70164bf4d7c98bad77b87e3ef","unresolved":true,"context_lines":[{"line_number":262,"context_line":"                share_client.shares, parsed_args.share"},{"line_number":263,"context_line":"            )"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        replicas \u003d share_client.share_replicas.list(share\u003dshare)"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        columns \u003d ["},{"line_number":268,"context_line":"            \u0027id\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"a80e7a91_01fa3cd1","line":265,"range":{"start_line":265,"start_character":58,"end_line":265,"end_character":63},"updated":"2026-02-05 21:50:37.000000000","message":"you should parse the properties above this line and include it in this call","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"b17c6c23b39f3d6d74e89d570c0f85f0c89480cc","unresolved":false,"context_lines":[{"line_number":262,"context_line":"                share_client.shares, parsed_args.share"},{"line_number":263,"context_line":"            )"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        replicas \u003d share_client.share_replicas.list(share\u003dshare)"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        columns \u003d ["},{"line_number":268,"context_line":"            \u0027id\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"02242e90_0883786b","line":265,"range":{"start_line":265,"start_character":58,"end_line":265,"end_character":63},"in_reply_to":"a80e7a91_01fa3cd1","updated":"2026-02-17 16:09:59.000000000","message":"Done","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c5ed18d217447cc70164bf4d7c98bad77b87e3ef","unresolved":true,"context_lines":[{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        search_opts \u003d {}"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        if parsed_args.property:"},{"line_number":280,"context_line":"            if share_client.api_version \u003e\u003d api_versions.APIVersion(\"2.92\"):"},{"line_number":281,"context_line":"                search_opts[\u0027metadata\u0027] \u003d utils.extract_key_value_options("},{"line_number":282,"context_line":"                    parsed_args.property"},{"line_number":283,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":4,"id":"a41057e6_ef4563e3","line":280,"range":{"start_line":279,"start_character":8,"end_line":280,"end_character":75},"updated":"2026-02-05 21:50:37.000000000","message":"This check needs to happen prior to the list API call on line 265","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"b17c6c23b39f3d6d74e89d570c0f85f0c89480cc","unresolved":false,"context_lines":[{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        search_opts \u003d {}"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        if parsed_args.property:"},{"line_number":280,"context_line":"            if share_client.api_version \u003e\u003d api_versions.APIVersion(\"2.92\"):"},{"line_number":281,"context_line":"                search_opts[\u0027metadata\u0027] \u003d utils.extract_key_value_options("},{"line_number":282,"context_line":"                    parsed_args.property"},{"line_number":283,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":4,"id":"cebd9f6d_19d256e8","line":280,"range":{"start_line":279,"start_character":8,"end_line":280,"end_character":75},"in_reply_to":"a41057e6_ef4563e3","updated":"2026-02-17 16:09:59.000000000","message":"Done","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c5ed18d217447cc70164bf4d7c98bad77b87e3ef","unresolved":true,"context_lines":[{"line_number":283,"context_line":"                )"},{"line_number":284,"context_line":"            else:"},{"line_number":285,"context_line":"                raise exceptions.CommandError("},{"line_number":286,"context_line":"                    \"Property based filtering is only available\""},{"line_number":287,"context_line":"                    \"with manila API version \u003e\u003d 2.92\""},{"line_number":288,"context_line":"                )"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"8d20dacd_92c1e33a","line":286,"range":{"start_line":286,"start_character":63,"end_line":286,"end_character":64},"updated":"2026-02-05 21:50:37.000000000","message":"missing a trailing space","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"b17c6c23b39f3d6d74e89d570c0f85f0c89480cc","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                )"},{"line_number":284,"context_line":"            else:"},{"line_number":285,"context_line":"                raise exceptions.CommandError("},{"line_number":286,"context_line":"                    \"Property based filtering is only available\""},{"line_number":287,"context_line":"                    \"with manila API version \u003e\u003d 2.92\""},{"line_number":288,"context_line":"                )"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d18ed643_a8a91ffd","line":286,"range":{"start_line":286,"start_character":63,"end_line":286,"end_character":64},"in_reply_to":"8d20dacd_92c1e33a","updated":"2026-02-17 16:09:59.000000000","message":"Added","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c5ed18d217447cc70164bf4d7c98bad77b87e3ef","unresolved":true,"context_lines":[{"line_number":354,"context_line":"    \"\"\"Set share replica\"\"\""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    _description \u003d _("},{"line_number":357,"context_line":"        \"Explicitly set share replica status and/or replica-state\""},{"line_number":358,"context_line":"        \"and/or property\""},{"line_number":359,"context_line":"    )"},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ea85ec45_35befa08","line":357,"range":{"start_line":357,"start_character":65,"end_line":357,"end_character":66},"updated":"2026-02-05 21:50:37.000000000","message":"missing trailing space before quotes","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"b17c6c23b39f3d6d74e89d570c0f85f0c89480cc","unresolved":false,"context_lines":[{"line_number":354,"context_line":"    \"\"\"Set share replica\"\"\""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    _description \u003d _("},{"line_number":357,"context_line":"        \"Explicitly set share replica status and/or replica-state\""},{"line_number":358,"context_line":"        \"and/or property\""},{"line_number":359,"context_line":"    )"},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"19372dca_0e96c7f6","line":357,"range":{"start_line":357,"start_character":65,"end_line":357,"end_character":66},"in_reply_to":"ea85ec45_35befa08","updated":"2026-02-17 16:09:59.000000000","message":"Added","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c5ed18d217447cc70164bf4d7c98bad77b87e3ef","unresolved":true,"context_lines":[{"line_number":487,"context_line":"        parser.add_argument("},{"line_number":488,"context_line":"            \"replica\","},{"line_number":489,"context_line":"            metavar\u003d\"\u003creplica\u003e\","},{"line_number":490,"context_line":"            help\u003d_(\"Name or ID of the replica to set a property for\"),"},{"line_number":491,"context_line":"        )"},{"line_number":492,"context_line":"        parser.add_argument("},{"line_number":493,"context_line":"            \u0027--property\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"cd9d1986_d4965d2e","line":490,"range":{"start_line":490,"start_character":20,"end_line":490,"end_character":28},"updated":"2026-02-05 21:50:37.000000000","message":"remove","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"b17c6c23b39f3d6d74e89d570c0f85f0c89480cc","unresolved":false,"context_lines":[{"line_number":487,"context_line":"        parser.add_argument("},{"line_number":488,"context_line":"            \"replica\","},{"line_number":489,"context_line":"            metavar\u003d\"\u003creplica\u003e\","},{"line_number":490,"context_line":"            help\u003d_(\"Name or ID of the replica to set a property for\"),"},{"line_number":491,"context_line":"        )"},{"line_number":492,"context_line":"        parser.add_argument("},{"line_number":493,"context_line":"            \u0027--property\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"de97d46e_91935e5b","line":490,"range":{"start_line":490,"start_character":20,"end_line":490,"end_character":28},"in_reply_to":"cd9d1986_d4965d2e","updated":"2026-02-17 16:09:59.000000000","message":"Done","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef5579ac5ed971df9ae4c1b42fa82bb69e36377","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            help\u003d_("},{"line_number":80,"context_line":"                \"Set a property to this replica \""},{"line_number":81,"context_line":"                \"(repeat option to set multiple properties).\""},{"line_number":82,"context_line":"                \"Available only for microversion \u003e\u003d 2.92\""},{"line_number":83,"context_line":"            ),"},{"line_number":84,"context_line":"        )"},{"line_number":85,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":5,"id":"31c4f45a_8e74a153","line":82,"updated":"2026-02-23 22:31:16.000000000","message":"Add a trailing space before quotes above, or a leading space\nto this string literal.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9b6cd206309f09b28c434090dbd6d6230587c449","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        share_client \u003d self.app.client_manager.share"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        share \u003d osc_utils.find_resource(share_client.shares, parsed_args.share)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        scheduler_hints \u003d {}"},{"line_number":93,"context_line":"        if parsed_args.scheduler_hint:"},{"line_number":94,"context_line":"            if share_client.api_version \u003c api_versions.APIVersion(\"2.67\"):"}],"source_content_type":"text/x-python","patch_set":5,"id":"f7018bb2_f4511362","line":91,"updated":"2026-02-25 14:13:57.000000000","message":"nit: I\u0027d avoid adding blank lines that can impact on the commit history later.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"25603860eea11b7cd8fbd94c18f7568ce2527bd4","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        share_client \u003d self.app.client_manager.share"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        share \u003d osc_utils.find_resource(share_client.shares, parsed_args.share)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        scheduler_hints \u003d {}"},{"line_number":93,"context_line":"        if parsed_args.scheduler_hint:"},{"line_number":94,"context_line":"            if share_client.api_version \u003c api_versions.APIVersion(\"2.67\"):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1244d183_674932ee","line":91,"in_reply_to":"f7018bb2_f4511362","updated":"2026-02-26 13:25:39.000000000","message":"Removed the line.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef5579ac5ed971df9ae4c1b42fa82bb69e36377","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            \u0027availability_zone\u0027: parsed_args.availability_zone,"},{"line_number":113,"context_line":"        }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        property \u003d {}"},{"line_number":116,"context_line":"        if parsed_args.property:"},{"line_number":117,"context_line":"            if share_client.api_version \u003c api_versions.APIVersion(\"2.92\"):"},{"line_number":118,"context_line":"                raise exceptions.CommandError("}],"source_content_type":"text/x-python","patch_set":5,"id":"a39b7f13_66d5bec9","line":115,"updated":"2026-02-23 22:31:16.000000000","message":"`property \u003d {}` shadows Python\u0027s builtin `property`. Consider\nrenaming to `metadatum` or `_property` perhaps?","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9b6cd206309f09b28c434090dbd6d6230587c449","unresolved":true,"context_lines":[{"line_number":112,"context_line":"            \u0027availability_zone\u0027: parsed_args.availability_zone,"},{"line_number":113,"context_line":"        }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        property \u003d {}"},{"line_number":116,"context_line":"        if parsed_args.property:"},{"line_number":117,"context_line":"            if share_client.api_version \u003c api_versions.APIVersion(\"2.92\"):"},{"line_number":118,"context_line":"                raise exceptions.CommandError("}],"source_content_type":"text/x-python","patch_set":5,"id":"6b53ad04_b5e9b77e","line":115,"in_reply_to":"5968dc16_63a51296","updated":"2026-02-25 14:13:57.000000000","message":"++","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"25603860eea11b7cd8fbd94c18f7568ce2527bd4","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            \u0027availability_zone\u0027: parsed_args.availability_zone,"},{"line_number":113,"context_line":"        }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        property \u003d {}"},{"line_number":116,"context_line":"        if parsed_args.property:"},{"line_number":117,"context_line":"            if share_client.api_version \u003c api_versions.APIVersion(\"2.92\"):"},{"line_number":118,"context_line":"                raise exceptions.CommandError("}],"source_content_type":"text/x-python","patch_set":5,"id":"97014cdd_2d9c0172","line":115,"in_reply_to":"5968dc16_63a51296","updated":"2026-02-26 13:25:39.000000000","message":"Done.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a108020bbdc42b4a0b5518754157ab0f8a25e021","unresolved":true,"context_lines":[{"line_number":112,"context_line":"            \u0027availability_zone\u0027: parsed_args.availability_zone,"},{"line_number":113,"context_line":"        }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        property \u003d {}"},{"line_number":116,"context_line":"        if parsed_args.property:"},{"line_number":117,"context_line":"            if share_client.api_version \u003c api_versions.APIVersion(\"2.92\"):"},{"line_number":118,"context_line":"                raise exceptions.CommandError("}],"source_content_type":"text/x-python","patch_set":5,"id":"5968dc16_63a51296","line":115,"in_reply_to":"a39b7f13_66d5bec9","updated":"2026-02-24 06:04:33.000000000","message":"sry, \"properties\" or \"metadata\" is more appropriate","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9b6cd206309f09b28c434090dbd6d6230587c449","unresolved":true,"context_lines":[{"line_number":117,"context_line":"            if share_client.api_version \u003c api_versions.APIVersion(\"2.92\"):"},{"line_number":118,"context_line":"                raise exceptions.CommandError("},{"line_number":119,"context_line":"                    _("},{"line_number":120,"context_line":"                        \"arg \u0027--property\u0027 is available only starting \""},{"line_number":121,"context_line":"                        \"with API microversion \u00272.92\u0027.\""},{"line_number":122,"context_line":"                    )"},{"line_number":123,"context_line":"                )"},{"line_number":124,"context_line":"            property \u003d parsed_args.property or {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"c674b8de_61fa38cc","line":121,"range":{"start_line":120,"start_character":25,"end_line":121,"end_character":55},"updated":"2026-02-25 14:13:57.000000000","message":"```suggestion\n                        \"Setting properties in share replicas is available only \"\n                        \"starting with API microversion \u00272.95\u0027.\"\n```","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"25603860eea11b7cd8fbd94c18f7568ce2527bd4","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            if share_client.api_version \u003c api_versions.APIVersion(\"2.92\"):"},{"line_number":118,"context_line":"                raise exceptions.CommandError("},{"line_number":119,"context_line":"                    _("},{"line_number":120,"context_line":"                        \"arg \u0027--property\u0027 is available only starting \""},{"line_number":121,"context_line":"                        \"with API microversion \u00272.92\u0027.\""},{"line_number":122,"context_line":"                    )"},{"line_number":123,"context_line":"                )"},{"line_number":124,"context_line":"            property \u003d parsed_args.property or {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"f1626e3b_7f6ecc49","line":121,"range":{"start_line":120,"start_character":25,"end_line":121,"end_character":55},"in_reply_to":"c674b8de_61fa38cc","updated":"2026-02-26 13:25:39.000000000","message":"Done.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef5579ac5ed971df9ae4c1b42fa82bb69e36377","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                        \"with API microversion \u00272.92\u0027.\""},{"line_number":122,"context_line":"                    )"},{"line_number":123,"context_line":"                )"},{"line_number":124,"context_line":"            property \u003d parsed_args.property or {}"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        if property:"},{"line_number":127,"context_line":"            body[\u0027metadata\u0027] \u003d property"}],"source_content_type":"text/x-python","patch_set":5,"id":"ae4d84bc_b7d10abd","line":124,"updated":"2026-02-23 22:31:16.000000000","message":"Don\u0027t need the `or {}` fallback here; you already know property isn\u0027t None","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9b6cd206309f09b28c434090dbd6d6230587c449","unresolved":true,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        search_opts \u003d {}"},{"line_number":274,"context_line":"        if properties:"},{"line_number":275,"context_line":"            meta_str \u003d \",\".join(f\"{k}:{v}\" for k, v in properties.items())"},{"line_number":276,"context_line":"            search_opts[\u0027metadata\u0027] \u003d meta_str"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        replicas \u003d share_client.share_replicas.list("}],"source_content_type":"text/x-python","patch_set":5,"id":"317b78ea_888586af","line":275,"range":{"start_line":275,"start_character":32,"end_line":275,"end_character":42},"updated":"2026-02-25 14:13:57.000000000","message":"Is this working?\nI am imagining that if this is a URL query, it could fail because we\u0027d expect ?key\u003dvalue, right?","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef5579ac5ed971df9ae4c1b42fa82bb69e36377","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        search_opts \u003d {}"},{"line_number":274,"context_line":"        if properties:"},{"line_number":275,"context_line":"            meta_str \u003d \",\".join(f\"{k}:{v}\" for k, v in properties.items())"},{"line_number":276,"context_line":"            search_opts[\u0027metadata\u0027] \u003d meta_str"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        replicas \u003d share_client.share_replicas.list("}],"source_content_type":"text/x-python","patch_set":5,"id":"ea330dd5_fffb7f9c","line":275,"updated":"2026-02-23 22:31:16.000000000","message":"Line 72 in v2/share_replicas.py seems to be doing the same processing.\nYou should test this, and just retain the stringification logic there\nperhaps.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"25603860eea11b7cd8fbd94c18f7568ce2527bd4","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        search_opts \u003d {}"},{"line_number":274,"context_line":"        if properties:"},{"line_number":275,"context_line":"            meta_str \u003d \",\".join(f\"{k}:{v}\" for k, v in properties.items())"},{"line_number":276,"context_line":"            search_opts[\u0027metadata\u0027] \u003d meta_str"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        replicas \u003d share_client.share_replicas.list("}],"source_content_type":"text/x-python","patch_set":5,"id":"f705b5db_ede83590","line":275,"range":{"start_line":275,"start_character":32,"end_line":275,"end_character":42},"in_reply_to":"317b78ea_888586af","updated":"2026-02-26 13:25:39.000000000","message":"Explained above, thanks carloss.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"25603860eea11b7cd8fbd94c18f7568ce2527bd4","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        search_opts \u003d {}"},{"line_number":274,"context_line":"        if properties:"},{"line_number":275,"context_line":"            meta_str \u003d \",\".join(f\"{k}:{v}\" for k, v in properties.items())"},{"line_number":276,"context_line":"            search_opts[\u0027metadata\u0027] \u003d meta_str"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        replicas \u003d share_client.share_replicas.list("}],"source_content_type":"text/x-python","patch_set":5,"id":"d3647705_d9210872","line":275,"in_reply_to":"ea330dd5_fffb7f9c","updated":"2026-02-26 13:25:39.000000000","message":"I tested it before uploading the patch, results: https://paste.opendev.org/show/bMjkd72clvd7cfACJYgN/\n\nI checked the implementation in v2/share_replicas.py (line 72 and the _get method). The code does seems like it\u0027s not handling stringification of the metadata filter; it expects the query parameter to already be a string.\n\nPlease let me know if any changes needs to be done.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef5579ac5ed971df9ae4c1b42fa82bb69e36377","unresolved":false,"context_lines":[{"line_number":406,"context_line":"            metavar\u003d\"\u003ckey\u003dvalue\u003e\","},{"line_number":407,"context_line":"            default\u003d{},"},{"line_number":408,"context_line":"            action\u003dparseractions.KeyValueAction,"},{"line_number":409,"context_line":"            help\u003d_("},{"line_number":410,"context_line":"                \"Set a property to this replica \""},{"line_number":411,"context_line":"                \"(repeat option to set multiple properties)\""},{"line_number":412,"context_line":"            ),"}],"source_content_type":"text/x-python","patch_set":5,"id":"0cf46b2b_ef2c7996","line":409,"updated":"2026-02-23 22:31:16.000000000","message":"Adding \"Available only for microversion \u003e\u003d 2.92\" for consistency.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef5579ac5ed971df9ae4c1b42fa82bb69e36377","unresolved":false,"context_lines":[{"line_number":498,"context_line":"        parser.add_argument("},{"line_number":499,"context_line":"            \"replica\","},{"line_number":500,"context_line":"            metavar\u003d\"\u003creplica\u003e\","},{"line_number":501,"context_line":"            help\u003d_(\"ID of the replica to set a property for\"),"},{"line_number":502,"context_line":"        )"},{"line_number":503,"context_line":"        parser.add_argument("},{"line_number":504,"context_line":"            \u0027--property\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"45123e34_a8e6d47e","line":501,"updated":"2026-02-23 22:31:16.000000000","message":"Copy-paste: Should be \"unset a property for\" or \"remove a\nproperty from\".","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef5579ac5ed971df9ae4c1b42fa82bb69e36377","unresolved":false,"context_lines":[{"line_number":511,"context_line":"        )"},{"line_number":512,"context_line":"        return parser"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"    def take_action(self, parsed_args):"},{"line_number":515,"context_line":"        share_client \u003d self.app.client_manager.share"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        replica \u003d osc_utils.find_resource("}],"source_content_type":"text/x-python","patch_set":5,"id":"c9fece31_8cfe23d2","line":514,"updated":"2026-02-23 22:31:16.000000000","message":"Missing microversion check. CreateShareReplica (line 117),\nListShareReplica (line 267), and SetShareReplica (line 455) all\ncheck `api_version \u003e\u003d 2.92` before touching metadata, but\nUnsetShareReplica does not. A user on microversion \u003c 2.92 will\nget an opaque server error instead of a clear client-side message.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9b6cd206309f09b28c434090dbd6d6230587c449","unresolved":false,"context_lines":[{"line_number":511,"context_line":"        )"},{"line_number":512,"context_line":"        return parser"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"    def take_action(self, parsed_args):"},{"line_number":515,"context_line":"        share_client \u003d self.app.client_manager.share"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        replica \u003d osc_utils.find_resource("}],"source_content_type":"text/x-python","patch_set":5,"id":"70432d26_0640f68c","line":514,"in_reply_to":"c9fece31_8cfe23d2","updated":"2026-02-25 14:13:57.000000000","message":"++","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef5579ac5ed971df9ae4c1b42fa82bb69e36377","unresolved":false,"context_lines":[{"line_number":518,"context_line":"            share_client.share_replicas, parsed_args.replica"},{"line_number":519,"context_line":"        )"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        if parsed_args.property:"},{"line_number":522,"context_line":"            for key in parsed_args.property:"},{"line_number":523,"context_line":"                try:"},{"line_number":524,"context_line":"                    replica.delete_metadata([key])"}],"source_content_type":"text/x-python","patch_set":5,"id":"51bc9ec3_18c163ba","line":521,"updated":"2026-02-23 22:31:16.000000000","message":"You\u0027ll need an else here:\n```\nelse:\n          raise exceptions.CommandError(\n              \"Please specify \u0027--property \u003ckey\u003e\u0027 to unset a property. \"\n          ).\n```","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"caab6d27a8e2fd6397b980adea62c7db28a4b25f","unresolved":true,"context_lines":[{"line_number":279,"context_line":"        )"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        if properties:"},{"line_number":282,"context_line":"            replicas \u003d ["},{"line_number":283,"context_line":"                r"},{"line_number":284,"context_line":"                for r in replicas"},{"line_number":285,"context_line":"                if all("},{"line_number":286,"context_line":"                    r._info.get(\u0027metadata\u0027, {}).get(k) \u003d\u003d v"},{"line_number":287,"context_line":"                    for k, v in properties.items()"},{"line_number":288,"context_line":"                )"},{"line_number":289,"context_line":"            ]"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        columns \u003d ["},{"line_number":292,"context_line":"            \u0027id\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7456222e_342740f5","line":289,"range":{"start_line":282,"start_character":12,"end_line":289,"end_character":13},"updated":"2026-02-26 19:00:07.000000000","message":"why are we filtering the result, again? We expect the server to honor the metadata in the search opts, correct?","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"ade828d0ffd9dbcd1adf7e9bd7034cf666cab1d5","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        )"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        if properties:"},{"line_number":282,"context_line":"            replicas \u003d ["},{"line_number":283,"context_line":"                r"},{"line_number":284,"context_line":"                for r in replicas"},{"line_number":285,"context_line":"                if all("},{"line_number":286,"context_line":"                    r._info.get(\u0027metadata\u0027, {}).get(k) \u003d\u003d v"},{"line_number":287,"context_line":"                    for k, v in properties.items()"},{"line_number":288,"context_line":"                )"},{"line_number":289,"context_line":"            ]"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        columns \u003d ["},{"line_number":292,"context_line":"            \u0027id\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"30ecd6a7_e7b0be5d","line":289,"range":{"start_line":282,"start_character":12,"end_line":289,"end_character":13},"in_reply_to":"7456222e_342740f5","updated":"2026-03-11 11:00:17.000000000","message":"I just checked !! I think, the server-side /share-replicas API does not currently filter by metadata. That’s why client-side filtering is needed here for now. We can address this on the server side in a future update. Please correct me if I missed something from server side.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"caab6d27a8e2fd6397b980adea62c7db28a4b25f","unresolved":true,"context_lines":[{"line_number":498,"context_line":"        parser.add_argument("},{"line_number":499,"context_line":"            \"replica\","},{"line_number":500,"context_line":"            metavar\u003d\"\u003creplica\u003e\","},{"line_number":501,"context_line":"            help\u003d_(\"Unset a property for\"),"},{"line_number":502,"context_line":"        )"},{"line_number":503,"context_line":"        parser.add_argument("},{"line_number":504,"context_line":"            \u0027--property\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"8bd3673d_baebf30f","line":501,"range":{"start_line":501,"start_character":20,"end_line":501,"end_character":40},"updated":"2026-02-26 19:00:07.000000000","message":"ID of the share replica to unset property from","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"ade828d0ffd9dbcd1adf7e9bd7034cf666cab1d5","unresolved":false,"context_lines":[{"line_number":498,"context_line":"        parser.add_argument("},{"line_number":499,"context_line":"            \"replica\","},{"line_number":500,"context_line":"            metavar\u003d\"\u003creplica\u003e\","},{"line_number":501,"context_line":"            help\u003d_(\"Unset a property for\"),"},{"line_number":502,"context_line":"        )"},{"line_number":503,"context_line":"        parser.add_argument("},{"line_number":504,"context_line":"            \u0027--property\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"273ff0c6_d008ff26","line":501,"range":{"start_line":501,"start_character":20,"end_line":501,"end_character":40},"in_reply_to":"8bd3673d_baebf30f","updated":"2026-03-11 11:00:17.000000000","message":"Done.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"caab6d27a8e2fd6397b980adea62c7db28a4b25f","unresolved":true,"context_lines":[{"line_number":530,"context_line":"                try:"},{"line_number":531,"context_line":"                    replica.delete_metadata([key])"},{"line_number":532,"context_line":"                except Exception as e:"},{"line_number":533,"context_line":"                    msg \u003d _("},{"line_number":534,"context_line":"                        \"Failed to unset replica property \u0027%(key)s\u0027: %(e)s\""},{"line_number":535,"context_line":"                    )"},{"line_number":536,"context_line":"                    raise exceptions.CommandError(msg % {\u0027key\u0027: key, \u0027e\u0027: e})"},{"line_number":537,"context_line":"        else:"},{"line_number":538,"context_line":"            raise exceptions.CommandError("},{"line_number":539,"context_line":"                \"Please specify \u0027--property \u003ckey\u003e\u0027 to unset a property.\""}],"source_content_type":"text/x-python","patch_set":8,"id":"1e2343e3_4fd32335","line":536,"range":{"start_line":533,"start_character":20,"end_line":536,"end_character":77},"updated":"2026-02-26 19:00:07.000000000","message":"this will bailout at the first error; instead, you should log the error, go through the rest of the list of properties to unset and collate your errors like the \"Set\" workflow above","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"ade828d0ffd9dbcd1adf7e9bd7034cf666cab1d5","unresolved":false,"context_lines":[{"line_number":530,"context_line":"                try:"},{"line_number":531,"context_line":"                    replica.delete_metadata([key])"},{"line_number":532,"context_line":"                except Exception as e:"},{"line_number":533,"context_line":"                    msg \u003d _("},{"line_number":534,"context_line":"                        \"Failed to unset replica property \u0027%(key)s\u0027: %(e)s\""},{"line_number":535,"context_line":"                    )"},{"line_number":536,"context_line":"                    raise exceptions.CommandError(msg % {\u0027key\u0027: key, \u0027e\u0027: e})"},{"line_number":537,"context_line":"        else:"},{"line_number":538,"context_line":"            raise exceptions.CommandError("},{"line_number":539,"context_line":"                \"Please specify \u0027--property \u003ckey\u003e\u0027 to unset a property.\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9f7ab13e_7e1628ab","line":536,"range":{"start_line":533,"start_character":20,"end_line":536,"end_character":77},"in_reply_to":"1e2343e3_4fd32335","updated":"2026-03-11 11:00:17.000000000","message":"Done.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"}],"manilaclient/tests/unit/osc/v2/fakes.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef5579ac5ed971df9ae4c1b42fa82bb69e36377","unresolved":false,"context_lines":[{"line_number":820,"context_line":"            \u0027share_server_id\u0027: None,"},{"line_number":821,"context_line":"            \u0027status\u0027: None,"},{"line_number":822,"context_line":"            \u0027updated_at\u0027: None,"},{"line_number":823,"context_line":"            \"properties\": format_columns.DictColumn({}),"},{"line_number":824,"context_line":"        }"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"        share_replica.update(attrs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"352fc119_02057c66","line":823,"updated":"2026-02-23 22:31:16.000000000","message":"A replica on manila will have `metadata` not `\"properties\"`","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"}],"manilaclient/tests/unit/osc/v2/test_share_replicas.py":[{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"8dfaf109ddc416e184fa0328d6c994e0b17383ae","unresolved":true,"context_lines":[{"line_number":231,"context_line":"        verifylist \u003d ["},{"line_number":232,"context_line":"            (\u0027share\u0027, self.share.id),"},{"line_number":233,"context_line":"            (\u0027availability_zone\u0027, self.share.availability_zone),"},{"line_number":234,"context_line":"            (\u0027property\u0027, {\u0027fake_key\u0027: \u0027fake_value\u0027}),"},{"line_number":235,"context_line":"        ]"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"}],"source_content_type":"text/x-python","patch_set":4,"id":"50947378_bfbc9f48","line":234,"updated":"2026-02-05 16:11:00.000000000","message":"if we allow to pass multiple values in property field, modify this test.","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c5ed18d217447cc70164bf4d7c98bad77b87e3ef","unresolved":true,"context_lines":[{"line_number":231,"context_line":"        verifylist \u003d ["},{"line_number":232,"context_line":"            (\u0027share\u0027, self.share.id),"},{"line_number":233,"context_line":"            (\u0027availability_zone\u0027, self.share.availability_zone),"},{"line_number":234,"context_line":"            (\u0027property\u0027, {\u0027fake_key\u0027: \u0027fake_value\u0027}),"},{"line_number":235,"context_line":"        ]"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dc24a18c_dc6d3443","line":234,"in_reply_to":"50947378_bfbc9f48","updated":"2026-02-05 21:50:37.000000000","message":"+1\n\nEither here, or with a functional test, please test setting two or more properties at the same time","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"b17c6c23b39f3d6d74e89d570c0f85f0c89480cc","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        verifylist \u003d ["},{"line_number":232,"context_line":"            (\u0027share\u0027, self.share.id),"},{"line_number":233,"context_line":"            (\u0027availability_zone\u0027, self.share.availability_zone),"},{"line_number":234,"context_line":"            (\u0027property\u0027, {\u0027fake_key\u0027: \u0027fake_value\u0027}),"},{"line_number":235,"context_line":"        ]"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"}],"source_content_type":"text/x-python","patch_set":4,"id":"eac67f19_78515fe4","line":234,"in_reply_to":"dc24a18c_dc6d3443","updated":"2026-02-17 16:09:59.000000000","message":"Added here","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef5579ac5ed971df9ae4c1b42fa82bb69e36377","unresolved":false,"context_lines":[{"line_number":469,"context_line":"        )"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        self.assertEqual(self.column_headers, columns)"},{"line_number":472,"context_line":"        self.assertEqual(list(self.values), list(data))"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"class TestShareReplicaShow(TestShareReplica):"}],"source_content_type":"text/x-python","patch_set":5,"id":"53909134_12ec5381","line":472,"updated":"2026-02-23 22:31:16.000000000","message":"No test coverage for ListShareReplica with --property filtering. Could you\nadd some here please?","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eef5579ac5ed971df9ae4c1b42fa82bb69e36377","unresolved":false,"context_lines":[{"line_number":689,"context_line":"            parsed_args.property"},{"line_number":690,"context_line":"        )"},{"line_number":691,"context_line":""},{"line_number":692,"context_line":"    def test_share_replica_unset_property_exception(self):"},{"line_number":693,"context_line":"        self.app.client_manager.share.api_version \u003d api_versions.APIVersion("},{"line_number":694,"context_line":"            \u00272.91\u0027"},{"line_number":695,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"2ad25d35_d28d3d7b","line":692,"updated":"2026-02-23 22:31:16.000000000","message":"Make sure to update the API version appropriately everywhere once you\nrebase this change","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"caab6d27a8e2fd6397b980adea62c7db28a4b25f","unresolved":true,"context_lines":[{"line_number":667,"context_line":""},{"line_number":668,"context_line":"        self.cmd \u003d osc_share_replicas.UnsetShareReplica(self.app, None)"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"    def test_share_replica_unset_property(self):"},{"line_number":671,"context_line":"        self.app.client_manager.share.api_version \u003d api_versions.APIVersion("},{"line_number":672,"context_line":"            \u00272.95\u0027"},{"line_number":673,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"e2a53a59_a9e1dbe0","line":670,"range":{"start_line":670,"start_character":8,"end_line":670,"end_character":41},"updated":"2026-02-26 19:00:07.000000000","message":"can you test unsetting multiple keys here. you\u0027ll end up making multiple delete calls, and the assertion on lines 688-689 will change.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"ade828d0ffd9dbcd1adf7e9bd7034cf666cab1d5","unresolved":false,"context_lines":[{"line_number":667,"context_line":""},{"line_number":668,"context_line":"        self.cmd \u003d osc_share_replicas.UnsetShareReplica(self.app, None)"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"    def test_share_replica_unset_property(self):"},{"line_number":671,"context_line":"        self.app.client_manager.share.api_version \u003d api_versions.APIVersion("},{"line_number":672,"context_line":"            \u00272.95\u0027"},{"line_number":673,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"b69f3b5b_950e2a38","line":670,"range":{"start_line":670,"start_character":8,"end_line":670,"end_character":41},"in_reply_to":"e2a53a59_a9e1dbe0","updated":"2026-03-11 11:00:17.000000000","message":"Done.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"caab6d27a8e2fd6397b980adea62c7db28a4b25f","unresolved":true,"context_lines":[{"line_number":702,"context_line":"            (\u0027replica\u0027, self.share_replica.id),"},{"line_number":703,"context_line":"            (\u0027property\u0027, [\u0027test_key\u0027]),"},{"line_number":704,"context_line":"        ]"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":709,"context_line":""},{"line_number":710,"context_line":"        self.share_replica.delete_metadata.assert_called_once_with("},{"line_number":711,"context_line":"            parsed_args.property"},{"line_number":712,"context_line":"        )"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"        # 404 Not Found would be raised, if property \u0027test_key\u0027 doesn\u0027t exist."},{"line_number":715,"context_line":"        self.share_replica.delete_metadata.side_effect \u003d exceptions.NotFound"}],"source_content_type":"text/x-python","patch_set":8,"id":"319a1791_6b8a4461","line":712,"range":{"start_line":705,"start_character":0,"end_line":712,"end_character":9},"updated":"2026-02-26 19:00:07.000000000","message":"this part of the test is the same as above, and it tests a positive scenario?\n\nI\u0027d not include this in the test that\u0027s mocking an exception.. it\u0027s confusing.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"ade828d0ffd9dbcd1adf7e9bd7034cf666cab1d5","unresolved":false,"context_lines":[{"line_number":702,"context_line":"            (\u0027replica\u0027, self.share_replica.id),"},{"line_number":703,"context_line":"            (\u0027property\u0027, [\u0027test_key\u0027]),"},{"line_number":704,"context_line":"        ]"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"        self.cmd.take_action(parsed_args)"},{"line_number":709,"context_line":""},{"line_number":710,"context_line":"        self.share_replica.delete_metadata.assert_called_once_with("},{"line_number":711,"context_line":"            parsed_args.property"},{"line_number":712,"context_line":"        )"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"        # 404 Not Found would be raised, if property \u0027test_key\u0027 doesn\u0027t exist."},{"line_number":715,"context_line":"        self.share_replica.delete_metadata.side_effect \u003d exceptions.NotFound"}],"source_content_type":"text/x-python","patch_set":8,"id":"c5322010_34b6afe2","line":712,"range":{"start_line":705,"start_character":0,"end_line":712,"end_character":9},"in_reply_to":"319a1791_6b8a4461","updated":"2026-03-11 11:00:17.000000000","message":"Done.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"}],"manilaclient/v2/share_replicas.py":[{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"99d517120c5add51df68e2665ba596014d9bcfe6","unresolved":true,"context_lines":[{"line_number":160,"context_line":"            share_network\u003dshare_network,"},{"line_number":161,"context_line":"        )"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @api_versions.wraps(\"2.92\")  # noqa"},{"line_number":164,"context_line":"    def create(  # noqa"},{"line_number":165,"context_line":"        self,"},{"line_number":166,"context_line":"        share,  # pylint: disable\u003dfunction-redefined  # noqa F811"}],"source_content_type":"text/x-python","patch_set":2,"id":"666bca3e_63b2c987","line":163,"updated":"2026-02-02 07:06:10.000000000","message":"dont we have to restrict wraps from 2.72 to 2.91 for above create function ?","commit_id":"00e37f007e2d35b08cdad8d489322db6ea52a5ed"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"00d19c895351f0fcaa8ccfe7c34170bc59edb093","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            share_network\u003dshare_network,"},{"line_number":161,"context_line":"        )"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @api_versions.wraps(\"2.92\")  # noqa"},{"line_number":164,"context_line":"    def create(  # noqa"},{"line_number":165,"context_line":"        self,"},{"line_number":166,"context_line":"        share,  # pylint: disable\u003dfunction-redefined  # noqa F811"}],"source_content_type":"text/x-python","patch_set":2,"id":"8f3d5de0_f03602bd","line":163,"in_reply_to":"666bca3e_63b2c987","updated":"2026-02-05 06:55:10.000000000","message":"Yes, done.","commit_id":"00e37f007e2d35b08cdad8d489322db6ea52a5ed"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c5ed18d217447cc70164bf4d7c98bad77b87e3ef","unresolved":true,"context_lines":[{"line_number":80,"context_line":"    def list(self, share\u003dNone, search_opts\u003dNone):  # noqa F811"},{"line_number":81,"context_line":"        return self._list_share_replicas(share\u003dshare, search_opts\u003dsearch_opts)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def _list_share_replicas(self, share\u003dNone, search_opts\u003dNone):"},{"line_number":84,"context_line":"        \"\"\"List all share replicas or list replicas belonging to a share."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param share: either share object or its UUID."}],"source_content_type":"text/x-python","patch_set":4,"id":"a179277a_a5fb1f15","line":83,"range":{"start_line":83,"start_character":47,"end_line":83,"end_character":63},"updated":"2026-02-05 21:50:37.000000000","message":"There\u0027s a bug here that you\u0027ll now expose. These search opts aren\u0027t being sent in the API call below.. \n\nyou\u0027ll need to implement that","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"b17c6c23b39f3d6d74e89d570c0f85f0c89480cc","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    def list(self, share\u003dNone, search_opts\u003dNone):  # noqa F811"},{"line_number":81,"context_line":"        return self._list_share_replicas(share\u003dshare, search_opts\u003dsearch_opts)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def _list_share_replicas(self, share\u003dNone, search_opts\u003dNone):"},{"line_number":84,"context_line":"        \"\"\"List all share replicas or list replicas belonging to a share."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param share: either share object or its UUID."}],"source_content_type":"text/x-python","patch_set":4,"id":"9942ef35_c5c6fa07","line":83,"range":{"start_line":83,"start_character":47,"end_line":83,"end_character":63},"in_reply_to":"a179277a_a5fb1f15","updated":"2026-02-17 16:09:59.000000000","message":"Implemented. Done.","commit_id":"c9719124160a1fa1b4830b5a93339182af0546f0"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"2c203bb36ec6f78f1f245b3a040c286b74194fef","unresolved":true,"context_lines":[{"line_number":173,"context_line":"    @api_versions.wraps(\"2.92\")  # noqa"},{"line_number":174,"context_line":"    def create(  # noqa"},{"line_number":175,"context_line":"        self,"},{"line_number":176,"context_line":"        share,  # pylint: disable\u003dfunction-redefined  # noqa F811"},{"line_number":177,"context_line":"        availability_zone\u003dNone,"},{"line_number":178,"context_line":"        scheduler_hints\u003dNone,"},{"line_number":179,"context_line":"        share_network\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"741d6265_41aa9b61","line":176,"updated":"2026-02-20 06:56:09.000000000","message":"nit: disable PEP should be exception, i am seeing every ware. ex: #noqa. check if you can do without exceptions","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"25603860eea11b7cd8fbd94c18f7568ce2527bd4","unresolved":false,"context_lines":[{"line_number":173,"context_line":"    @api_versions.wraps(\"2.92\")  # noqa"},{"line_number":174,"context_line":"    def create(  # noqa"},{"line_number":175,"context_line":"        self,"},{"line_number":176,"context_line":"        share,  # pylint: disable\u003dfunction-redefined  # noqa F811"},{"line_number":177,"context_line":"        availability_zone\u003dNone,"},{"line_number":178,"context_line":"        scheduler_hints\u003dNone,"},{"line_number":179,"context_line":"        share_network\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"94969c2a_9a4ff27d","line":176,"in_reply_to":"741d6265_41aa9b61","updated":"2026-02-26 13:25:39.000000000","message":"Yeah it\u0027s been followed everywhere, not sure if we should remove Jaya. Keeping it for now. Thanks.","commit_id":"3f76092221cdf4ca8d2ce68b05ef29274139cf40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"caab6d27a8e2fd6397b980adea62c7db28a4b25f","unresolved":true,"context_lines":[{"line_number":89,"context_line":"        \"\"\""},{"line_number":90,"context_line":"        search_opts \u003d search_opts or {}"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # This will turn {\u0027metadata\u0027: {\u0027foo\u0027: \u0027bar\u0027, \u0027baz\u0027: \u0027qux\u0027}}"},{"line_number":93,"context_line":"        # into ?metadata\u003dfoo:bar,baz:qux"},{"line_number":94,"context_line":"        query_string \u003d self._build_query_string(search_opts)"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"cec69aac_cffe3639","line":92,"range":{"start_line":92,"start_character":25,"end_line":92,"end_character":67},"updated":"2026-02-26 19:00:07.000000000","message":"This comment is incomplete, for nested search options dicts like metadata, you expect a stringified inner dict:\n\n```\n{\u0027metadata\u0027: \u0027foo:bar,baz:qux\u0027}\n```","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"ade828d0ffd9dbcd1adf7e9bd7034cf666cab1d5","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        \"\"\""},{"line_number":90,"context_line":"        search_opts \u003d search_opts or {}"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # This will turn {\u0027metadata\u0027: {\u0027foo\u0027: \u0027bar\u0027, \u0027baz\u0027: \u0027qux\u0027}}"},{"line_number":93,"context_line":"        # into ?metadata\u003dfoo:bar,baz:qux"},{"line_number":94,"context_line":"        query_string \u003d self._build_query_string(search_opts)"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"e69fac83_533e0630","line":92,"range":{"start_line":92,"start_character":25,"end_line":92,"end_character":67},"in_reply_to":"cec69aac_cffe3639","updated":"2026-03-11 11:00:17.000000000","message":"Just added the one you suggested, please see if that is okay. Thanks.","commit_id":"2b3100bd4856e3c425b4b2f3bbe1a8ed0ec2684e"}],"releasenotes/notes/add-share-replica-metadata-e6c1c2e00295d2dd.yaml":[{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"99d517120c5add51df68e2665ba596014d9bcfe6","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds support to create replica with properties and update replica"},{"line_number":5,"context_line":"    properties with set and unset command (only with the OpenStackClient)."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"95229a66_db6144de","line":4,"updated":"2026-02-02 07:06:10.000000000","message":"Add support to create/update/delete replica metadata (properties) with set and unset command.\n\n\nno need to mention openstackclient, its only option we are using since last release.","commit_id":"00e37f007e2d35b08cdad8d489322db6ea52a5ed"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"00d19c895351f0fcaa8ccfe7c34170bc59edb093","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds support to create replica with properties and update replica"},{"line_number":5,"context_line":"    properties with set and unset command (only with the OpenStackClient)."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"b237fd22_cb3149fe","line":4,"in_reply_to":"95229a66_db6144de","updated":"2026-02-05 06:55:10.000000000","message":"Done.","commit_id":"00e37f007e2d35b08cdad8d489322db6ea52a5ed"}]}
