)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cf0a437e988dfa7497cf9577bc6857beaa223071","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8c6123e6_ebaabe04","updated":"2022-10-11 18:53:59.000000000","message":"Thanks! A question inline","commit_id":"05228fea92ed6045172c31598285c4990f5feb60"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e0c345836d9b482b27509f01a75248b23d73ffae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7505eaba_351976f6","updated":"2022-11-30 20:38:57.000000000","message":"Hi Alex, sorry for getting back to this after a long while - thanks for your patience and your changes; please see my comments inline.. ","commit_id":"73e82a59775237916ed719ee25b599089d23aad8"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"0b1f8fbd6e1de78f005f3a51cf9c1a57d49059bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"68a4713a_4f6eea60","in_reply_to":"7505eaba_351976f6","updated":"2022-12-02 11:34:56.000000000","message":"Hello Goutham,\n\nThank you very much for the review!","commit_id":"73e82a59775237916ed719ee25b599089d23aad8"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"02e6da25c222c00f8664a3f294984511c2b8db62","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"62218343_0aa20a41","updated":"2022-12-15 21:01:21.000000000","message":"LGTM, thanks for the fix and the docs update, Alexander","commit_id":"7ec7321053c73c18764782d4c40cf77a998f8d41"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"20858fce1c3aa5d56f7bc058f5d66a4790cfc8d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"89933b8e_999cd81c","updated":"2022-12-06 06:20:56.000000000","message":"Perfect, thanks for posting test results; this LGTM... ","commit_id":"7ec7321053c73c18764782d4c40cf77a998f8d41"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"2a8a9494fccf18f1d7ee9ff4b7a69d0bb722d57e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"53db1639_7976a54c","updated":"2022-12-05 21:49:33.000000000","message":"The patch set #4 has been successfully tested for:\n\n* Driver upgrade (with default config) + service restart:\n```\nDec 05 22:12:43 devstack-aio-manila-master manila-share[1689824]: INFO manila.share.manager [None req-7c9de614-efd6-4240-b2d3-fa5040a039ef None None] Updating share status\nDec 05 22:12:43 devstack-aio-manila-master manila-share[1689824]: DEBUG manila.share.driver [None req-7c9de614-efd6-4240-b2d3-fa5040a039ef None None] Updating share stats {{_update_share_stats /opt/stack/manila/manila/share/driver.py:1308}}\nDec 05 22:12:43 devstack-aio-manila-master manila-share[1689824]: DEBUG manila.manager [None req-7c9de614-efd6-4240-b2d3-fa5040a039ef None None] Notifying Schedulers of capabilities ...{{_publish_service_capabilities /opt/stack/manila/manila/manager.py:170}}\nDec 05 22:12:43 devstack-aio-manila-master manila-share[1689823]: DEBUG manila.share.drivers.infinidat.infinibox [None req-3409eb6b-041b-4e8e-8fd0-d96e204cf7b2 None None] Update snapdir_visible for openstack-shr-922e0216-a56c-428e-b52a-231070d07dc5: True -\u003e False {{_ensure_filesystem_export /opt/stack/manila/manila/share/drivers/infinidat/infinibox.py\n:403}}\nDec 05 22:12:43 devstack-aio-manila-master manila-share[1689824]: INFO manila.share.manager [None req-7c9de614-efd6-4240-b2d3-fa5040a039ef None None] Finished initialization of driver: \u0027InfiniboxShareDriver@devstack-aio-manila-master@nfs2\u0027\n```\n\n* Change config file (set snapdir_accessible \u003d False) + service restart:\n```\nDec 05 22:15:05 devstack-aio-manila-master manila-share[1690037]: DEBUG manila.share.driver [None req-7a86542d-2e2f-4cfc-94cf-b5b793c66af0 None None] Updating share stats {{_update_share_stats /opt/stack/manila/manila/share/driver.py:1308}}\nDec 05 22:15:05 devstack-aio-manila-master manila-share[1690037]: DEBUG manila.manager [None req-7a86542d-2e2f-4cfc-94cf-b5b793c66af0 None None] Notifying Schedulers of capabilities ... {{_publish_service_capabilities /opt/stack/manila/manila/manager.py:170}}\nDec 05 22:15:05 devstack-aio-manila-master manila-share[1690037]: INFO manila.share.manager [None req-7a86542d-2e2f-4cfc-94cf-b5b793c66af0 None None] Finished initialization of driver: \u0027InfiniboxShareDriver@devstack-aio-manila-master@nfs2\u0027\nDec 05 22:15:05 devstack-aio-manila-master manila-share[1690037]: DEBUG manila.service [None req-7a86542d-2e2f-4cfc-94cf-b5b793c66af0 None None] Creating RPC server for service manila-share. {{start /opt/stack/manila/manila/service.py:151}}\nDec 05 22:15:05 devstack-aio-manila-master manila-share[1690036]: DEBUG manila.share.drivers.infinidat.infinibox [None req-a27a9a05-4aac-43a4-bab8-fb19a7b10315 None None] Update snapdir_accessible for openstack-shr-922e0216-a56c-428e-b52a-231070d07dc5: True -\u003e False {{ensure_share /opt/stack/manila/manila/share/drivers/infinidat/infinibox.py:524}}\n```\n\n* Service restart with no config changes:\n```\nDec 05 23:47:07 devstack-aio-manila-master manila-share[1703951]: INFO manila.share.manager [None req-f50a12f9-fc1e-4ed1-bb99-572aa15b5aa1 None None] Updating share status\nDec 05 23:47:07 devstack-aio-manila-master manila-share[1703950]: DEBUG manila.share.manager [None req-34657609-7cd0-441b-98a8-a562df17f538 None None] Ensure shares is being skipped because the devstack-aio-manila-master@nfs1\u0027s old backend info is the same as its new backend info. {{ensure_driver_resources /opt/stack/manila/manila/share/manager.py:408}}\n```","commit_id":"7ec7321053c73c18764782d4c40cf77a998f8d41"}],"manila/share/drivers/infinidat/infinibox.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e0c345836d9b482b27509f01a75248b23d73ffae","unresolved":true,"context_lines":[{"line_number":523,"context_line":"        if actual is not expected:"},{"line_number":524,"context_line":"            LOG.debug(\u0027Update snapdir_accessible for %s: %s -\u003e %s\u0027,"},{"line_number":525,"context_line":"                      infinidat_filesystem.name, actual, expected)"},{"line_number":526,"context_line":"            infinidat_filesystem.update_field(\u0027snapdir_accessible\u0027, expected)"},{"line_number":527,"context_line":"        return self._ensure_filesystem_export(infinidat_filesystem)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    def ensure_shares(self, context, shares):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3beed0b2_117d1277","line":526,"range":{"start_line":526,"start_character":0,"end_line":526,"end_character":77},"updated":"2022-11-30 20:38:57.000000000","message":"Don\u0027t you need to look at the value ohf nfinidat_snapdir_visible too?","commit_id":"73e82a59775237916ed719ee25b599089d23aad8"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"0b1f8fbd6e1de78f005f3a51cf9c1a57d49059bb","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        if actual is not expected:"},{"line_number":524,"context_line":"            LOG.debug(\u0027Update snapdir_accessible for %s: %s -\u003e %s\u0027,"},{"line_number":525,"context_line":"                      infinidat_filesystem.name, actual, expected)"},{"line_number":526,"context_line":"            infinidat_filesystem.update_field(\u0027snapdir_accessible\u0027, expected)"},{"line_number":527,"context_line":"        return self._ensure_filesystem_export(infinidat_filesystem)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    def ensure_shares(self, context, shares):"}],"source_content_type":"text/x-python","patch_set":2,"id":"b3765ebd_5885d283","line":526,"range":{"start_line":526,"start_character":0,"end_line":526,"end_character":77},"in_reply_to":"3beed0b2_117d1277","updated":"2022-12-02 11:34:56.000000000","message":"Hello Goutham,\n\nThank you very much for the review!\n\nYes of course! But please note - for some historical reason, the `snapdir_accessible` is a property for the Infinidat filesystem.\nAnd `snapdir_visible` is a property for the Infinidat share.\nSo we checks the `snapdir_accessible` value in the `ensure_share` function,\nand checks the `snapdir_visible` value in the `_ensure_filesystem_export` function: \n```\n+        expected \u003d self.configuration.infinidat_snapdir_visible\n+        if actual is not expected:\n+            LOG.debug(\u0027Update snapdir_visible for %s: %s -\u003e %s\u0027,\n+                      infinidat_filesystem.name, actual, expected)\n+            infinidat_export.update_snapdir_visible(expected)\n+        return self._make_export_locations(infinidat_export)\n```\n\nThank you!","commit_id":"73e82a59775237916ed719ee25b599089d23aad8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e0c345836d9b482b27509f01a75248b23d73ffae","unresolved":true,"context_lines":[{"line_number":526,"context_line":"            infinidat_filesystem.update_field(\u0027snapdir_accessible\u0027, expected)"},{"line_number":527,"context_line":"        return self._ensure_filesystem_export(infinidat_filesystem)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    def ensure_shares(self, context, shares):"},{"line_number":530,"context_line":"        \"\"\"Invoked to ensure that shares are exported.\"\"\""},{"line_number":531,"context_line":"        updates \u003d {}"},{"line_number":532,"context_line":"        for share in shares:"},{"line_number":533,"context_line":"            updates[share[\u0027id\u0027]] \u003d {"},{"line_number":534,"context_line":"                \u0027export_locations\u0027: self.ensure_share(context, share)}"},{"line_number":535,"context_line":"        return updates"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    def update_access(self, context, share, access_rules, add_rules,"},{"line_number":538,"context_line":"                      delete_rules, share_server\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"31cd473d_d5990160","line":535,"range":{"start_line":529,"start_character":0,"end_line":535,"end_character":22},"updated":"2022-11-30 20:38:57.000000000","message":"Thanks, this looks good. \n\nHowever, this method won\u0027t be automatically invoked; the share manager service uses a driver provided hash to compare and trigger this \"ensure_shares\" interface. \n\nYou\u0027ll need to implement that interface. Here\u0027s an example: \n\n\n    def get_backend_info(self, context):\n        snapdir_accessible \u003d self.configuration.infinidat_snapdir_accessible\n        snapdir_visible \u003d self.configuration.infinidat_snapdir_visible\n        return {\n            \u0027snapdir_accessible\u0027: snapdir_accessible,\n            \u0027snapdir_visible\u0027: snapdir_visible,\n        }","commit_id":"73e82a59775237916ed719ee25b599089d23aad8"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"0b1f8fbd6e1de78f005f3a51cf9c1a57d49059bb","unresolved":false,"context_lines":[{"line_number":526,"context_line":"            infinidat_filesystem.update_field(\u0027snapdir_accessible\u0027, expected)"},{"line_number":527,"context_line":"        return self._ensure_filesystem_export(infinidat_filesystem)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    def ensure_shares(self, context, shares):"},{"line_number":530,"context_line":"        \"\"\"Invoked to ensure that shares are exported.\"\"\""},{"line_number":531,"context_line":"        updates \u003d {}"},{"line_number":532,"context_line":"        for share in shares:"},{"line_number":533,"context_line":"            updates[share[\u0027id\u0027]] \u003d {"},{"line_number":534,"context_line":"                \u0027export_locations\u0027: self.ensure_share(context, share)}"},{"line_number":535,"context_line":"        return updates"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    def update_access(self, context, share, access_rules, add_rules,"},{"line_number":538,"context_line":"                      delete_rules, share_server\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"092e6bcd_01bab12a","line":535,"range":{"start_line":529,"start_character":0,"end_line":535,"end_character":22},"in_reply_to":"31cd473d_d5990160","updated":"2022-12-02 11:34:56.000000000","message":"Hello Goutham,\n\nThank you very much for the review and detailed explanations!\nI\u0027ve added this method in patch set #3. Please review.\n\nThank you!","commit_id":"73e82a59775237916ed719ee25b599089d23aad8"}],"releasenotes/notes/bug-1992443-infinidat-host-assisted-migration-4344c4d076b66796.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cf0a437e988dfa7497cf9577bc6857beaa223071","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    Fixed an issue in Infinidat driver to support host assisted migration."},{"line_number":7,"context_line":"    The `snapdir_accessible` filesystem property must be disabled to hide"},{"line_number":8,"context_line":"    `.snapshot` directory within the root of the filesystem and make"},{"line_number":9,"context_line":"    filesystem snapshots inaccessible from the client side."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bc3e6725_c7ef45ce","line":9,"range":{"start_line":9,"start_character":57,"end_line":9,"end_character":59},"updated":"2022-10-11 18:53:59.000000000","message":"I would note here that the driver version has been bumped to 1.2. This helps anyone that may be using that information in their share type extra specs...","commit_id":"05228fea92ed6045172c31598285c4990f5feb60"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"8a20603459f22e7db91d55aceac0f0325aacd139","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    Fixed an issue in Infinidat driver to support host assisted migration."},{"line_number":7,"context_line":"    The `snapdir_accessible` filesystem property must be disabled to hide"},{"line_number":8,"context_line":"    `.snapshot` directory within the root of the filesystem and make"},{"line_number":9,"context_line":"    filesystem snapshots inaccessible from the client side."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"0619a369_ad8c3e03","line":9,"range":{"start_line":9,"start_character":57,"end_line":9,"end_character":59},"in_reply_to":"bc3e6725_c7ef45ce","updated":"2022-10-20 14:14:28.000000000","message":"Hello Goutham,\n\nThank you very much for the review!\nFixed in patch set #2.\n\nThank you!","commit_id":"05228fea92ed6045172c31598285c4990f5feb60"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cf0a437e988dfa7497cf9577bc6857beaa223071","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7bc4d54a_ce884501","line":10,"updated":"2022-10-11 18:53:59.000000000","message":"This fix wouldn\u0027t help previously created snapshots, and clones of snapshots... is there a suggestion for a workaround? \n\nWe do have an \"ensure_share\" and \"ensure_shares\" mechanism where, during driver startup, the driver could reconcile some things on shares... that\u0027s one option to make changes to existing resources automatically.","commit_id":"05228fea92ed6045172c31598285c4990f5feb60"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"8a20603459f22e7db91d55aceac0f0325aacd139","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"84d148dd_9e876d37","line":10,"in_reply_to":"76af09a8_e06937ea","updated":"2022-10-20 14:14:28.000000000","message":"Hello Goutham,\n\nThank you very much for the review and provided information!\n\nYes, we can use the \"migration_ignore_files\" configuration option,\nbut we would like to support host assistant migration \"out of the box\".\n\nAnd the .snapshot directory has some other side effects, so I think the best option is to make that directory accessible but hidden by default, but provide the option to change that behaviour (with infinidat_snapdir_accessible and infinidat_snapdir_visible options).\n\nFixed in patch set #2: I\u0027ve added code to the ensure_share/ensure_shares to fix all previously created shares. \n\nThank you!","commit_id":"05228fea92ed6045172c31598285c4990f5feb60"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74a5ed8ad98dfcafc6abded5b78d8de9eae631c7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"76af09a8_e06937ea","line":10,"in_reply_to":"7bc4d54a_ce884501","updated":"2022-10-11 18:55:54.000000000","message":"For workaround, that we do have a \"migration_ignore_files\" configuration option that operators can set to ignore the snapshot directory too, i guess?","commit_id":"05228fea92ed6045172c31598285c4990f5feb60"}]}
