)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"52b30a87e01196ce4040bfe37ea15859d113eee8","unresolved":true,"context_lines":[{"line_number":12,"context_line":"in the previous approach."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"So in this change, we enhance the operation by:"},{"line_number":15,"context_line":"- Added the `is_ip_reusage_supported_on_server_migration`"},{"line_number":16,"context_line":"interface, so we can ask drivers if they are capable of reusing"},{"line_number":17,"context_line":"network allocations."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3790a93e_cc359a65","line":15,"range":{"start_line":15,"start_character":13,"end_line":15,"end_character":56},"updated":"2021-08-27 05:42:29.000000000","message":"\\notes from the collab review session... \n\nThis isn\u0027t really necessary; if a nondisruptive share server migration is sought, there\u0027s no way that can be fulfilled without retaining the network allocations. So, if a driver accepts a nondisruptive share server migration requests, we can always assume ip reuse is supported.","commit_id":"bf443941334c1d5be8050bff9773666ca77af2e3"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"95e62612d006f4219268b80309fb7aa48d8cbd1c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"in the previous approach."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"So in this change, we enhance the operation by:"},{"line_number":15,"context_line":"- Added the `is_ip_reusage_supported_on_server_migration`"},{"line_number":16,"context_line":"interface, so we can ask drivers if they are capable of reusing"},{"line_number":17,"context_line":"network allocations."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"d8e62b02_09e3de05","line":15,"range":{"start_line":15,"start_character":13,"end_line":15,"end_character":56},"in_reply_to":"3790a93e_cc359a65","updated":"2021-09-01 00:48:17.000000000","message":"Done","commit_id":"bf443941334c1d5be8050bff9773666ca77af2e3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"52b30a87e01196ce4040bfe37ea15859d113eee8","unresolved":true,"context_lines":[{"line_number":24,"context_line":"driver is capable of reusing the source share server allocation."},{"line_number":25,"context_line":"Manila will switch the allocations in the migration complete phase."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"- Added a new parameter to the API called `cleanup_source_server`,"},{"line_number":28,"context_line":"which will be used by manila to check if the source share server"},{"line_number":29,"context_line":"must be deleted right after the migration is completed."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Co-Authored-By: Fabio Oliveira \u003cfabioaurelio1269@gmail.com\u003e"},{"line_number":32,"context_line":"Change-Id: I48bafd92fe7a4d4ae0bafd5bf1961dace56b6005"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5524c7ba_9485645d","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":55},"updated":"2021-08-27 05:42:29.000000000","message":"\\notes from the collab review session... \n\nAgree with ganso that this option is unnecessary; however, you could enhance the current share server migration workflow to simplify it:\n\nWhen a server has been successfully migrated, there should be no reason to leave it behind. The current logic in the code sets the server to Inactive and the share server is cleaned up in one of three waus:\n\n1) If CONF.delete_share_server_with_last_share is True, the share manager deletes the server\n2) If CONF.automatic_share_server_cleanup (and CONF.unused_share_server_cleanup_interval) are set, the share manager reaps inactive share servers when time comes\n3) The administrator lists and deletes the inactive share server. \n\nWe can rethink this - it makes sense to have unused share servers lying around for a bit to optimize share creation time with reuse - however, this sort of reuse doesn\u0027t make sense for share servers that have been migrated. Administrators migrate for a specific reason and they should never expect any cruft to be left behind once a migration has been completed. So, unlike any other case, we should actively delete/cleanup the vestigial source share server immediately after the share server migration completes - no need to check for any configuration option or wait for a reaping interval/manual intervention.","commit_id":"bf443941334c1d5be8050bff9773666ca77af2e3"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"95e62612d006f4219268b80309fb7aa48d8cbd1c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"driver is capable of reusing the source share server allocation."},{"line_number":25,"context_line":"Manila will switch the allocations in the migration complete phase."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"- Added a new parameter to the API called `cleanup_source_server`,"},{"line_number":28,"context_line":"which will be used by manila to check if the source share server"},{"line_number":29,"context_line":"must be deleted right after the migration is completed."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Co-Authored-By: Fabio Oliveira \u003cfabioaurelio1269@gmail.com\u003e"},{"line_number":32,"context_line":"Change-Id: I48bafd92fe7a4d4ae0bafd5bf1961dace56b6005"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"30822252_5331954a","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":55},"in_reply_to":"5524c7ba_9485645d","updated":"2021-09-01 00:48:17.000000000","message":"Done","commit_id":"bf443941334c1d5be8050bff9773666ca77af2e3"}],"manila/share/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eafca11db7cf721364b56f6e463a1b1405870e8a","unresolved":true,"context_lines":[{"line_number":2497,"context_line":"        if new_share_network:"},{"line_number":2498,"context_line":"            current_subnet \u003d self.db.share_network_subnet_get("},{"line_number":2499,"context_line":"                context, share_server[\u0027share_network_subnet_id\u0027])"},{"line_number":2500,"context_line":"            for key in [\u0027neutron_net_id\u0027, \u0027neutron_subnet_id\u0027]:"},{"line_number":2501,"context_line":"                if current_subnet[key] !\u003d compatible_subnet[key]:"},{"line_number":2502,"context_line":"                    net_changes_identified \u003d True"},{"line_number":2503,"context_line":""},{"line_number":2504,"context_line":"        # NOTE(carloss): Refreshing the list of shares since something could\u0027ve"}],"source_content_type":"text/x-python","patch_set":5,"id":"7452294e_53c71198","line":2501,"range":{"start_line":2500,"start_character":12,"end_line":2501,"end_character":65},"updated":"2021-09-02 02:02:56.000000000","message":"share network subnets won\u0027t have neutron networks when using the Standalone network plugin","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"52c94051dc84ae67e4839874bd50bcfe623a558f","unresolved":false,"context_lines":[{"line_number":2497,"context_line":"        if new_share_network:"},{"line_number":2498,"context_line":"            current_subnet \u003d self.db.share_network_subnet_get("},{"line_number":2499,"context_line":"                context, share_server[\u0027share_network_subnet_id\u0027])"},{"line_number":2500,"context_line":"            for key in [\u0027neutron_net_id\u0027, \u0027neutron_subnet_id\u0027]:"},{"line_number":2501,"context_line":"                if current_subnet[key] !\u003d compatible_subnet[key]:"},{"line_number":2502,"context_line":"                    net_changes_identified \u003d True"},{"line_number":2503,"context_line":""},{"line_number":2504,"context_line":"        # NOTE(carloss): Refreshing the list of shares since something could\u0027ve"}],"source_content_type":"text/x-python","patch_set":5,"id":"80ad6d8c_3f693f8e","line":2501,"range":{"start_line":2500,"start_character":12,"end_line":2501,"end_character":65},"in_reply_to":"4ced725a_9e4e4e39","updated":"2021-09-03 03:40:47.000000000","message":"That\u0027s a nice idea. I will create a RFE on launchpad and then we can have this implemented.","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9d215b0794637456f79e57479510e9008516a8bb","unresolved":true,"context_lines":[{"line_number":2497,"context_line":"        if new_share_network:"},{"line_number":2498,"context_line":"            current_subnet \u003d self.db.share_network_subnet_get("},{"line_number":2499,"context_line":"                context, share_server[\u0027share_network_subnet_id\u0027])"},{"line_number":2500,"context_line":"            for key in [\u0027neutron_net_id\u0027, \u0027neutron_subnet_id\u0027]:"},{"line_number":2501,"context_line":"                if current_subnet[key] !\u003d compatible_subnet[key]:"},{"line_number":2502,"context_line":"                    net_changes_identified \u003d True"},{"line_number":2503,"context_line":""},{"line_number":2504,"context_line":"        # NOTE(carloss): Refreshing the list of shares since something could\u0027ve"}],"source_content_type":"text/x-python","patch_set":5,"id":"c5d3ead5_69b38794","line":2501,"range":{"start_line":2500,"start_character":12,"end_line":2501,"end_character":65},"in_reply_to":"7452294e_53c71198","updated":"2021-09-02 18:21:46.000000000","message":"yes, they won\u0027t... but in that case, the entities would still have the neutron_net_id and the neutron_subnet_id properties, but they will be None... This code fragment wouldn\u0027t identify a change, and we kind of do not have access to the network configurations of the backend yet.\n\nIn such case, should we consider reporting a network change only if the share network subnet is being changed?\n\nAnother thing I was thinking, but not related to this layer...\nI can see one the problem on this in the share manager, though:\n- Backend A using standalone plugin with allocation pool A\n- Backend B using stantalonge plugin with allocation pool b\n- As code is right now, we do not identify any changes from neutron net and neutron subnet\n- Request to migrate a share server from backend A to backend B\n- New allocations should be requested, but as I am relying on the changes from neutron subnets and the ability of backend drivers to reuse ip allocations, I am not requesting new allocations to be added.\nI possibly will need to find a way to change it and take into consideration the way the back end is configured in order to decide whether to reallocate network or not :)","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5f7863c3f20955bf810b694a0598b88b926379d1","unresolved":true,"context_lines":[{"line_number":2497,"context_line":"        if new_share_network:"},{"line_number":2498,"context_line":"            current_subnet \u003d self.db.share_network_subnet_get("},{"line_number":2499,"context_line":"                context, share_server[\u0027share_network_subnet_id\u0027])"},{"line_number":2500,"context_line":"            for key in [\u0027neutron_net_id\u0027, \u0027neutron_subnet_id\u0027]:"},{"line_number":2501,"context_line":"                if current_subnet[key] !\u003d compatible_subnet[key]:"},{"line_number":2502,"context_line":"                    net_changes_identified \u003d True"},{"line_number":2503,"context_line":""},{"line_number":2504,"context_line":"        # NOTE(carloss): Refreshing the list of shares since something could\u0027ve"}],"source_content_type":"text/x-python","patch_set":5,"id":"4ced725a_9e4e4e39","line":2501,"range":{"start_line":2500,"start_character":12,"end_line":2501,"end_character":65},"in_reply_to":"c5d3ead5_69b38794","updated":"2021-09-02 18:37:09.000000000","message":"\u003e yes, they won\u0027t... but in that case, the entities would still have the neutron_net_id and the neutron_subnet_id properties, but they will be None... This code fragment wouldn\u0027t identify a change, and we kind of do not have access to the network configurations of the backend yet.\n\nAh, true!\n\n\u003e \n\u003e In such case, should we consider reporting a network change only if the share network subnet is being changed?\n\u003e \n\u003e Another thing I was thinking, but not related to this layer...\n\u003e I can see one the problem on this in the share manager, though:\n\u003e - Backend A using standalone plugin with allocation pool A\n\u003e - Backend B using stantalonge plugin with allocation pool b\n\u003e - As code is right now, we do not identify any changes from neutron net and neutron subnet\n\u003e - Request to migrate a share server from backend A to backend B\n\u003e - New allocations should be requested, but as I am relying on the changes from neutron subnets and the ability of backend drivers to reuse ip allocations, I am not requesting new allocations to be added.\n\u003e I possibly will need to find a way to change it and take into consideration the way the back end is configured in order to decide whether to reallocate network or not :)\n\nHmmm, yes - we\u0027d want to check for this and disallow a nondisruptive migration if requested.. however its going to be hard to identify this in the share/manager. The driver implementations on the other hand have access to each others\u0027 configuration sections - maybe we can provide some sort of common method in the base driver to compare network allocations for this purpose?","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0b0512f162bca98c27041f7956154d9dde42e18e","unresolved":true,"context_lines":[{"line_number":2597,"context_line":"            context, share_server[\u0027id\u0027], dest_host, writable, nondisruptive,"},{"line_number":2598,"context_line":"            preserve_snapshots, new_share_network_id)"},{"line_number":2599,"context_line":""},{"line_number":2600,"context_line":"        # NOTE(carloss): In case users haven\u0027t requested a nondisruptive"},{"line_number":2601,"context_line":"        # migration and a network change was identified, we must get the"},{"line_number":2602,"context_line":"        # driver\u0027s check result and  if there is need to, manipulate it."},{"line_number":2603,"context_line":"        # The result is provided by the driver and based on the back end"},{"line_number":2604,"context_line":"        # possibility to perform a nondisruptive migration or not. If"},{"line_number":2605,"context_line":"        # a network change was provided, we know that the migration will be"},{"line_number":2606,"context_line":"        # disruptive, so in order to do not confuse the user, we must present"},{"line_number":2607,"context_line":"        # the share server migration as disruptive"},{"line_number":2608,"context_line":"        if result.get(\u0027nondisruptive\u0027) and net_params_changed:"},{"line_number":2609,"context_line":"            result[\u0027nondisruptive\u0027] \u003d False"},{"line_number":2610,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"8b0b4295_9e2f4030","line":2607,"range":{"start_line":2600,"start_character":8,"end_line":2607,"end_character":50},"updated":"2021-09-03 06:03:39.000000000","message":"+1 - thanks for this explanation","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7b188c039b7454b370f5f7a318118ba992d309e6","unresolved":false,"context_lines":[{"line_number":2597,"context_line":"            context, share_server[\u0027id\u0027], dest_host, writable, nondisruptive,"},{"line_number":2598,"context_line":"            preserve_snapshots, new_share_network_id)"},{"line_number":2599,"context_line":""},{"line_number":2600,"context_line":"        # NOTE(carloss): In case users haven\u0027t requested a nondisruptive"},{"line_number":2601,"context_line":"        # migration and a network change was identified, we must get the"},{"line_number":2602,"context_line":"        # driver\u0027s check result and  if there is need to, manipulate it."},{"line_number":2603,"context_line":"        # The result is provided by the driver and based on the back end"},{"line_number":2604,"context_line":"        # possibility to perform a nondisruptive migration or not. If"},{"line_number":2605,"context_line":"        # a network change was provided, we know that the migration will be"},{"line_number":2606,"context_line":"        # disruptive, so in order to do not confuse the user, we must present"},{"line_number":2607,"context_line":"        # the share server migration as disruptive"},{"line_number":2608,"context_line":"        if result.get(\u0027nondisruptive\u0027) and net_params_changed:"},{"line_number":2609,"context_line":"            result[\u0027nondisruptive\u0027] \u003d False"},{"line_number":2610,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9e67e1a7_348cb753","line":2607,"range":{"start_line":2600,"start_character":8,"end_line":2607,"end_character":50},"in_reply_to":"8b0b4295_9e2f4030","updated":"2021-09-03 15:44:11.000000000","message":"my pleasure :)","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"}],"manila/share/driver.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"95e62612d006f4219268b80309fb7aa48d8cbd1c","unresolved":true,"context_lines":[{"line_number":3339,"context_line":"        \"\"\""},{"line_number":3340,"context_line":"        raise NotImplementedError()"},{"line_number":3341,"context_line":""},{"line_number":3342,"context_line":"    def server_migration_mechanism_can_reuse_share_server("},{"line_number":3343,"context_line":"            self, source_host, dest_host):"},{"line_number":3344,"context_line":"        \"\"\"Check if the share server migration mechanism can reuse the server."},{"line_number":3345,"context_line":""},{"line_number":3346,"context_line":"        If the driver does not need a new share server to be created, this"},{"line_number":3347,"context_line":"        function must return False, then manila won\u0027t request a new share"},{"line_number":3348,"context_line":"        server to be created in the share back end."},{"line_number":3349,"context_line":""},{"line_number":3350,"context_line":"        :param source_host: The host from the share server to be migrated."},{"line_number":3351,"context_line":"        :param dest_host: The host where the share server will be migrated to."},{"line_number":3352,"context_line":"        \"\"\""},{"line_number":3353,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"d4d0afa3_a9bbc1f0","line":3353,"range":{"start_line":3342,"start_character":0,"end_line":3353,"end_character":20},"updated":"2021-09-01 00:48:17.000000000","message":"To be removed","commit_id":"7a547b03ba86e367539ac80648b1879796057ff1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eafca11db7cf721364b56f6e463a1b1405870e8a","unresolved":true,"context_lines":[{"line_number":3095,"context_line":"                    \u0027nondisruptive\u0027: True,"},{"line_number":3096,"context_line":"                    \u0027preserve_snapshots\u0027: True,"},{"line_number":3097,"context_line":"                    \u0027migration_cancel\u0027: True,"},{"line_number":3098,"context_line":"                    \u0027migration_get_progress\u0027: False,"},{"line_number":3099,"context_line":"                    \u0027ip_reusage_support\u0027: False,"},{"line_number":3100,"context_line":"                    \u0027share_server_reusage_support\u0027: False,"},{"line_number":3101,"context_line":"                }"},{"line_number":3102,"context_line":""},{"line_number":3103,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"c5b7f898_990b1efd","line":3100,"range":{"start_line":3098,"start_character":52,"end_line":3100,"end_character":58},"updated":"2021-09-02 02:02:56.000000000","message":"If \"nondisruptive\" these two must be assumed?","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5f7863c3f20955bf810b694a0598b88b926379d1","unresolved":true,"context_lines":[{"line_number":3095,"context_line":"                    \u0027nondisruptive\u0027: True,"},{"line_number":3096,"context_line":"                    \u0027preserve_snapshots\u0027: True,"},{"line_number":3097,"context_line":"                    \u0027migration_cancel\u0027: True,"},{"line_number":3098,"context_line":"                    \u0027migration_get_progress\u0027: False,"},{"line_number":3099,"context_line":"                    \u0027ip_reusage_support\u0027: False,"},{"line_number":3100,"context_line":"                    \u0027share_server_reusage_support\u0027: False,"},{"line_number":3101,"context_line":"                }"},{"line_number":3102,"context_line":""},{"line_number":3103,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"e3e0ca00_4fb9cb88","line":3100,"range":{"start_line":3098,"start_character":52,"end_line":3100,"end_character":58},"in_reply_to":"9d9ce6e8_f8ae2be0","updated":"2021-09-02 18:37:09.000000000","message":"Yes - but that could be an internal detail of the share drivers... I mean, in this layer, we really don\u0027t care what physical/virtual entity represents the share server on the backend - we want to move it nondisruptively to a different host - the driver implementation must make that happen, whatever it needs to do.","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9d215b0794637456f79e57479510e9008516a8bb","unresolved":true,"context_lines":[{"line_number":3095,"context_line":"                    \u0027nondisruptive\u0027: True,"},{"line_number":3096,"context_line":"                    \u0027preserve_snapshots\u0027: True,"},{"line_number":3097,"context_line":"                    \u0027migration_cancel\u0027: True,"},{"line_number":3098,"context_line":"                    \u0027migration_get_progress\u0027: False,"},{"line_number":3099,"context_line":"                    \u0027ip_reusage_support\u0027: False,"},{"line_number":3100,"context_line":"                    \u0027share_server_reusage_support\u0027: False,"},{"line_number":3101,"context_line":"                }"},{"line_number":3102,"context_line":""},{"line_number":3103,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9d9ce6e8_f8ae2be0","line":3100,"range":{"start_line":3098,"start_character":52,"end_line":3100,"end_character":58},"in_reply_to":"c5b7f898_990b1efd","updated":"2021-09-02 18:21:46.000000000","message":"I\u0027d say totally yes to the ip_reusage_support, but I am unsure about the share_server_reusage_support.\nIf the driver won\u0027t be able to reuse ips, it will always need to have new allocations being requested to the new share server, and with new allocations we have new IP addresses, leading to disruptive migration.\nBut I am unsure to affirm that if a driver doesn\u0027t support reusing the share server, the migration is disruptive...\nBut it is also weird to think that two different share servers would be able to co-exist with the same ip addresses, what makes me able to understand and possibly assume that we could assume both values to be true when nondisruptive.","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"52c94051dc84ae67e4839874bd50bcfe623a558f","unresolved":false,"context_lines":[{"line_number":3095,"context_line":"                    \u0027nondisruptive\u0027: True,"},{"line_number":3096,"context_line":"                    \u0027preserve_snapshots\u0027: True,"},{"line_number":3097,"context_line":"                    \u0027migration_cancel\u0027: True,"},{"line_number":3098,"context_line":"                    \u0027migration_get_progress\u0027: False,"},{"line_number":3099,"context_line":"                    \u0027ip_reusage_support\u0027: False,"},{"line_number":3100,"context_line":"                    \u0027share_server_reusage_support\u0027: False,"},{"line_number":3101,"context_line":"                }"},{"line_number":3102,"context_line":""},{"line_number":3103,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"80438496_63343b10","line":3100,"range":{"start_line":3098,"start_character":52,"end_line":3100,"end_character":58},"in_reply_to":"e3e0ca00_4fb9cb88","updated":"2021-09-03 03:40:47.000000000","message":"When nondisruptive, we will take for granted that the driver supports ip reusage and share server reusage.","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"}],"manila/share/drivers/container/driver.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0b0512f162bca98c27041f7956154d9dde42e18e","unresolved":true,"context_lines":[{"line_number":563,"context_line":"        }"},{"line_number":564,"context_line":"        LOG.info(msg, msg_args)"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        self._teardown_server(server_details\u003dsource_share_server)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"        return {"},{"line_number":569,"context_line":"            \u0027share_updates\u0027: shares_updates,"}],"source_content_type":"text/x-python","patch_set":6,"id":"403095b3_0e22e73f","line":566,"range":{"start_line":566,"start_character":0,"end_line":566,"end_character":65},"updated":"2021-09-03 06:03:39.000000000","message":"perhaps try...except and LOG the result rather than raising an exception if this call fails..","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7b188c039b7454b370f5f7a318118ba992d309e6","unresolved":false,"context_lines":[{"line_number":563,"context_line":"        }"},{"line_number":564,"context_line":"        LOG.info(msg, msg_args)"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        self._teardown_server(server_details\u003dsource_share_server)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"        return {"},{"line_number":569,"context_line":"            \u0027share_updates\u0027: shares_updates,"}],"source_content_type":"text/x-python","patch_set":6,"id":"efdcf140_601f670e","line":566,"range":{"start_line":566,"start_character":0,"end_line":566,"end_character":65},"in_reply_to":"403095b3_0e22e73f","updated":"2021-09-03 15:44:11.000000000","message":"Done","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"}],"manila/share/drivers/netapp/dataontap/cluster_mode/lib_multi_svm.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0b0512f162bca98c27041f7956154d9dde42e18e","unresolved":true,"context_lines":[{"line_number":1281,"context_line":"            self._delete_share(instance, src_vserver, src_client,"},{"line_number":1282,"context_line":"                               remove_export\u003dTrue)"},{"line_number":1283,"context_line":""},{"line_number":1284,"context_line":"        src_client._delete_vserver(src_vserver)"},{"line_number":1285,"context_line":""},{"line_number":1286,"context_line":"        # NOTE(dviroel): source share server deletion must be triggered by"},{"line_number":1287,"context_line":"        # the manager after finishing the migration"}],"source_content_type":"text/x-python","patch_set":6,"id":"81c52ce4_63146f54","line":1284,"range":{"start_line":1284,"start_character":0,"end_line":1284,"end_character":47},"updated":"2021-09-03 06:03:39.000000000","message":"perhaps try...except and LOG the result rather than raising an exception if this call fails..","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7b188c039b7454b370f5f7a318118ba992d309e6","unresolved":false,"context_lines":[{"line_number":1281,"context_line":"            self._delete_share(instance, src_vserver, src_client,"},{"line_number":1282,"context_line":"                               remove_export\u003dTrue)"},{"line_number":1283,"context_line":""},{"line_number":1284,"context_line":"        src_client._delete_vserver(src_vserver)"},{"line_number":1285,"context_line":""},{"line_number":1286,"context_line":"        # NOTE(dviroel): source share server deletion must be triggered by"},{"line_number":1287,"context_line":"        # the manager after finishing the migration"}],"source_content_type":"text/x-python","patch_set":6,"id":"dad4546f_463ea45b","line":1284,"range":{"start_line":1284,"start_character":0,"end_line":1284,"end_character":47},"in_reply_to":"81c52ce4_63146f54","updated":"2021-09-03 15:44:11.000000000","message":"I was thinking *again about this... This isn\u0027t as simple as it looks, because the source share server would be in a remote backend and this instance (client, and so on) is related to the destination backend, so we\u0027d need to change a lot of things in the teardown of the server to make it perform the deletion in the source backend instead. The complexity would increase a lot, but if we just ensure that the share server is in a deletable state, we can do it in a more \"harlmess\" way and avoid lots of changes to drivers in this change\nIt is looking like a cleaner approach to me to:\n- Do all necessary things to delete the share server\n- Return to the share manager\n- Have the share manager performing a remote call to the source backend to have the share server deleted.\nwdyt?","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"}],"manila/share/manager.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"52b30a87e01196ce4040bfe37ea15859d113eee8","unresolved":true,"context_lines":[{"line_number":3991,"context_line":""},{"line_number":3992,"context_line":"        # Whether the share server migration mechanism is capable of reusing"},{"line_number":3993,"context_line":"        # the same network allocations"},{"line_number":3994,"context_line":"        driver_can_reuse_source_server_allocations_in_migration \u003d ("},{"line_number":3995,"context_line":"            self.driver.is_ip_reusage_supported_on_server_migration("},{"line_number":3996,"context_line":"                share_server[\u0027host\u0027], source_share_server[\u0027host\u0027]"},{"line_number":3997,"context_line":"            ))"},{"line_number":3998,"context_line":"        share_network_subnet_id \u003d share_server[\u0027share_network_subnet\u0027][\u0027id\u0027]"},{"line_number":3999,"context_line":""},{"line_number":4000,"context_line":"        source_subnet_is_equal_to_dest \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"23f53681_0373d815","line":3997,"range":{"start_line":3994,"start_character":8,"end_line":3997,"end_character":14},"updated":"2021-08-27 05:42:29.000000000","message":"assume  True if a driver supports nondisruptive migration","commit_id":"bf443941334c1d5be8050bff9773666ca77af2e3"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"95e62612d006f4219268b80309fb7aa48d8cbd1c","unresolved":false,"context_lines":[{"line_number":3991,"context_line":""},{"line_number":3992,"context_line":"        # Whether the share server migration mechanism is capable of reusing"},{"line_number":3993,"context_line":"        # the same network allocations"},{"line_number":3994,"context_line":"        driver_can_reuse_source_server_allocations_in_migration \u003d ("},{"line_number":3995,"context_line":"            self.driver.is_ip_reusage_supported_on_server_migration("},{"line_number":3996,"context_line":"                share_server[\u0027host\u0027], source_share_server[\u0027host\u0027]"},{"line_number":3997,"context_line":"            ))"},{"line_number":3998,"context_line":"        share_network_subnet_id \u003d share_server[\u0027share_network_subnet\u0027][\u0027id\u0027]"},{"line_number":3999,"context_line":""},{"line_number":4000,"context_line":"        source_subnet_is_equal_to_dest \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"aaf23855_afae17ba","line":3997,"range":{"start_line":3994,"start_character":8,"end_line":3997,"end_character":14},"in_reply_to":"23f53681_0373d815","updated":"2021-09-01 00:48:17.000000000","message":"Done","commit_id":"bf443941334c1d5be8050bff9773666ca77af2e3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"52b30a87e01196ce4040bfe37ea15859d113eee8","unresolved":true,"context_lines":[{"line_number":4003,"context_line":""},{"line_number":4004,"context_line":"        # NOTE(carloss): Need to check if it is possible to reuse the network"},{"line_number":4005,"context_line":"        # allocation. The driver being able to reuse the allocation in a"},{"line_number":4006,"context_line":"        # migration scenario does not mean that it will in fact be reused. If"},{"line_number":4007,"context_line":"        # a new share network was provided, there is no way to reuse the"},{"line_number":4008,"context_line":"        # allocation."},{"line_number":4009,"context_line":"        can_reuse_network_allocations \u003d ("},{"line_number":4010,"context_line":"            driver_can_reuse_source_server_allocations_in_migration"},{"line_number":4011,"context_line":"            and source_subnet_is_equal_to_dest)"}],"source_content_type":"text/x-python","patch_set":2,"id":"f67851c4_afe00281","line":4008,"range":{"start_line":4006,"start_character":75,"end_line":4008,"end_character":21},"updated":"2021-08-27 05:42:29.000000000","message":"Agreed - we should enhance the API to make sure \"nondisruptive\u003dTrue\" and \"new_share_network_id\" aren\u0027t set together - that way, we invalidate this case..","commit_id":"bf443941334c1d5be8050bff9773666ca77af2e3"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"95e62612d006f4219268b80309fb7aa48d8cbd1c","unresolved":false,"context_lines":[{"line_number":4003,"context_line":""},{"line_number":4004,"context_line":"        # NOTE(carloss): Need to check if it is possible to reuse the network"},{"line_number":4005,"context_line":"        # allocation. The driver being able to reuse the allocation in a"},{"line_number":4006,"context_line":"        # migration scenario does not mean that it will in fact be reused. If"},{"line_number":4007,"context_line":"        # a new share network was provided, there is no way to reuse the"},{"line_number":4008,"context_line":"        # allocation."},{"line_number":4009,"context_line":"        can_reuse_network_allocations \u003d ("},{"line_number":4010,"context_line":"            driver_can_reuse_source_server_allocations_in_migration"},{"line_number":4011,"context_line":"            and source_subnet_is_equal_to_dest)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ce1aecb_93b182df","line":4008,"range":{"start_line":4006,"start_character":75,"end_line":4008,"end_character":21},"in_reply_to":"f67851c4_afe00281","updated":"2021-09-01 00:48:17.000000000","message":"Done","commit_id":"bf443941334c1d5be8050bff9773666ca77af2e3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eafca11db7cf721364b56f6e463a1b1405870e8a","unresolved":true,"context_lines":[{"line_number":4032,"context_line":"                return True"},{"line_number":4033,"context_line":"        return False"},{"line_number":4034,"context_line":""},{"line_number":4035,"context_line":"    def _setup_server(self, context, share_server, metadata):"},{"line_number":4036,"context_line":"        try:"},{"line_number":4037,"context_line":"            share_network_subnet \u003d share_server[\u0027share_network_subnet\u0027]"},{"line_number":4038,"context_line":"            share_network_subnet_id \u003d share_network_subnet[\u0027id\u0027]"},{"line_number":4039,"context_line":"            share_network_id \u003d share_network_subnet[\u0027share_network_id\u0027]"},{"line_number":4040,"context_line":"            need_new_network_allocation \u003d True"},{"line_number":4041,"context_line":"            share_network \u003d self.db.share_network_get("},{"line_number":4042,"context_line":"                context, share_network_id)"},{"line_number":4043,"context_line":"            is_migrating \u003d metadata.get(\u0027migration_destination\u0027)"},{"line_number":4044,"context_line":"            share_server_to_get_network_info \u003d share_server"},{"line_number":4045,"context_line":"            if is_migrating:"},{"line_number":4046,"context_line":"                source_share_server \u003d metadata.get(\u0027source_share_server\u0027)"},{"line_number":4047,"context_line":"                identified_network_change \u003d ("},{"line_number":4048,"context_line":"                    self._network_parameters_changed_between_share_servers("},{"line_number":4049,"context_line":"                        source_share_server, share_server))"},{"line_number":4050,"context_line":"                need_new_network_allocation \u003d ("},{"line_number":4051,"context_line":"                    metadata.get(\u0027reuse_ip_allocation\u0027) is False"},{"line_number":4052,"context_line":"                    or identified_network_change)"},{"line_number":4053,"context_line":""},{"line_number":4054,"context_line":"                if not need_new_network_allocation:"},{"line_number":4055,"context_line":"                    share_server_to_get_network_info \u003d source_share_server"},{"line_number":4056,"context_line":""},{"line_number":4057,"context_line":"            # NOTE(carloss): In case the share driver supports reusing the"},{"line_number":4058,"context_line":"            # network allocations in a migration scenario, we will keep these"},{"line_number":4059,"context_line":"            # allocations only related to the source share server, and when the"},{"line_number":4060,"context_line":"            # migration-complete command is triggered, we switch the"},{"line_number":4061,"context_line":"            # allocations belonging to the source share server and make them"},{"line_number":4062,"context_line":"            # related to the destination share server."},{"line_number":4063,"context_line":"            if need_new_network_allocation:"},{"line_number":4064,"context_line":"                self.driver.allocate_network("},{"line_number":4065,"context_line":"                    context, share_server, share_network, share_network_subnet)"},{"line_number":4066,"context_line":"                self.driver.allocate_admin_network(context, share_server)"},{"line_number":4067,"context_line":""},{"line_number":4068,"context_line":"            # Get share_network_subnet in case it was updated."},{"line_number":4069,"context_line":"            share_network_subnet \u003d self.db.share_network_subnet_get("},{"line_number":4070,"context_line":"                context, share_network_subnet_id)"},{"line_number":4071,"context_line":"            network_info \u003d self._form_server_setup_info("},{"line_number":4072,"context_line":"                context, share_server_to_get_network_info, share_network,"},{"line_number":4073,"context_line":"                share_network_subnet)"},{"line_number":4074,"context_line":"            self._validate_segmentation_id(network_info)"},{"line_number":4075,"context_line":""},{"line_number":4076,"context_line":"            # NOTE(vponomaryov): Save security services data to share server"},{"line_number":4077,"context_line":"            # details table to remove dependency from share network after"},{"line_number":4078,"context_line":"            # creation operation. It will allow us to delete share server and"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfbed8cf_aa843154","line":4075,"range":{"start_line":4035,"start_character":4,"end_line":4075,"end_character":0},"updated":"2021-09-02 02:02:56.000000000","message":"Changes here are unnecessary now, we\u0027ll never get here from \"_provide_share_server_for_migration\" if \"nondisruptive\" if we set \"create_on_backend\u003dFalse\" when calling that method","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"52c94051dc84ae67e4839874bd50bcfe623a558f","unresolved":false,"context_lines":[{"line_number":4032,"context_line":"                return True"},{"line_number":4033,"context_line":"        return False"},{"line_number":4034,"context_line":""},{"line_number":4035,"context_line":"    def _setup_server(self, context, share_server, metadata):"},{"line_number":4036,"context_line":"        try:"},{"line_number":4037,"context_line":"            share_network_subnet \u003d share_server[\u0027share_network_subnet\u0027]"},{"line_number":4038,"context_line":"            share_network_subnet_id \u003d share_network_subnet[\u0027id\u0027]"},{"line_number":4039,"context_line":"            share_network_id \u003d share_network_subnet[\u0027share_network_id\u0027]"},{"line_number":4040,"context_line":"            need_new_network_allocation \u003d True"},{"line_number":4041,"context_line":"            share_network \u003d self.db.share_network_get("},{"line_number":4042,"context_line":"                context, share_network_id)"},{"line_number":4043,"context_line":"            is_migrating \u003d metadata.get(\u0027migration_destination\u0027)"},{"line_number":4044,"context_line":"            share_server_to_get_network_info \u003d share_server"},{"line_number":4045,"context_line":"            if is_migrating:"},{"line_number":4046,"context_line":"                source_share_server \u003d metadata.get(\u0027source_share_server\u0027)"},{"line_number":4047,"context_line":"                identified_network_change \u003d ("},{"line_number":4048,"context_line":"                    self._network_parameters_changed_between_share_servers("},{"line_number":4049,"context_line":"                        source_share_server, share_server))"},{"line_number":4050,"context_line":"                need_new_network_allocation \u003d ("},{"line_number":4051,"context_line":"                    metadata.get(\u0027reuse_ip_allocation\u0027) is False"},{"line_number":4052,"context_line":"                    or identified_network_change)"},{"line_number":4053,"context_line":""},{"line_number":4054,"context_line":"                if not need_new_network_allocation:"},{"line_number":4055,"context_line":"                    share_server_to_get_network_info \u003d source_share_server"},{"line_number":4056,"context_line":""},{"line_number":4057,"context_line":"            # NOTE(carloss): In case the share driver supports reusing the"},{"line_number":4058,"context_line":"            # network allocations in a migration scenario, we will keep these"},{"line_number":4059,"context_line":"            # allocations only related to the source share server, and when the"},{"line_number":4060,"context_line":"            # migration-complete command is triggered, we switch the"},{"line_number":4061,"context_line":"            # allocations belonging to the source share server and make them"},{"line_number":4062,"context_line":"            # related to the destination share server."},{"line_number":4063,"context_line":"            if need_new_network_allocation:"},{"line_number":4064,"context_line":"                self.driver.allocate_network("},{"line_number":4065,"context_line":"                    context, share_server, share_network, share_network_subnet)"},{"line_number":4066,"context_line":"                self.driver.allocate_admin_network(context, share_server)"},{"line_number":4067,"context_line":""},{"line_number":4068,"context_line":"            # Get share_network_subnet in case it was updated."},{"line_number":4069,"context_line":"            share_network_subnet \u003d self.db.share_network_subnet_get("},{"line_number":4070,"context_line":"                context, share_network_subnet_id)"},{"line_number":4071,"context_line":"            network_info \u003d self._form_server_setup_info("},{"line_number":4072,"context_line":"                context, share_server_to_get_network_info, share_network,"},{"line_number":4073,"context_line":"                share_network_subnet)"},{"line_number":4074,"context_line":"            self._validate_segmentation_id(network_info)"},{"line_number":4075,"context_line":""},{"line_number":4076,"context_line":"            # NOTE(vponomaryov): Save security services data to share server"},{"line_number":4077,"context_line":"            # details table to remove dependency from share network after"},{"line_number":4078,"context_line":"            # creation operation. It will allow us to delete share server and"}],"source_content_type":"text/x-python","patch_set":5,"id":"142e4e9b_324f9cc0","line":4075,"range":{"start_line":4035,"start_character":4,"end_line":4075,"end_character":0},"in_reply_to":"783b2e64_a4bf23d5","updated":"2021-09-03 03:40:47.000000000","message":"Done","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9d215b0794637456f79e57479510e9008516a8bb","unresolved":true,"context_lines":[{"line_number":4032,"context_line":"                return True"},{"line_number":4033,"context_line":"        return False"},{"line_number":4034,"context_line":""},{"line_number":4035,"context_line":"    def _setup_server(self, context, share_server, metadata):"},{"line_number":4036,"context_line":"        try:"},{"line_number":4037,"context_line":"            share_network_subnet \u003d share_server[\u0027share_network_subnet\u0027]"},{"line_number":4038,"context_line":"            share_network_subnet_id \u003d share_network_subnet[\u0027id\u0027]"},{"line_number":4039,"context_line":"            share_network_id \u003d share_network_subnet[\u0027share_network_id\u0027]"},{"line_number":4040,"context_line":"            need_new_network_allocation \u003d True"},{"line_number":4041,"context_line":"            share_network \u003d self.db.share_network_get("},{"line_number":4042,"context_line":"                context, share_network_id)"},{"line_number":4043,"context_line":"            is_migrating \u003d metadata.get(\u0027migration_destination\u0027)"},{"line_number":4044,"context_line":"            share_server_to_get_network_info \u003d share_server"},{"line_number":4045,"context_line":"            if is_migrating:"},{"line_number":4046,"context_line":"                source_share_server \u003d metadata.get(\u0027source_share_server\u0027)"},{"line_number":4047,"context_line":"                identified_network_change \u003d ("},{"line_number":4048,"context_line":"                    self._network_parameters_changed_between_share_servers("},{"line_number":4049,"context_line":"                        source_share_server, share_server))"},{"line_number":4050,"context_line":"                need_new_network_allocation \u003d ("},{"line_number":4051,"context_line":"                    metadata.get(\u0027reuse_ip_allocation\u0027) is False"},{"line_number":4052,"context_line":"                    or identified_network_change)"},{"line_number":4053,"context_line":""},{"line_number":4054,"context_line":"                if not need_new_network_allocation:"},{"line_number":4055,"context_line":"                    share_server_to_get_network_info \u003d source_share_server"},{"line_number":4056,"context_line":""},{"line_number":4057,"context_line":"            # NOTE(carloss): In case the share driver supports reusing the"},{"line_number":4058,"context_line":"            # network allocations in a migration scenario, we will keep these"},{"line_number":4059,"context_line":"            # allocations only related to the source share server, and when the"},{"line_number":4060,"context_line":"            # migration-complete command is triggered, we switch the"},{"line_number":4061,"context_line":"            # allocations belonging to the source share server and make them"},{"line_number":4062,"context_line":"            # related to the destination share server."},{"line_number":4063,"context_line":"            if need_new_network_allocation:"},{"line_number":4064,"context_line":"                self.driver.allocate_network("},{"line_number":4065,"context_line":"                    context, share_server, share_network, share_network_subnet)"},{"line_number":4066,"context_line":"                self.driver.allocate_admin_network(context, share_server)"},{"line_number":4067,"context_line":""},{"line_number":4068,"context_line":"            # Get share_network_subnet in case it was updated."},{"line_number":4069,"context_line":"            share_network_subnet \u003d self.db.share_network_subnet_get("},{"line_number":4070,"context_line":"                context, share_network_subnet_id)"},{"line_number":4071,"context_line":"            network_info \u003d self._form_server_setup_info("},{"line_number":4072,"context_line":"                context, share_server_to_get_network_info, share_network,"},{"line_number":4073,"context_line":"                share_network_subnet)"},{"line_number":4074,"context_line":"            self._validate_segmentation_id(network_info)"},{"line_number":4075,"context_line":""},{"line_number":4076,"context_line":"            # NOTE(vponomaryov): Save security services data to share server"},{"line_number":4077,"context_line":"            # details table to remove dependency from share network after"},{"line_number":4078,"context_line":"            # creation operation. It will allow us to delete share server and"}],"source_content_type":"text/x-python","patch_set":5,"id":"783b2e64_a4bf23d5","line":4075,"range":{"start_line":4035,"start_character":4,"end_line":4075,"end_character":0},"in_reply_to":"dfbed8cf_aa843154","updated":"2021-09-02 18:21:46.000000000","message":"I think that with the scenario I mentioned in the answer to the comments in\nhttps://review.opendev.org/c/openstack/manila/+/803623/5/manila/share/api.py#2496 may make us to keep this, in order to do some validations and create the network allocations... But I\u0027d say that the network allocations now would be the only reason to have this modifications here, and I could definitely write some more code to cover [1] in the share_server_migration_start function itself","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2c5580aa214501b13898a2ce536514cb2d74a6ce","unresolved":true,"context_lines":[{"line_number":4095,"context_line":""},{"line_number":4096,"context_line":"            identifier \u003d share_server[\u0027id\u0027]"},{"line_number":4097,"context_line":"            server_info \u003d None"},{"line_number":4098,"context_line":"            if not metadata.get(\u0027reuse_share_server_on_backend\u0027) is True:"},{"line_number":4099,"context_line":"                server_info \u003d self.driver.setup_server("},{"line_number":4100,"context_line":"                    network_info, metadata\u003dmetadata)"},{"line_number":4101,"context_line":"            elif (metadata.get(\u0027reuse_share_server_on_backend\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"abc48cea_24121f8c","line":4098,"range":{"start_line":4098,"start_character":64,"end_line":4098,"end_character":72},"updated":"2021-09-02 01:49:18.000000000","message":"do you need this?","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"52c94051dc84ae67e4839874bd50bcfe623a558f","unresolved":false,"context_lines":[{"line_number":4095,"context_line":""},{"line_number":4096,"context_line":"            identifier \u003d share_server[\u0027id\u0027]"},{"line_number":4097,"context_line":"            server_info \u003d None"},{"line_number":4098,"context_line":"            if not metadata.get(\u0027reuse_share_server_on_backend\u0027) is True:"},{"line_number":4099,"context_line":"                server_info \u003d self.driver.setup_server("},{"line_number":4100,"context_line":"                    network_info, metadata\u003dmetadata)"},{"line_number":4101,"context_line":"            elif (metadata.get(\u0027reuse_share_server_on_backend\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"b74197cd_f10d93c9","line":4098,"range":{"start_line":4098,"start_character":64,"end_line":4098,"end_character":72},"in_reply_to":"abc48cea_24121f8c","updated":"2021-09-03 03:40:47.000000000","message":"No modifications will be done in this function","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eafca11db7cf721364b56f6e463a1b1405870e8a","unresolved":true,"context_lines":[{"line_number":5089,"context_line":"                snapshot_instances, compatibility, dest_host, nondisruptive,"},{"line_number":5090,"context_line":"                writable, preserve_snapshots, resource_type\u003d\u0027share server\u0027)"},{"line_number":5091,"context_line":""},{"line_number":5092,"context_line":"            new_server_requirements \u003d {"},{"line_number":5093,"context_line":"                \u0027reuse_ip_allocation\u0027: compatibility.get("},{"line_number":5094,"context_line":"                    \u0027ip_reusage_support\u0027, False),"},{"line_number":5095,"context_line":"                \u0027reuse_share_server_on_backend\u0027: compatibility.get("},{"line_number":5096,"context_line":"                    \u0027share_server_reusage_support\u0027, False)"},{"line_number":5097,"context_line":"            }"},{"line_number":5098,"context_line":""},{"line_number":5099,"context_line":"            dest_share_server \u003d self._provide_share_server_for_migration("},{"line_number":5100,"context_line":"                context, source_share_server, new_share_network_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"b5b5e487_fd02f8e3","line":5097,"range":{"start_line":5092,"start_character":12,"end_line":5097,"end_character":13},"updated":"2021-09-02 02:02:56.000000000","message":"if nondisruptive, these things should be assumed. So, \n\n\n  create_on_backend \u003d not nondisruptive\n  dest_share_server \u003d self._provide_share_server_for_migration(\n                context, source_share_server, new_share_network_id,\n                service[\u0027availability_zone_id\u0027], dest_host,\n                create_on_backend\u003dcreate_on_backend)","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"52c94051dc84ae67e4839874bd50bcfe623a558f","unresolved":false,"context_lines":[{"line_number":5089,"context_line":"                snapshot_instances, compatibility, dest_host, nondisruptive,"},{"line_number":5090,"context_line":"                writable, preserve_snapshots, resource_type\u003d\u0027share server\u0027)"},{"line_number":5091,"context_line":""},{"line_number":5092,"context_line":"            new_server_requirements \u003d {"},{"line_number":5093,"context_line":"                \u0027reuse_ip_allocation\u0027: compatibility.get("},{"line_number":5094,"context_line":"                    \u0027ip_reusage_support\u0027, False),"},{"line_number":5095,"context_line":"                \u0027reuse_share_server_on_backend\u0027: compatibility.get("},{"line_number":5096,"context_line":"                    \u0027share_server_reusage_support\u0027, False)"},{"line_number":5097,"context_line":"            }"},{"line_number":5098,"context_line":""},{"line_number":5099,"context_line":"            dest_share_server \u003d self._provide_share_server_for_migration("},{"line_number":5100,"context_line":"                context, source_share_server, new_share_network_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"80c071a2_f47652df","line":5097,"range":{"start_line":5092,"start_character":12,"end_line":5097,"end_character":13},"in_reply_to":"b5b5e487_fd02f8e3","updated":"2021-09-03 03:40:47.000000000","message":"Done","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2c5580aa214501b13898a2ce536514cb2d74a6ce","unresolved":true,"context_lines":[{"line_number":5571,"context_line":""},{"line_number":5572,"context_line":"        source_share_server \u003d self._get_share_server_dict("},{"line_number":5573,"context_line":"            context, source_share_server)"},{"line_number":5574,"context_line":"        rpcapi \u003d share_rpcapi.ShareAPI()"},{"line_number":5575,"context_line":"        rpcapi.delete_share_server(context, source_share_server)"},{"line_number":5576,"context_line":""},{"line_number":5577,"context_line":"    @add_hooks"},{"line_number":5578,"context_line":"    @utils.require_driver_initialized"}],"source_content_type":"text/x-python","patch_set":5,"id":"8d7772c1_30e90c9b","line":5575,"range":{"start_line":5574,"start_character":0,"end_line":5575,"end_character":64},"updated":"2021-09-02 01:49:18.000000000","message":"If the driver is reusing the same share server as migration destination, couldn\u0027t this be a problem? If they have the same identifier and are placed in the same backend, this could delete the destionation share server. If the driver is reusing the share server, you won\u0027t need to call it for a delete, no? It may only work when you have two share server with the same id, in different hosts. But you wouldn\u0027t be using the same share server in this scenario.","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eafca11db7cf721364b56f6e463a1b1405870e8a","unresolved":true,"context_lines":[{"line_number":5569,"context_line":"            {\u0027task_state\u0027: constants.TASK_STATE_MIGRATION_SUCCESS,"},{"line_number":5570,"context_line":"             \u0027status\u0027: constants.STATUS_INACTIVE})"},{"line_number":5571,"context_line":""},{"line_number":5572,"context_line":"        source_share_server \u003d self._get_share_server_dict("},{"line_number":5573,"context_line":"            context, source_share_server)"},{"line_number":5574,"context_line":"        rpcapi \u003d share_rpcapi.ShareAPI()"},{"line_number":5575,"context_line":"        rpcapi.delete_share_server(context, source_share_server)"},{"line_number":5576,"context_line":""},{"line_number":5577,"context_line":"    @add_hooks"},{"line_number":5578,"context_line":"    @utils.require_driver_initialized"}],"source_content_type":"text/x-python","patch_set":5,"id":"8ed3662a_66493a06","line":5575,"range":{"start_line":5572,"start_character":8,"end_line":5575,"end_character":64},"updated":"2021-09-02 02:02:56.000000000","message":"We should let drivers know that this must be done in the \"share_server_migration_complete\" call - i.e., when we get to this stage, no further cleanup must be necessary on the source - all that should be left is deleting the share server from the database. \n\nWe\u0027re catching this two releases late, but, this is how share migration works; and it makes things a whole lot simple - don\u0027t you think?","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"52c94051dc84ae67e4839874bd50bcfe623a558f","unresolved":false,"context_lines":[{"line_number":5571,"context_line":""},{"line_number":5572,"context_line":"        source_share_server \u003d self._get_share_server_dict("},{"line_number":5573,"context_line":"            context, source_share_server)"},{"line_number":5574,"context_line":"        rpcapi \u003d share_rpcapi.ShareAPI()"},{"line_number":5575,"context_line":"        rpcapi.delete_share_server(context, source_share_server)"},{"line_number":5576,"context_line":""},{"line_number":5577,"context_line":"    @add_hooks"},{"line_number":5578,"context_line":"    @utils.require_driver_initialized"}],"source_content_type":"text/x-python","patch_set":5,"id":"63fc8042_d99117d6","line":5575,"range":{"start_line":5574,"start_character":0,"end_line":5575,"end_character":64},"in_reply_to":"3161ed02_30fd0ca1","updated":"2021-09-03 03:40:47.000000000","message":"Done.\nWe will let the backend to whatever it needs delete the share server at the end of the migration; we take for granted that everything was done and the vserver was deleted from the backend and just delete the share server and remove its allocations if there are any remaining.","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9d215b0794637456f79e57479510e9008516a8bb","unresolved":true,"context_lines":[{"line_number":5571,"context_line":""},{"line_number":5572,"context_line":"        source_share_server \u003d self._get_share_server_dict("},{"line_number":5573,"context_line":"            context, source_share_server)"},{"line_number":5574,"context_line":"        rpcapi \u003d share_rpcapi.ShareAPI()"},{"line_number":5575,"context_line":"        rpcapi.delete_share_server(context, source_share_server)"},{"line_number":5576,"context_line":""},{"line_number":5577,"context_line":"    @add_hooks"},{"line_number":5578,"context_line":"    @utils.require_driver_initialized"}],"source_content_type":"text/x-python","patch_set":5,"id":"3161ed02_30fd0ca1","line":5575,"range":{"start_line":5574,"start_character":0,"end_line":5575,"end_character":64},"in_reply_to":"8d7772c1_30e90c9b","updated":"2021-09-02 18:21:46.000000000","message":"This could happen only if just a share network change was identified. If a share network was not identified and the share servers are in the same host, manila denies the migration...\nhttps://github.com/openstack/manila/blob/d955928947a70fa1f7c50f158ba2d35a69a83762/manila/share/api.py#L2429-L2435\n\nBut still, I think in such case (migrated within the same backend), we could only request this deletion in a case like:\n- identifier from source and destination share servers are different\nor\n- source and destination hosts are different\nbut for the following scenario:\n- identifier from source and destination backends are equal\n- source and destination hosts are equal\nwe could just unmanage the share server and skip de removal of the network allocations if they were reused.\n\nWhat do you think?","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9d215b0794637456f79e57479510e9008516a8bb","unresolved":true,"context_lines":[{"line_number":5569,"context_line":"            {\u0027task_state\u0027: constants.TASK_STATE_MIGRATION_SUCCESS,"},{"line_number":5570,"context_line":"             \u0027status\u0027: constants.STATUS_INACTIVE})"},{"line_number":5571,"context_line":""},{"line_number":5572,"context_line":"        source_share_server \u003d self._get_share_server_dict("},{"line_number":5573,"context_line":"            context, source_share_server)"},{"line_number":5574,"context_line":"        rpcapi \u003d share_rpcapi.ShareAPI()"},{"line_number":5575,"context_line":"        rpcapi.delete_share_server(context, source_share_server)"},{"line_number":5576,"context_line":""},{"line_number":5577,"context_line":"    @add_hooks"},{"line_number":5578,"context_line":"    @utils.require_driver_initialized"}],"source_content_type":"text/x-python","patch_set":5,"id":"dd91a333_b33aa720","line":5575,"range":{"start_line":5572,"start_character":8,"end_line":5575,"end_character":64},"in_reply_to":"8ed3662a_66493a06","updated":"2021-09-02 18:21:46.000000000","message":"Makes total sense to me :)","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"52c94051dc84ae67e4839874bd50bcfe623a558f","unresolved":false,"context_lines":[{"line_number":5569,"context_line":"            {\u0027task_state\u0027: constants.TASK_STATE_MIGRATION_SUCCESS,"},{"line_number":5570,"context_line":"             \u0027status\u0027: constants.STATUS_INACTIVE})"},{"line_number":5571,"context_line":""},{"line_number":5572,"context_line":"        source_share_server \u003d self._get_share_server_dict("},{"line_number":5573,"context_line":"            context, source_share_server)"},{"line_number":5574,"context_line":"        rpcapi \u003d share_rpcapi.ShareAPI()"},{"line_number":5575,"context_line":"        rpcapi.delete_share_server(context, source_share_server)"},{"line_number":5576,"context_line":""},{"line_number":5577,"context_line":"    @add_hooks"},{"line_number":5578,"context_line":"    @utils.require_driver_initialized"}],"source_content_type":"text/x-python","patch_set":5,"id":"d34d84c8_ee4ec3a2","line":5575,"range":{"start_line":5572,"start_character":8,"end_line":5575,"end_character":64},"in_reply_to":"dd91a333_b33aa720","updated":"2021-09-03 03:40:47.000000000","message":"Done","commit_id":"2d92f5917223707d0ab353c84a0bc701683718d9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0b0512f162bca98c27041f7956154d9dde42e18e","unresolved":true,"context_lines":[{"line_number":4025,"context_line":"        }"},{"line_number":4026,"context_line":"        return network_info"},{"line_number":4027,"context_line":""},{"line_number":4028,"context_line":"    def _network_parameters_changed_between_share_servers("},{"line_number":4029,"context_line":"            self, src_share_server, dest_share_server):"},{"line_number":4030,"context_line":"        \"\"\"Identifies network changes during a share server migration.\"\"\""},{"line_number":4031,"context_line":"        for key in [\u0027neutron_net_id\u0027, \u0027neutron_subnet_id\u0027]:"},{"line_number":4032,"context_line":"            if (src_share_server[\u0027share_network_subnet\u0027][key] !\u003d"},{"line_number":4033,"context_line":"                    dest_share_server[\u0027share_network_subnet\u0027][key]):"},{"line_number":4034,"context_line":"                return True"},{"line_number":4035,"context_line":"        return False"},{"line_number":4036,"context_line":""},{"line_number":4037,"context_line":"    def _setup_server(self, context, share_server, metadata):"},{"line_number":4038,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"2c5ef91e_62ac8b5a","line":4035,"range":{"start_line":4028,"start_character":4,"end_line":4035,"end_character":20},"updated":"2021-09-03 06:03:39.000000000","message":"unused method","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7b188c039b7454b370f5f7a318118ba992d309e6","unresolved":false,"context_lines":[{"line_number":4025,"context_line":"        }"},{"line_number":4026,"context_line":"        return network_info"},{"line_number":4027,"context_line":""},{"line_number":4028,"context_line":"    def _network_parameters_changed_between_share_servers("},{"line_number":4029,"context_line":"            self, src_share_server, dest_share_server):"},{"line_number":4030,"context_line":"        \"\"\"Identifies network changes during a share server migration.\"\"\""},{"line_number":4031,"context_line":"        for key in [\u0027neutron_net_id\u0027, \u0027neutron_subnet_id\u0027]:"},{"line_number":4032,"context_line":"            if (src_share_server[\u0027share_network_subnet\u0027][key] !\u003d"},{"line_number":4033,"context_line":"                    dest_share_server[\u0027share_network_subnet\u0027][key]):"},{"line_number":4034,"context_line":"                return True"},{"line_number":4035,"context_line":"        return False"},{"line_number":4036,"context_line":""},{"line_number":4037,"context_line":"    def _setup_server(self, context, share_server, metadata):"},{"line_number":4038,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"f6e03522_ae0fe2d3","line":4035,"range":{"start_line":4028,"start_character":4,"end_line":4035,"end_character":20},"in_reply_to":"2c5ef91e_62ac8b5a","updated":"2021-09-03 15:44:11.000000000","message":"Ack","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0b0512f162bca98c27041f7956154d9dde42e18e","unresolved":true,"context_lines":[{"line_number":5065,"context_line":"                service[\u0027availability_zone_id\u0027], dest_host,"},{"line_number":5066,"context_line":"                create_on_backend\u003dcreate_server_on_backend)"},{"line_number":5067,"context_line":""},{"line_number":5068,"context_line":"            net_changes_identified \u003d False"},{"line_number":5069,"context_line":"            if not create_server_on_backend:"},{"line_number":5070,"context_line":"                dest_share_server \u003d self.db.share_server_get("},{"line_number":5071,"context_line":"                    context, dest_share_server[\u0027id\u0027])"},{"line_number":5072,"context_line":"                current_subnet \u003d dest_share_server[\u0027share_network_subnet\u0027]"},{"line_number":5073,"context_line":"                old_subnet \u003d source_share_server[\u0027share_network_subnet\u0027]"},{"line_number":5074,"context_line":"                for key in [\u0027neutron_net_id\u0027, \u0027neutron_subnet_id\u0027]:"},{"line_number":5075,"context_line":"                    if current_subnet.get(key) !\u003d old_subnet.get(key):"},{"line_number":5076,"context_line":"                        net_changes_identified \u003d True"},{"line_number":5077,"context_line":"                if net_changes_identified:"},{"line_number":5078,"context_line":"                    share_network_subnet \u003d self.db.share_network_subnet_get("},{"line_number":5079,"context_line":"                        context, dest_share_server[\u0027share_network_subnet_id\u0027])"},{"line_number":5080,"context_line":"                    self.driver.allocate_network("},{"line_number":5081,"context_line":"                        context, dest_share_server, new_share_network,"},{"line_number":5082,"context_line":"                        share_network_subnet)"},{"line_number":5083,"context_line":"                    self.driver.allocate_admin_network("},{"line_number":5084,"context_line":"                        context, dest_share_server)"},{"line_number":5085,"context_line":""},{"line_number":5086,"context_line":"            self.db.share_server_update("},{"line_number":5087,"context_line":"                context, dest_share_server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"0b400cbc_a3832322","line":5084,"range":{"start_line":5068,"start_character":12,"end_line":5084,"end_character":51},"updated":"2021-09-03 06:03:39.000000000","message":"Why allocate network? We do this check at the API layer ...","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7b188c039b7454b370f5f7a318118ba992d309e6","unresolved":true,"context_lines":[{"line_number":5065,"context_line":"                service[\u0027availability_zone_id\u0027], dest_host,"},{"line_number":5066,"context_line":"                create_on_backend\u003dcreate_server_on_backend)"},{"line_number":5067,"context_line":""},{"line_number":5068,"context_line":"            net_changes_identified \u003d False"},{"line_number":5069,"context_line":"            if not create_server_on_backend:"},{"line_number":5070,"context_line":"                dest_share_server \u003d self.db.share_server_get("},{"line_number":5071,"context_line":"                    context, dest_share_server[\u0027id\u0027])"},{"line_number":5072,"context_line":"                current_subnet \u003d dest_share_server[\u0027share_network_subnet\u0027]"},{"line_number":5073,"context_line":"                old_subnet \u003d source_share_server[\u0027share_network_subnet\u0027]"},{"line_number":5074,"context_line":"                for key in [\u0027neutron_net_id\u0027, \u0027neutron_subnet_id\u0027]:"},{"line_number":5075,"context_line":"                    if current_subnet.get(key) !\u003d old_subnet.get(key):"},{"line_number":5076,"context_line":"                        net_changes_identified \u003d True"},{"line_number":5077,"context_line":"                if net_changes_identified:"},{"line_number":5078,"context_line":"                    share_network_subnet \u003d self.db.share_network_subnet_get("},{"line_number":5079,"context_line":"                        context, dest_share_server[\u0027share_network_subnet_id\u0027])"},{"line_number":5080,"context_line":"                    self.driver.allocate_network("},{"line_number":5081,"context_line":"                        context, dest_share_server, new_share_network,"},{"line_number":5082,"context_line":"                        share_network_subnet)"},{"line_number":5083,"context_line":"                    self.driver.allocate_admin_network("},{"line_number":5084,"context_line":"                        context, dest_share_server)"},{"line_number":5085,"context_line":""},{"line_number":5086,"context_line":"            self.db.share_server_update("},{"line_number":5087,"context_line":"                context, dest_share_server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"2394d080_119b0757","line":5084,"range":{"start_line":5068,"start_character":12,"end_line":5084,"end_character":51},"in_reply_to":"0b400cbc_a3832322","updated":"2021-09-03 15:44:11.000000000","message":"Yes, we do check that in case a user specified a new share network and nondisruptive \u003d True at the same time.\nBut here, I am taking into consideration the driver\u0027s answer to nondisruptiveness, so the scenario I was thinking about is:\n- User requested migration with a network change and nondisruptive \u003d False\n- Migration will be supported with the parameters provided, but the driver answered that its mechanism supports nondisruptive migrations (the driver isn\u0027t taking into consideration the network changes on its final answer to nondisruptiveness... IMHO It makes more sense to give that responsability to Manila rather than rely on share drivers to decide this)\n- So I am getting the answer from the share driver and checking for network changes. If the driver reported it can handle a nondisruptive migration (it can reuse share servers and network allocations), the create_on_backend flag was set to False, but as there is a network change, we must allocate new network","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0b0512f162bca98c27041f7956154d9dde42e18e","unresolved":true,"context_lines":[{"line_number":5145,"context_line":"                if not create_server_on_backend:"},{"line_number":5146,"context_line":"                    self.db.share_server_delete("},{"line_number":5147,"context_line":"                        context, dest_share_server[\u0027id\u0027])"},{"line_number":5148,"context_line":"                    if net_changes_identified:"},{"line_number":5149,"context_line":"                        self._unmanage_share_server_allocations("},{"line_number":5150,"context_line":"                            context, dest_share_server[\u0027id\u0027])"},{"line_number":5151,"context_line":"                else:"},{"line_number":5152,"context_line":"                    self._check_delete_share_server("},{"line_number":5153,"context_line":"                        context, share_server\u003ddest_share_server)"}],"source_content_type":"text/x-python","patch_set":6,"id":"593420f4_589c8519","line":5150,"range":{"start_line":5148,"start_character":20,"end_line":5150,"end_character":61},"updated":"2021-09-03 06:03:39.000000000","message":"nit: semantically, makes sense to do this before deleting the share server from the DB..","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7b188c039b7454b370f5f7a318118ba992d309e6","unresolved":false,"context_lines":[{"line_number":5145,"context_line":"                if not create_server_on_backend:"},{"line_number":5146,"context_line":"                    self.db.share_server_delete("},{"line_number":5147,"context_line":"                        context, dest_share_server[\u0027id\u0027])"},{"line_number":5148,"context_line":"                    if net_changes_identified:"},{"line_number":5149,"context_line":"                        self._unmanage_share_server_allocations("},{"line_number":5150,"context_line":"                            context, dest_share_server[\u0027id\u0027])"},{"line_number":5151,"context_line":"                else:"},{"line_number":5152,"context_line":"                    self._check_delete_share_server("},{"line_number":5153,"context_line":"                        context, share_server\u003ddest_share_server)"}],"source_content_type":"text/x-python","patch_set":6,"id":"c0734c25_89238804","line":5150,"range":{"start_line":5148,"start_character":20,"end_line":5150,"end_character":61},"in_reply_to":"593420f4_589c8519","updated":"2021-09-03 15:44:11.000000000","message":"Totally... Nice catch! Perhaps it\u0027s not a nit... It could cause the deletion for share servers in the database to fail, considering that its identifier could be serving as a foreign key for network allocations.","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0b0512f162bca98c27041f7956154d9dde42e18e","unresolved":true,"context_lines":[{"line_number":5148,"context_line":"                    if net_changes_identified:"},{"line_number":5149,"context_line":"                        self._unmanage_share_server_allocations("},{"line_number":5150,"context_line":"                            context, dest_share_server[\u0027id\u0027])"},{"line_number":5151,"context_line":"                else:"},{"line_number":5152,"context_line":"                    self._check_delete_share_server("},{"line_number":5153,"context_line":"                        context, share_server\u003ddest_share_server)"},{"line_number":5154,"context_line":"            msg \u003d _(\"Driver-assisted migration of share server %s \""},{"line_number":5155,"context_line":"                    \"failed.\") % source_share_server[\u0027id\u0027]"},{"line_number":5156,"context_line":"            LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"34e9b4a4_0bee95b2","line":5153,"range":{"start_line":5151,"start_character":16,"end_line":5153,"end_character":64},"updated":"2021-09-03 06:03:39.000000000","message":"you didn\u0027t introduce this, but i have a question - why do we care about configuration? Why not just delete the destination?","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0c90385f75588fc0f9a8ed3ec9692e428221c4e8","unresolved":false,"context_lines":[{"line_number":5148,"context_line":"                    if net_changes_identified:"},{"line_number":5149,"context_line":"                        self._unmanage_share_server_allocations("},{"line_number":5150,"context_line":"                            context, dest_share_server[\u0027id\u0027])"},{"line_number":5151,"context_line":"                else:"},{"line_number":5152,"context_line":"                    self._check_delete_share_server("},{"line_number":5153,"context_line":"                        context, share_server\u003ddest_share_server)"},{"line_number":5154,"context_line":"            msg \u003d _(\"Driver-assisted migration of share server %s \""},{"line_number":5155,"context_line":"                    \"failed.\") % source_share_server[\u0027id\u0027]"},{"line_number":5156,"context_line":"            LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"a339baa1_0d597534","line":5153,"range":{"start_line":5151,"start_character":16,"end_line":5153,"end_character":64},"in_reply_to":"2daa0ff1_770a8af3","updated":"2021-09-03 17:57:25.000000000","message":"Wouldn\u0027t you want to avoid the call if the share server was not created on the backend?","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7b188c039b7454b370f5f7a318118ba992d309e6","unresolved":false,"context_lines":[{"line_number":5148,"context_line":"                    if net_changes_identified:"},{"line_number":5149,"context_line":"                        self._unmanage_share_server_allocations("},{"line_number":5150,"context_line":"                            context, dest_share_server[\u0027id\u0027])"},{"line_number":5151,"context_line":"                else:"},{"line_number":5152,"context_line":"                    self._check_delete_share_server("},{"line_number":5153,"context_line":"                        context, share_server\u003ddest_share_server)"},{"line_number":5154,"context_line":"            msg \u003d _(\"Driver-assisted migration of share server %s \""},{"line_number":5155,"context_line":"                    \"failed.\") % source_share_server[\u0027id\u0027]"},{"line_number":5156,"context_line":"            LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"2daa0ff1_770a8af3","line":5153,"range":{"start_line":5151,"start_character":16,"end_line":5153,"end_character":64},"in_reply_to":"34e9b4a4_0bee95b2","updated":"2021-09-03 15:44:11.000000000","message":"Yeah, IMHO we could delete it right away... But here, I think it\u0027s better to do not rely ony the migration start to delete the share server, since the share server could be created and something other than the migration start errored up. In that case, the migration wouldn\u0027t even be called. Let\u0027s call the delete_share_server method right away :)","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fe45fc27a2e62d4deb7d24dee09c82e647b6ddd4","unresolved":false,"context_lines":[{"line_number":5148,"context_line":"                    if net_changes_identified:"},{"line_number":5149,"context_line":"                        self._unmanage_share_server_allocations("},{"line_number":5150,"context_line":"                            context, dest_share_server[\u0027id\u0027])"},{"line_number":5151,"context_line":"                else:"},{"line_number":5152,"context_line":"                    self._check_delete_share_server("},{"line_number":5153,"context_line":"                        context, share_server\u003ddest_share_server)"},{"line_number":5154,"context_line":"            msg \u003d _(\"Driver-assisted migration of share server %s \""},{"line_number":5155,"context_line":"                    \"failed.\") % source_share_server[\u0027id\u0027]"},{"line_number":5156,"context_line":"            LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"86478e1f_824f62e7","line":5153,"range":{"start_line":5151,"start_character":16,"end_line":5153,"end_character":64},"in_reply_to":"a339baa1_0d597534","updated":"2021-09-03 20:42:09.000000000","message":"Perhaps I am missing something :)\nIn the newest PS is a but more clear of coments: https://review.opendev.org/c/openstack/manila/+/803623/8/manila/share/manager.py#5140\nThere, I am calling the delete share server right away under two conditions:\n1. Line 5129 - Tehre is a reference to the share server, meaning that there is an object for it in the db\n2. Else statement to line 5134 - The share server wasn\u0027t created in the backend\nWas this the case? Or am I not understanding it?\nSorry for the confusion :|","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0b0512f162bca98c27041f7956154d9dde42e18e","unresolved":true,"context_lines":[{"line_number":5417,"context_line":"                snapshot_instance_ids\u003dsnapshot_instance_ids)"},{"line_number":5418,"context_line":"            self.db.share_server_update("},{"line_number":5419,"context_line":"                context, src_share_server_id, updates_on_error)"},{"line_number":5420,"context_line":"            try:"},{"line_number":5421,"context_line":"                self.db.share_server_get(context, dest_share_server_id)"},{"line_number":5422,"context_line":"            except Exception:"},{"line_number":5423,"context_line":"                LOG.exception(\u0027Destination share server has been deleted from \u0027"},{"line_number":5424,"context_line":"                              \u0027the database.\u0027)"},{"line_number":5425,"context_line":"            else:"},{"line_number":5426,"context_line":"                self.db.share_server_update("},{"line_number":5427,"context_line":"                    context, dest_share_server_id, updates_on_error)"},{"line_number":5428,"context_line":"            msg_args \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"3254a155_a708b300","line":5425,"range":{"start_line":5420,"start_character":8,"end_line":5425,"end_character":17},"updated":"2021-09-03 06:03:39.000000000","message":"how would we end up in this situation","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7b188c039b7454b370f5f7a318118ba992d309e6","unresolved":false,"context_lines":[{"line_number":5417,"context_line":"                snapshot_instance_ids\u003dsnapshot_instance_ids)"},{"line_number":5418,"context_line":"            self.db.share_server_update("},{"line_number":5419,"context_line":"                context, src_share_server_id, updates_on_error)"},{"line_number":5420,"context_line":"            try:"},{"line_number":5421,"context_line":"                self.db.share_server_get(context, dest_share_server_id)"},{"line_number":5422,"context_line":"            except Exception:"},{"line_number":5423,"context_line":"                LOG.exception(\u0027Destination share server has been deleted from \u0027"},{"line_number":5424,"context_line":"                              \u0027the database.\u0027)"},{"line_number":5425,"context_line":"            else:"},{"line_number":5426,"context_line":"                self.db.share_server_update("},{"line_number":5427,"context_line":"                    context, dest_share_server_id, updates_on_error)"},{"line_number":5428,"context_line":"            msg_args \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"6a395b1c_b0944e7c","line":5425,"range":{"start_line":5420,"start_character":8,"end_line":5425,"end_character":17},"in_reply_to":"3254a155_a708b300","updated":"2021-09-03 15:44:11.000000000","message":"The _server_migration_complete_driver method calls the deletion of the share server in the database. So I was thinking that there might be a chance that even though the deletion of the share server in the database is the only thing that will happen, there is some sort of failure where the share server is in fact deleted but the _server_migration_complete_driver raises an exception. In such case, I was thinking that if we tried to update these values for a deleted entry in the DB, we could get an error.\nBut, I think I was being too cautious on this, and I forgot that Manila does not actually delete a share server... It performs a soft delete, so the entry would remain in the db and even though it is deleted, it could be updated :D","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0b0512f162bca98c27041f7956154d9dde42e18e","unresolved":true,"context_lines":[{"line_number":5494,"context_line":"                    self.db.network_allocation_update("},{"line_number":5495,"context_line":"                        context, allocation_id, values)"},{"line_number":5496,"context_line":""},{"line_number":5497,"context_line":"        # If share server doesn\u0027t have an identifier, means that it wasn\u0027t set"},{"line_number":5498,"context_line":"        # up in the back end"},{"line_number":5499,"context_line":"        if not dest_share_server[\u0027identifier\u0027]:"},{"line_number":5500,"context_line":"            source_backend_details \u003d source_share_server.get(\"backend_details\")"},{"line_number":5501,"context_line":"            if source_backend_details:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ad6d934_f93ec8e4","line":5498,"range":{"start_line":5497,"start_character":54,"end_line":5498,"end_character":28},"updated":"2021-09-03 06:03:39.000000000","message":"\"we didn\u0027t ask the driver to create a brand new server - this was a nondisruptive migration\" perhaps?","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7b188c039b7454b370f5f7a318118ba992d309e6","unresolved":false,"context_lines":[{"line_number":5494,"context_line":"                    self.db.network_allocation_update("},{"line_number":5495,"context_line":"                        context, allocation_id, values)"},{"line_number":5496,"context_line":""},{"line_number":5497,"context_line":"        # If share server doesn\u0027t have an identifier, means that it wasn\u0027t set"},{"line_number":5498,"context_line":"        # up in the back end"},{"line_number":5499,"context_line":"        if not dest_share_server[\u0027identifier\u0027]:"},{"line_number":5500,"context_line":"            source_backend_details \u003d source_share_server.get(\"backend_details\")"},{"line_number":5501,"context_line":"            if source_backend_details:"}],"source_content_type":"text/x-python","patch_set":6,"id":"c173a181_78a69ff5","line":5498,"range":{"start_line":5497,"start_character":54,"end_line":5498,"end_character":28},"in_reply_to":"1ad6d934_f93ec8e4","updated":"2021-09-03 15:44:11.000000000","message":"sounds better! thank you","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0b0512f162bca98c27041f7956154d9dde42e18e","unresolved":true,"context_lines":[{"line_number":5570,"context_line":"        # destination share server, we must deallocate the current allocations"},{"line_number":5571,"context_line":"        # in order to do not leave any garbage behind"},{"line_number":5572,"context_line":"        if need_new_network_allocations:"},{"line_number":5573,"context_line":"            self._unmanage_share_server_allocations("},{"line_number":5574,"context_line":"                context, source_share_server[\u0027id\u0027])"},{"line_number":5575,"context_line":""},{"line_number":5576,"context_line":"        self.db.share_server_delete(context, source_share_server[\u0027id\u0027])"},{"line_number":5577,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"92dd7f7e_352d60cd","line":5574,"range":{"start_line":5573,"start_character":12,"end_line":5574,"end_character":51},"updated":"2021-09-03 06:03:39.000000000","message":"don\u0027t we want to deallocate the old allocations; i.e., inform neutron and delete the ports and free up teh IPs? unmanaging will manila forget about the allocations, but the ports will be orphaned...","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7b188c039b7454b370f5f7a318118ba992d309e6","unresolved":false,"context_lines":[{"line_number":5570,"context_line":"        # destination share server, we must deallocate the current allocations"},{"line_number":5571,"context_line":"        # in order to do not leave any garbage behind"},{"line_number":5572,"context_line":"        if need_new_network_allocations:"},{"line_number":5573,"context_line":"            self._unmanage_share_server_allocations("},{"line_number":5574,"context_line":"                context, source_share_server[\u0027id\u0027])"},{"line_number":5575,"context_line":""},{"line_number":5576,"context_line":"        self.db.share_server_delete(context, source_share_server[\u0027id\u0027])"},{"line_number":5577,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"af22e0fa_9b265961","line":5574,"range":{"start_line":5573,"start_character":12,"end_line":5574,"end_character":51},"in_reply_to":"92dd7f7e_352d60cd","updated":"2021-09-03 15:44:11.000000000","message":"yeah, sounds better to deallocate! thanks","commit_id":"4be44a341ba4a16f03bef3a618cbfa0c3e919fdf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"249cb2d0fd39567950eb19f106ead08dcf6ccd24","unresolved":true,"context_lines":[{"line_number":5054,"context_line":"                service[\u0027availability_zone_id\u0027], dest_host,"},{"line_number":5055,"context_line":"                create_on_backend\u003dcreate_server_on_backend)"},{"line_number":5056,"context_line":""},{"line_number":5057,"context_line":"            net_changes_identified \u003d False"},{"line_number":5058,"context_line":"            if not create_server_on_backend:"},{"line_number":5059,"context_line":"                dest_share_server \u003d self.db.share_server_get("},{"line_number":5060,"context_line":"                    context, dest_share_server[\u0027id\u0027])"},{"line_number":5061,"context_line":"                current_subnet \u003d dest_share_server[\u0027share_network_subnet\u0027]"},{"line_number":5062,"context_line":"                old_subnet \u003d source_share_server[\u0027share_network_subnet\u0027]"},{"line_number":5063,"context_line":"                for key in [\u0027neutron_net_id\u0027, \u0027neutron_subnet_id\u0027]:"},{"line_number":5064,"context_line":"                    if current_subnet.get(key) !\u003d old_subnet.get(key):"},{"line_number":5065,"context_line":"                        net_changes_identified \u003d True"},{"line_number":5066,"context_line":"                if net_changes_identified:"},{"line_number":5067,"context_line":"                    share_network_subnet \u003d self.db.share_network_subnet_get("},{"line_number":5068,"context_line":"                        context, dest_share_server[\u0027share_network_subnet_id\u0027])"},{"line_number":5069,"context_line":"                    self.driver.allocate_network("},{"line_number":5070,"context_line":"                        context, dest_share_server, new_share_network,"},{"line_number":5071,"context_line":"                        share_network_subnet)"},{"line_number":5072,"context_line":"                    self.driver.allocate_admin_network("},{"line_number":5073,"context_line":"                        context, dest_share_server)"},{"line_number":5074,"context_line":""},{"line_number":5075,"context_line":"            self.db.share_server_update("},{"line_number":5076,"context_line":"                context, dest_share_server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"2af5c77f_019008cc","line":5073,"range":{"start_line":5057,"start_character":12,"end_line":5073,"end_character":51},"updated":"2021-09-03 17:47:07.000000000","message":"How does this work?\n\nUser has requested a migration with nondisruptive\u003dFalse, driver responds with nondisruptive\u003dTrue, but, we don\u0027t create a new share server on the backend because the driver told us it supports a nondisruptive share server migration - so this allocation has to be created - but, how will the driver know to set the network interfaces based on this network allocation? \n\n\nShouldn\u0027t the driver disallow nondisruptive migration unless explicitly asked for?","commit_id":"c4efab9e441264a1ff3422d1ffb30018ed7b14dc"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c2f16718c427279aed1e9884506dcab7797b8543","unresolved":true,"context_lines":[{"line_number":5054,"context_line":"                service[\u0027availability_zone_id\u0027], dest_host,"},{"line_number":5055,"context_line":"                create_on_backend\u003dcreate_server_on_backend)"},{"line_number":5056,"context_line":""},{"line_number":5057,"context_line":"            net_changes_identified \u003d False"},{"line_number":5058,"context_line":"            if not create_server_on_backend:"},{"line_number":5059,"context_line":"                dest_share_server \u003d self.db.share_server_get("},{"line_number":5060,"context_line":"                    context, dest_share_server[\u0027id\u0027])"},{"line_number":5061,"context_line":"                current_subnet \u003d dest_share_server[\u0027share_network_subnet\u0027]"},{"line_number":5062,"context_line":"                old_subnet \u003d source_share_server[\u0027share_network_subnet\u0027]"},{"line_number":5063,"context_line":"                for key in [\u0027neutron_net_id\u0027, \u0027neutron_subnet_id\u0027]:"},{"line_number":5064,"context_line":"                    if current_subnet.get(key) !\u003d old_subnet.get(key):"},{"line_number":5065,"context_line":"                        net_changes_identified \u003d True"},{"line_number":5066,"context_line":"                if net_changes_identified:"},{"line_number":5067,"context_line":"                    share_network_subnet \u003d self.db.share_network_subnet_get("},{"line_number":5068,"context_line":"                        context, dest_share_server[\u0027share_network_subnet_id\u0027])"},{"line_number":5069,"context_line":"                    self.driver.allocate_network("},{"line_number":5070,"context_line":"                        context, dest_share_server, new_share_network,"},{"line_number":5071,"context_line":"                        share_network_subnet)"},{"line_number":5072,"context_line":"                    self.driver.allocate_admin_network("},{"line_number":5073,"context_line":"                        context, dest_share_server)"},{"line_number":5074,"context_line":""},{"line_number":5075,"context_line":"            self.db.share_server_update("},{"line_number":5076,"context_line":"                context, dest_share_server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"4c8064ed_5e61e410","line":5073,"range":{"start_line":5057,"start_character":12,"end_line":5073,"end_character":51},"in_reply_to":"2af5c77f_019008cc","updated":"2021-09-03 20:18:06.000000000","message":"\u003e but, how will the driver know to set the network interfaces based on this network allocation?\nIn this case, the driver would need to set up the allocations either in the migration start or in the migration complete operations. The drivers can check if there are network allocations in the destination share server. If there are some, just set up the new network interfaces. If there aren\u0027t, there is nothing to do, since the interfaces are being reused :)\n\n\u003e Shouldn\u0027t the driver disallow nondisruptive migration unless explicitly asked for?\nThere might scenarios like in the SVM Migrate where the migration mechanism will always reuse the share server regardless if the requested params is \u0027nondisruptive\u0027 or not... So if we create the share server even when the driver reports nondisruptive migration, a share server would be created and it wouldn\u0027t be used for anything, because the backend is really moving the share server across backends.\nLet\u0027s try to picture the scenario where we disallow nondisruptive migration when it wasn\u0027t requested by the admin:\n- Admin requests a disruptive share server migration\n- Driver responds it can do it nondisruptively\n- We ignore the driver\u0027s response and send a request to create the share server and net interfaces\n- We set up the share server in the backend\n- Migration actually moves the share server across backends and doesn\u0027t even touch the source backend\nThe share server that was created won\u0027t be useful in this case... This scenario of migration where we set up a new share server in the back end seems more like a replication I\u0027d say :)","commit_id":"c4efab9e441264a1ff3422d1ffb30018ed7b14dc"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"babaf64c39487f776b6c74f63de94be7664e7909","unresolved":false,"context_lines":[{"line_number":5415,"context_line":"                    \u0027has failed in migration-complete phase.\u0027) % msg_args"},{"line_number":5416,"context_line":"            raise exception.ShareServerMigrationFailed(reason\u003dmsg)"},{"line_number":5417,"context_line":""},{"line_number":5418,"context_line":"        # Update share server status for success scenario"},{"line_number":5419,"context_line":"        self.db.share_server_update("},{"line_number":5420,"context_line":"            context, dest_share_server_id,"},{"line_number":5421,"context_line":"            {\u0027task_state\u0027: constants.TASK_STATE_MIGRATION_SUCCESS,"},{"line_number":5422,"context_line":"             \u0027status\u0027: constants.STATUS_ACTIVE})"},{"line_number":5423,"context_line":"        self._update_resource_status("},{"line_number":5424,"context_line":"            context, constants.STATUS_AVAILABLE,"},{"line_number":5425,"context_line":"            share_instance_ids\u003dshare_instance_ids,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5ec5d2be_8989b3d6","line":5422,"range":{"start_line":5418,"start_character":8,"end_line":5422,"end_character":48},"updated":"2021-09-07 12:28:12.000000000","message":"server_update_args \u003d {\n            \u0027task_state\u0027: constants.TASK_STATE_MIGRATION_SUCCESS,\n            \u0027status\u0027: constants.STATUS_ACTIVE\n        }\n\n        # Migration mechanism reused the share server\n        if not dest_server[\u0027identifier\u0027]:\n            server_update_args[\u0027identifier\u0027] \u003d src_server[\u0027identifier\u0027]\n\n        # Update share server status for success scenario\n        self.db.share_server_update(\n            context, dest_share_server_id, server_update_args)\n\nMust set the identifier of the destination share server as well","commit_id":"e0067e639b4ffddb74a2703dfb510f53c3308944"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"bbfa1ae11d9ccfc1a5683500b3cb5a106283e58c","unresolved":true,"context_lines":[{"line_number":5056,"context_line":""},{"line_number":5057,"context_line":"            net_changes_identified \u003d False"},{"line_number":5058,"context_line":"            if not create_server_on_backend:"},{"line_number":5059,"context_line":"                dest_share_server \u003d self.db.share_server_get("},{"line_number":5060,"context_line":"                    context, dest_share_server[\u0027id\u0027])"},{"line_number":5061,"context_line":"                current_subnet \u003d dest_share_server[\u0027share_network_subnet\u0027]"},{"line_number":5062,"context_line":"                old_subnet \u003d source_share_server[\u0027share_network_subnet\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"6d0c5dc5_615c65ca","line":5059,"range":{"start_line":5059,"start_character":0,"end_line":5059,"end_character":16},"updated":"2021-09-07 18:28:27.000000000","message":"thanks for explaining the need for this section. \n\nsuggestion: A note here would be nice about why these network allocations are being created despite not needing to create a new share server on the backend.","commit_id":"04a3db2f9a427475d638363fb63d26719e215b7b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"36a6f0a7364e34b50fe16d022e4a5679d1df7ae4","unresolved":true,"context_lines":[{"line_number":5056,"context_line":""},{"line_number":5057,"context_line":"            net_changes_identified \u003d False"},{"line_number":5058,"context_line":"            if not create_server_on_backend:"},{"line_number":5059,"context_line":"                dest_share_server \u003d self.db.share_server_get("},{"line_number":5060,"context_line":"                    context, dest_share_server[\u0027id\u0027])"},{"line_number":5061,"context_line":"                current_subnet \u003d dest_share_server[\u0027share_network_subnet\u0027]"},{"line_number":5062,"context_line":"                old_subnet \u003d source_share_server[\u0027share_network_subnet\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"e113ef98_b8ceac67","line":5059,"range":{"start_line":5059,"start_character":0,"end_line":5059,"end_character":16},"in_reply_to":"43f1fb6d_7acf2fbd","updated":"2021-09-07 21:57:59.000000000","message":"Either way works; thanks Carlos!","commit_id":"04a3db2f9a427475d638363fb63d26719e215b7b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8cf955253af0f6ba1b62dd344d12875c1ebda1d7","unresolved":true,"context_lines":[{"line_number":5056,"context_line":""},{"line_number":5057,"context_line":"            net_changes_identified \u003d False"},{"line_number":5058,"context_line":"            if not create_server_on_backend:"},{"line_number":5059,"context_line":"                dest_share_server \u003d self.db.share_server_get("},{"line_number":5060,"context_line":"                    context, dest_share_server[\u0027id\u0027])"},{"line_number":5061,"context_line":"                current_subnet \u003d dest_share_server[\u0027share_network_subnet\u0027]"},{"line_number":5062,"context_line":"                old_subnet \u003d source_share_server[\u0027share_network_subnet\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"43f1fb6d_7acf2fbd","line":5059,"range":{"start_line":5059,"start_character":0,"end_line":5059,"end_character":16},"in_reply_to":"6d0c5dc5_615c65ca","updated":"2021-09-07 18:53:41.000000000","message":"That\u0027s a nice idea! I can submit it right away, or if I do not have to submit a new PS right now, I can get it done in a follow-up change :)","commit_id":"04a3db2f9a427475d638363fb63d26719e215b7b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"babaf64c39487f776b6c74f63de94be7664e7909","unresolved":true,"context_lines":[{"line_number":5492,"context_line":"        # to create a brand new server - this was a nondisruptive migration"},{"line_number":5493,"context_line":"        share_server_was_reused \u003d not dest_share_server[\u0027identifier\u0027]"},{"line_number":5494,"context_line":"        if share_server_was_reused:"},{"line_number":5495,"context_line":"            driver_backend_details \u003d model_update.get("},{"line_number":5496,"context_line":"                \u0027server_backend_details\u0027)"},{"line_number":5497,"context_line":"            # Clean up the previous backend details set for migration details"},{"line_number":5498,"context_line":"            if driver_backend_details:"},{"line_number":5499,"context_line":"                self.db.share_server_backend_details_delete("}],"source_content_type":"text/x-python","patch_set":9,"id":"dd3cf956_ed9e1f54","line":5496,"range":{"start_line":5495,"start_character":12,"end_line":5496,"end_character":41},"updated":"2021-09-07 12:28:12.000000000","message":"The idea here is to try to reproduce the same behavior as we have when we set up a brand new share server. We allow the driver to tell us explicitly what has to be set in the backend details.","commit_id":"04a3db2f9a427475d638363fb63d26719e215b7b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"babaf64c39487f776b6c74f63de94be7664e7909","unresolved":true,"context_lines":[{"line_number":5495,"context_line":"            driver_backend_details \u003d model_update.get("},{"line_number":5496,"context_line":"                \u0027server_backend_details\u0027)"},{"line_number":5497,"context_line":"            # Clean up the previous backend details set for migration details"},{"line_number":5498,"context_line":"            if driver_backend_details:"},{"line_number":5499,"context_line":"                self.db.share_server_backend_details_delete("},{"line_number":5500,"context_line":"                    context, dest_share_server[\u0027id\u0027])"},{"line_number":5501,"context_line":"            backend_details \u003d ("},{"line_number":5502,"context_line":"                driver_backend_details"},{"line_number":5503,"context_line":"                or source_share_server.get(\"backend_details\"))"}],"source_content_type":"text/x-python","patch_set":9,"id":"b9ae34d8_f2a3ef15","line":5500,"range":{"start_line":5498,"start_character":12,"end_line":5500,"end_character":53},"updated":"2021-09-07 12:28:12.000000000","message":"There might be migration data saved in the backend details and that might need to be removed. As we are receiving frest backend details, we can rely on the share drivers to tell us what must be set and we can just remove the older data that was in the backend details.","commit_id":"04a3db2f9a427475d638363fb63d26719e215b7b"}],"releasenotes/notes/netapp-add-share-server-migration-enhancements-bbbc98a7fb419700.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"52b30a87e01196ce4040bfe37ea15859d113eee8","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bdcb9db0_ca4ee6fa","updated":"2021-08-27 05:42:29.000000000","message":"filename has \"netapp\"","commit_id":"bf443941334c1d5be8050bff9773666ca77af2e3"}]}
