)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"a049af155a107c56a1fe4f5965f724fb23eb5c54","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2bb25130_65d8fadb","updated":"2021-12-16 13:07:11.000000000","message":"Modifications sounding clear to me in this spec. Thanks for the updates, Ashley! :)","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8bf5118ec734b99aeb8f380f35d36d2e074ac1a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f011ed8f_7ff894b9","updated":"2021-12-13 03:42:39.000000000","message":"hi, Ashley Rodriguez. thanks for your change.\nhere are some questions about this BP.\nCan you explain the specific implementation steps of the related functions?","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"420b63d8ff48793f23ba89c1c6830fc9f9812995","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"faadd58a_7a82b305","updated":"2021-12-08 21:47:51.000000000","message":"recheck","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"30a18f19f2a95623fdfda282b334444fbfa54b09","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cb5ea009_f8880605","updated":"2021-12-17 08:03:22.000000000","message":"Ashley Rodriguez,\nThank you for your clear explanation.\nLGTM","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"646d77b95a9d03e99dc95016ec60d912e540fdc1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"da8d61c5_54c31f20","updated":"2021-12-17 17:11:35.000000000","message":"LGTM, Ashley! Thanks\nJust have a question inline - which may require opinions from a broader audience :)","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"f251419c8faab0bd21c95bdeffdcb8e3425554a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a5964bb6_9aede64b","updated":"2021-12-23 12:35:05.000000000","message":"LGTM.","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f4ed0ab1a728e92742b1d841d6cad53517e018f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"08083814_48fa9843","updated":"2021-12-23 18:51:03.000000000","message":"Several comments inline; i\u0027m okay merging this and submitting a trivial follow up change","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":32411,"name":"Eduardo Santos","email":"eduardo.experimental@gmail.com","username":"ecsantos"},"change_message_id":"304d2db8ebf53c9d27a4c62efe8603eb24758a68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"74436d29_748516f9","updated":"2022-01-07 23:21:20.000000000","message":"Thanks for submitting this spec update, Ashley! I left one comment with regard to formatting. Other than that, the change looks good to me.","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8040654dd77cd20744f113a90094fca6672be9b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"457a269c_77c81681","updated":"2022-01-12 15:57:10.000000000","message":"The rest of the comments can be addressed in a follow up. Thanks for working on this Ashley!","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"}],"specs/yoga/metadata-for-share-resources.rst":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f4ed0ab1a728e92742b1d841d6cad53517e018f","unresolved":true,"context_lines":[{"line_number":32,"context_line":" - Shares"},{"line_number":33,"context_line":" - Share Export Locations"},{"line_number":34,"context_line":" - Share Access Rules"},{"line_number":35,"context_line":" - Share Instances"},{"line_number":36,"context_line":" - Share Instance Export Locations"},{"line_number":37,"context_line":" - Share Replicas"},{"line_number":38,"context_line":" - Share Replica Export Locations"}],"source_content_type":"text/x-rst","patch_set":2,"id":"d8809f8c_eeb6f020","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":18},"updated":"2021-12-23 18:51:03.000000000","message":"not user facing","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8bf5118ec734b99aeb8f380f35d36d2e074ac1a3","unresolved":true,"context_lines":[{"line_number":91,"context_line":"- unset resource metadata item (delete a specific key\u003dvalue pair)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"To distinguish and protect service owned or admin only metadata,"},{"line_number":94,"context_line":"there will be an ignore_keys parameter and ignored keys dictionary"},{"line_number":95,"context_line":"to prevent these metadata items from being manipulated by the end user."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"8bcd0571_bad7dbca","line":94,"range":{"start_line":94,"start_character":17,"end_line":94,"end_character":28},"updated":"2021-12-13 03:42:39.000000000","message":"Is ignore_keys necessary to distinguish service_only_keys and admin_only_keys?\nIs it fixed in code, or is it a configuration item?","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"93b1054e34d707d0f113c23f9354c1d657df5635","unresolved":true,"context_lines":[{"line_number":91,"context_line":"- unset resource metadata item (delete a specific key\u003dvalue pair)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"To distinguish and protect service owned or admin only metadata,"},{"line_number":94,"context_line":"there will be an ignore_keys parameter and ignored keys dictionary"},{"line_number":95,"context_line":"to prevent these metadata items from being manipulated by the end user."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"77e0d503_9c0084e9","line":94,"range":{"start_line":94,"start_character":17,"end_line":94,"end_character":28},"in_reply_to":"8bcd0571_bad7dbca","updated":"2021-12-15 23:10:50.000000000","message":"Its a configuation option regarding backends. The ignore-keys parameter is necessary to prevent that metadata item being overwritten. I had tried making a \"user_modifiable\" field in the database but that proved a little too difficult for me, and this was the best alternative I could think of to achieve the same thing.","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8bf5118ec734b99aeb8f380f35d36d2e074ac1a3","unresolved":true,"context_lines":[{"line_number":123,"context_line":"Data model impact"},{"line_number":124,"context_line":"-----------------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"To store resource metadata, new tables and corresponding ORM models are"},{"line_number":127,"context_line":"necessary. These tables will be created during a database upgrade, and"},{"line_number":128,"context_line":"nullified and destroyed during a database downgrade."},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"0903a73e_0a05c6ae","line":126,"range":{"start_line":126,"start_character":28,"end_line":126,"end_character":38},"updated":"2021-12-13 03:42:39.000000000","message":"does this table called resource?","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"93b1054e34d707d0f113c23f9354c1d657df5635","unresolved":true,"context_lines":[{"line_number":123,"context_line":"Data model impact"},{"line_number":124,"context_line":"-----------------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"To store resource metadata, new tables and corresponding ORM models are"},{"line_number":127,"context_line":"necessary. These tables will be created during a database upgrade, and"},{"line_number":128,"context_line":"nullified and destroyed during a database downgrade."},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"0ab44871_75819e1e","line":126,"range":{"start_line":126,"start_character":28,"end_line":126,"end_character":38},"in_reply_to":"0903a73e_0a05c6ae","updated":"2021-12-15 23:10:50.000000000","message":"Im not sure what this means. I\u0027m creating metadata tables for thoss resources that didnt already have one, though Im abstracting the metadata resource itself so it can be applied to multiple resources (shares, snapshots etc.).","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8bf5118ec734b99aeb8f380f35d36d2e074ac1a3","unresolved":true,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Existing metadata tables for Shares (\"share_metadata\"), Export Locations"},{"line_number":131,"context_line":"(\"share_instance_export_locations_metadata\") and Share Access"},{"line_number":132,"context_line":"Rules (\"share_access_rules_metadata\") will be modified to include a string"},{"line_number":133,"context_line":"attribute called ``deleted``. The default value for this attribute is"},{"line_number":134,"context_line":"set to False."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Existing metadata tables will also be modified to replace the datatype of"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f2453834_802f19d9","line":133,"range":{"start_line":132,"start_character":38,"end_line":133,"end_character":28},"updated":"2021-12-13 03:42:39.000000000","message":"The current three database tables already contain ``deleted`` field.","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"93b1054e34d707d0f113c23f9354c1d657df5635","unresolved":true,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Existing metadata tables for Shares (\"share_metadata\"), Export Locations"},{"line_number":131,"context_line":"(\"share_instance_export_locations_metadata\") and Share Access"},{"line_number":132,"context_line":"Rules (\"share_access_rules_metadata\") will be modified to include a string"},{"line_number":133,"context_line":"attribute called ``deleted``. The default value for this attribute is"},{"line_number":134,"context_line":"set to False."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Existing metadata tables will also be modified to replace the datatype of"}],"source_content_type":"text/x-rst","patch_set":2,"id":"14cbae1a_209ba281","line":133,"range":{"start_line":132,"start_character":38,"end_line":133,"end_character":28},"in_reply_to":"f2453834_802f19d9","updated":"2021-12-15 23:10:50.000000000","message":"Only ShareAccessRulesMetadata has a deleted column, I will change this.","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8bf5118ec734b99aeb8f380f35d36d2e074ac1a3","unresolved":true,"context_lines":[{"line_number":138,"context_line":"provide scalability."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"A general ORM schema for a metadata table will be as follows::"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"  class ResourceMetadata(BASE, ManilaBase):"},{"line_number":143,"context_line":"    \"\"\"Represents a metadata key/value pair for a resource.\"\"\""},{"line_number":144,"context_line":"    __tablename__ \u003d \u0027resource_metadata\u0027"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b2e90e88_774642ca","line":141,"updated":"2021-12-13 03:42:39.000000000","message":"Is this a modification of the three database tables above, or will a new database table be created named \"Resource\"?\nif is new table, when create share, share_type, access_rule, export_location, share_network and so on,,,need to add the corresponding UUID to this table?","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"93b1054e34d707d0f113c23f9354c1d657df5635","unresolved":true,"context_lines":[{"line_number":138,"context_line":"provide scalability."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"A general ORM schema for a metadata table will be as follows::"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"  class ResourceMetadata(BASE, ManilaBase):"},{"line_number":143,"context_line":"    \"\"\"Represents a metadata key/value pair for a resource.\"\"\""},{"line_number":144,"context_line":"    __tablename__ \u003d \u0027resource_metadata\u0027"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfca8b93_ac33456a","line":141,"in_reply_to":"b2e90e88_774642ca","updated":"2021-12-15 23:10:50.000000000","message":"Its not ResourceMetadata but rather \"ShareSnapshotMetadata\" or \"SecurityServiceMetadata\" and so on for all the new resources. The \"id\" field is a UUID.","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8bf5118ec734b99aeb8f380f35d36d2e074ac1a3","unresolved":true,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"A general ORM schema for a metadata table will be as follows::"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"  class ResourceMetadata(BASE, ManilaBase):"},{"line_number":143,"context_line":"    \"\"\"Represents a metadata key/value pair for a resource.\"\"\""},{"line_number":144,"context_line":"    __tablename__ \u003d \u0027resource_metadata\u0027"},{"line_number":145,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfce0674_7fdecad3","line":142,"range":{"start_line":142,"start_character":8,"end_line":142,"end_character":24},"updated":"2021-12-13 03:42:39.000000000","message":"do we need admin_only field?","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"93b1054e34d707d0f113c23f9354c1d657df5635","unresolved":true,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"A general ORM schema for a metadata table will be as follows::"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"  class ResourceMetadata(BASE, ManilaBase):"},{"line_number":143,"context_line":"    \"\"\"Represents a metadata key/value pair for a resource.\"\"\""},{"line_number":144,"context_line":"    __tablename__ \u003d \u0027resource_metadata\u0027"},{"line_number":145,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"32e26393_1a9c00e9","line":142,"range":{"start_line":142,"start_character":8,"end_line":142,"end_character":24},"in_reply_to":"dfce0674_7fdecad3","updated":"2021-12-15 23:10:50.000000000","message":"I had tried this before, but couldnt get the logic to work so instead I made an ignore_keys parameter that essentially does the same thing: makes sure that certain keys cannot be deleted or changed by nonadmin users.","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8bf5118ec734b99aeb8f380f35d36d2e074ac1a3","unresolved":true,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Retrieve all metadata key\u003dvalue pairs as JSON::"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"  GET /v2/{resource}/metadata"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"- *Sample request body*: null"},{"line_number":178,"context_line":"- *Success Codes*: 200"}],"source_content_type":"text/x-rst","patch_set":2,"id":"242a053c_22321f06","line":175,"range":{"start_line":175,"start_character":10,"end_line":175,"end_character":20},"updated":"2021-12-13 03:42:39.000000000","message":"does this means share_id, access_id or export_location_id?\nthe metadata will get from the new table resource_metadata?","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"93b1054e34d707d0f113c23f9354c1d657df5635","unresolved":true,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Retrieve all metadata key\u003dvalue pairs as JSON::"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"  GET /v2/{resource}/metadata"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"- *Sample request body*: null"},{"line_number":178,"context_line":"- *Success Codes*: 200"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5eca19c3_2c9e8b52","line":175,"range":{"start_line":175,"start_character":10,"end_line":175,"end_character":20},"in_reply_to":"242a053c_22321f06","updated":"2021-12-15 23:10:50.000000000","message":"Correct, resource id pertains to the resource which will have metadata like shares, snapshots etc. Not sure what you mean by your second question","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8bf5118ec734b99aeb8f380f35d36d2e074ac1a3","unresolved":true,"context_lines":[{"line_number":239,"context_line":"       }"},{"line_number":240,"context_line":"    }"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"*Note:* Metadata keys that are part of the admin-only dictionary will"},{"line_number":243,"context_line":"not be deleted and updated if the user requesting this is not an"},{"line_number":244,"context_line":"system or project admin."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Update specific metadata item"},{"line_number":247,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b7e8e6c0_3d44785e","line":244,"range":{"start_line":242,"start_character":8,"end_line":244,"end_character":24},"updated":"2021-12-13 03:42:39.000000000","message":"1:Whether an administrator can promote the permission of some key/value pairs to be modified only by administrators? or lower key-value pair permissions? admin-only dictionary will fixation in code? or can be adjusted dynamically by the administrator?\n\n2:or some key/value also can not be modified by admin, those can only be modified by mainla service?","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"93b1054e34d707d0f113c23f9354c1d657df5635","unresolved":true,"context_lines":[{"line_number":239,"context_line":"       }"},{"line_number":240,"context_line":"    }"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"*Note:* Metadata keys that are part of the admin-only dictionary will"},{"line_number":243,"context_line":"not be deleted and updated if the user requesting this is not an"},{"line_number":244,"context_line":"system or project admin."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Update specific metadata item"},{"line_number":247,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":2,"id":"69277972_5f455f48","line":244,"range":{"start_line":242,"start_character":8,"end_line":244,"end_character":24},"in_reply_to":"b7e8e6c0_3d44785e","updated":"2021-12-15 23:10:50.000000000","message":"Currently, I\u0027ve implemented the admin-only keys as a set of values in manila/common/constants.py specifically \"__affinity_same_host\" and \"__affinity_different_host\" as these are the keys used in backend filtering. For now, I think this is sufficient as there is an issue in stable xena that can be addressed with my admin-only patch (only for share resource). It is possible to create a more generalized admin-only set of keys that includes more than what is fixated in code, and that can be applied to more that just the shares resource, but that requires a little more thought on my part on how to implement it, if needed I can wait to implement this as a later enhancement. I will add this enhancement in the spec for future consideration, though it not completely fleshed out right now. One solution could be making custom admin-only data a configuration option. Thoughts?","commit_id":"af157fed2e73a7fa5cd5e562654f968570ccfab8"},{"author":{"_account_id":32411,"name":"Eduardo Santos","email":"eduardo.experimental@gmail.com","username":"ecsantos"},"change_message_id":"304d2db8ebf53c9d27a4c62efe8603eb24758a68","unresolved":true,"context_lines":[{"line_number":29,"context_line":"End users interact with manila API to manage their shared file system storage"},{"line_number":30,"context_line":"resources. These resources include:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":" - Shares"},{"line_number":33,"context_line":" - Share Export Locations"},{"line_number":34,"context_line":" - Share Access Rules"},{"line_number":35,"context_line":" - Share Instances"}],"source_content_type":"text/x-rst","patch_set":3,"id":"2af84650_44bc7101","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":1},"updated":"2022-01-07 23:21:20.000000000","message":"I\u0027m not sure if this was intentional, but the extra space added before each item of this unordered list wraps a block quote [1] around it. In my monitor I couldn\u0027t see it, but if you increase the contrast it starts to show. [2]\n\n[1] https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#block-quotes\n[2] https://i.imgur.com/0fV4y7e.png","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8040654dd77cd20744f113a90094fca6672be9b4","unresolved":true,"context_lines":[{"line_number":29,"context_line":"End users interact with manila API to manage their shared file system storage"},{"line_number":30,"context_line":"resources. These resources include:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":" - Shares"},{"line_number":33,"context_line":" - Share Export Locations"},{"line_number":34,"context_line":" - Share Access Rules"},{"line_number":35,"context_line":" - Share Instances"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4669f354_786d751a","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":1},"in_reply_to":"2af84650_44bc7101","updated":"2022-01-12 15:57:10.000000000","message":"yes; we could get rid of this one and address the other minor comments in a follow up. thanks Eduardo!","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f4ed0ab1a728e92742b1d841d6cad53517e018f","unresolved":true,"context_lines":[{"line_number":32,"context_line":" - Shares"},{"line_number":33,"context_line":" - Share Export Locations"},{"line_number":34,"context_line":" - Share Access Rules"},{"line_number":35,"context_line":" - Share Instances"},{"line_number":36,"context_line":" - Share Instance Export Locations"},{"line_number":37,"context_line":" - Share Replicas"},{"line_number":38,"context_line":" - Share Replica Export Locations"}],"source_content_type":"text/x-rst","patch_set":3,"id":"0d8dbcd5_99fbb5fb","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":18},"updated":"2021-12-23 18:51:03.000000000","message":"Share instances are not visible or accessible to end users by default","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f4ed0ab1a728e92742b1d841d6cad53517e018f","unresolved":true,"context_lines":[{"line_number":33,"context_line":" - Share Export Locations"},{"line_number":34,"context_line":" - Share Access Rules"},{"line_number":35,"context_line":" - Share Instances"},{"line_number":36,"context_line":" - Share Instance Export Locations"},{"line_number":37,"context_line":" - Share Replicas"},{"line_number":38,"context_line":" - Share Replica Export Locations"},{"line_number":39,"context_line":" - Share Snapshots"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9c4167a5_37dcdf4d","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":34},"updated":"2021-12-23 18:51:03.000000000","message":"Share instance export locations are not visible or accessible to end users by default","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f4ed0ab1a728e92742b1d841d6cad53517e018f","unresolved":true,"context_lines":[{"line_number":128,"context_line":"nullified and destroyed during a database downgrade."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Existing metadata tables for Shares (\"share_metadata\"), Export Locations"},{"line_number":131,"context_line":"(\"share_instance_export_locations_metadata\") will be modified to include"},{"line_number":132,"context_line":"a string attribute called ``deleted``. The default value for this attribute is"},{"line_number":133,"context_line":"set to False."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Existing metadata tables will also be modified to replace the datatype of"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8c2dcaba_25e51db2","line":132,"range":{"start_line":131,"start_character":65,"end_line":132,"end_character":25},"updated":"2021-12-23 18:51:03.000000000","message":"change the data type of the ``deleted`` column to a 36 character string.","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f4ed0ab1a728e92742b1d841d6cad53517e018f","unresolved":true,"context_lines":[{"line_number":130,"context_line":"Existing metadata tables for Shares (\"share_metadata\"), Export Locations"},{"line_number":131,"context_line":"(\"share_instance_export_locations_metadata\") will be modified to include"},{"line_number":132,"context_line":"a string attribute called ``deleted``. The default value for this attribute is"},{"line_number":133,"context_line":"set to False."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Existing metadata tables will also be modified to replace the datatype of"},{"line_number":136,"context_line":"the \"id\" field to a string of length 36 for UUIDs. This will be done to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"870eb187_9ef6bfef","line":133,"range":{"start_line":133,"start_character":7,"end_line":133,"end_character":12},"updated":"2021-12-23 18:51:03.000000000","message":"\"False\"","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f4ed0ab1a728e92742b1d841d6cad53517e018f","unresolved":true,"context_lines":[{"line_number":151,"context_line":"                                foreign_keys\u003dresource_id,"},{"line_number":152,"context_line":"                                primaryjoin\u003d\u0027and_(\u0027"},{"line_number":153,"context_line":"                                \u0027ResourceMetadata.resource_id \u003d\u003d Resource.id,\u0027"},{"line_number":154,"context_line":"                                \u0027ResourceMetadata.deleted \u003d\u003d \"False)\u0027)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Metadata items are not soft deleted when they are unset by the service or by"}],"source_content_type":"text/x-rst","patch_set":3,"id":"28c7fa85_999077ca","line":154,"range":{"start_line":154,"start_character":62,"end_line":154,"end_character":67},"updated":"2021-12-23 18:51:03.000000000","message":"Missing end quote \"","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"646d77b95a9d03e99dc95016ec60d912e540fdc1","unresolved":true,"context_lines":[{"line_number":326,"context_line":"Other end user impact"},{"line_number":327,"context_line":"---------------------"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"Python-manilaclient SDK will include support for the new APIs and we\u0027ll"},{"line_number":330,"context_line":"ensure that there are corresponding CLI commands in the new OSC plugin"},{"line_number":331,"context_line":"shell. Manila UI\u0027s support for share, export location and access rule"},{"line_number":332,"context_line":"metadata is limited. This specification doesn\u0027t seek to address all the"},{"line_number":333,"context_line":"UI gaps; but all effort will be made to close the feature parity between"},{"line_number":334,"context_line":"the CLI utilities and the UI. Eventually users will be able to perform"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fbc9f6ec_9935f387","line":331,"range":{"start_line":329,"start_character":0,"end_line":331,"end_character":6},"updated":"2021-12-17 17:11:35.000000000","message":"I have a personal opinion on this that *might* be a point of discussion now...\nWe intend to add the deprecated warning to python-manilaclient at the end of the Yoga release, as we are closer than ever of feature parity.\nSo I was wondering if we should stop adding new functionalities to python-manilaclient. I can think of some pros and cons for this:\nPros:\n- Enforce the adoption of OSC\n- No need to write the same feature/modifications for both clients\nCons:\n- Might cause disparity between the two clients\n\nOne question I think must be discussed with a broader audience is:\nIs it a problem to start adding features to only one of the clients? Would be users complaining about this?\n/me does not want to piss off anyone if this is the approach we choose.\nWdyt?","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f4ed0ab1a728e92742b1d841d6cad53517e018f","unresolved":true,"context_lines":[{"line_number":326,"context_line":"Other end user impact"},{"line_number":327,"context_line":"---------------------"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"Python-manilaclient SDK will include support for the new APIs and we\u0027ll"},{"line_number":330,"context_line":"ensure that there are corresponding CLI commands in the new OSC plugin"},{"line_number":331,"context_line":"shell. Manila UI\u0027s support for share, export location and access rule"},{"line_number":332,"context_line":"metadata is limited. This specification doesn\u0027t seek to address all the"},{"line_number":333,"context_line":"UI gaps; but all effort will be made to close the feature parity between"},{"line_number":334,"context_line":"the CLI utilities and the UI. Eventually users will be able to perform"}],"source_content_type":"text/x-rst","patch_set":3,"id":"047e9553_f4d76813","line":331,"range":{"start_line":329,"start_character":0,"end_line":331,"end_character":6},"in_reply_to":"fbc9f6ec_9935f387","updated":"2021-12-23 18:51:03.000000000","message":"We discussed this at length at the PTG, and announced that new features would only debut in OSC. Since we\u0027re setting the stage for a future \"manila\" shell command that will look a lot like OSC, we need to actively deprecate the current \"manila\" command. Not having this feature in the manila shell command shouldn\u0027t hurt any existing users unless they want to add/manipulate metadata on resources where metadata isn\u0027t currently supported...\n\nSo, this spec says that the work items are in the manilaclient SDK (will not deprecated anytime soon) and manilaclient\u0027s OSC plugin (\"openstack share ...\") and not the manila shell..","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f4ed0ab1a728e92742b1d841d6cad53517e018f","unresolved":true,"context_lines":[{"line_number":377,"context_line":"- Add database migration to convert the ``id`` field of  share, export"},{"line_number":378,"context_line":"  location and access rule metadata to a string from integer and populate"},{"line_number":379,"context_line":"  the field with UUIDs"},{"line_number":380,"context_line":"- Add database migrations to introduce the \"deleted\" field to share,"},{"line_number":381,"context_line":"  export location and access rule metadata tables."},{"line_number":382,"context_line":"- Add database migrations to create new metadata tables for all other resources"},{"line_number":383,"context_line":"- Add ``MetadataControllerMixin``, inherit and extend in all resources and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"907d38b6_aa1045b8","line":380,"range":{"start_line":380,"start_character":29,"end_line":380,"end_character":42},"updated":"2021-12-23 18:51:03.000000000","message":"convert the datatype of the \"deleted\" field in","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f4ed0ab1a728e92742b1d841d6cad53517e018f","unresolved":true,"context_lines":[{"line_number":383,"context_line":"- Add ``MetadataControllerMixin``, inherit and extend in all resources and"},{"line_number":384,"context_line":"  bump up the API microversion."},{"line_number":385,"context_line":"- Add unit and integration tests"},{"line_number":386,"context_line":"- Add support for metadata APIs in manilaclient SDK, and OSC CLI and SDK"},{"line_number":387,"context_line":"- Add support for metadata interactions in the UI"},{"line_number":388,"context_line":"- Add documentation"},{"line_number":389,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"399d6ca6_799df6d8","line":386,"range":{"start_line":386,"start_character":69,"end_line":386,"end_character":72},"updated":"2021-12-23 18:51:03.000000000","message":"which SDK is this?","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"4f4ed0ab1a728e92742b1d841d6cad53517e018f","unresolved":true,"context_lines":[{"line_number":401,"context_line":"Dependencies"},{"line_number":402,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"Not a direct dependency, but this API change incorporates the metadata"},{"line_number":405,"context_line":"changes necessary to implement this spec: `Affinity and anti-affinity"},{"line_number":406,"context_line":"scheduler filter \u003chttps://specs.openstack.org/openstack/manila-specs/specs/xena/affinity-antiaffinity-filter.html\u003e`_"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"Testing"},{"line_number":410,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":411,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"2945a1df_1c823bd5","line":408,"range":{"start_line":404,"start_character":0,"end_line":408,"end_character":0},"updated":"2021-12-23 18:51:03.000000000","message":"Not anymore. We\u0027ll have closed the gap with your patch here: https://review.opendev.org/c/openstack/manila/+/806647","commit_id":"833cb6c3e09b176ad2ca4d793f045811b3f99ef2"}]}
