)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"advance."},{"line_number":16,"context_line":"At this moment, share server migration doesn\u0027t support migrate a share"},{"line_number":17,"context_line":"server without disrupting the access to shares, since the export locations"},{"line_number":18,"context_line":"are updated at the migration complete phased."},{"line_number":19,"context_line":"The driver doesn\u0027t support changing security services while changing the"},{"line_number":20,"context_line":"destination share network. This functionality can be added in the future."},{"line_number":21,"context_line":"It will all created a new share server as a migration destination and will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f560f44_b97c60eb","line":18,"range":{"start_line":18,"start_character":38,"end_line":18,"end_character":44},"updated":"2020-09-11 02:13:19.000000000","message":"s/phased/phase/","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"advance."},{"line_number":16,"context_line":"At this moment, share server migration doesn\u0027t support migrate a share"},{"line_number":17,"context_line":"server without disrupting the access to shares, since the export locations"},{"line_number":18,"context_line":"are updated at the migration complete phased."},{"line_number":19,"context_line":"The driver doesn\u0027t support changing security services while changing the"},{"line_number":20,"context_line":"destination share network. This functionality can be added in the future."},{"line_number":21,"context_line":"It will all created a new share server as a migration destination and will"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f560f44_4087f661","line":18,"range":{"start_line":18,"start_character":38,"end_line":18,"end_character":44},"in_reply_to":"9f560f44_b97c60eb","updated":"2020-09-11 19:59:56.000000000","message":"Done","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":18,"context_line":"are updated at the migration complete phased."},{"line_number":19,"context_line":"The driver doesn\u0027t support changing security services while changing the"},{"line_number":20,"context_line":"destination share network. This functionality can be added in the future."},{"line_number":21,"context_line":"It will all created a new share server as a migration destination and will"},{"line_number":22,"context_line":"never reuse share servers from a failed migration."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Co-Authored-By: Andre Beltrami \u003cdebeltrami@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f560f44_596d4430","line":21,"range":{"start_line":21,"start_character":8,"end_line":21,"end_character":20},"updated":"2020-09-11 02:13:19.000000000","message":"always create ?","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"are updated at the migration complete phased."},{"line_number":19,"context_line":"The driver doesn\u0027t support changing security services while changing the"},{"line_number":20,"context_line":"destination share network. This functionality can be added in the future."},{"line_number":21,"context_line":"It will all created a new share server as a migration destination and will"},{"line_number":22,"context_line":"never reuse share servers from a failed migration."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Co-Authored-By: Andre Beltrami \u003cdebeltrami@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f560f44_00897e6d","line":21,"range":{"start_line":21,"start_character":8,"end_line":21,"end_character":20},"in_reply_to":"9f560f44_596d4430","updated":"2020-09-11 19:59:56.000000000","message":"Removed this phrase since now, in the core patch, we always create new share servers for migration, isn\u0027t a driver option anymore.","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"}],"manila/share/drivers/netapp/dataontap/client/client_base.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5835d0e541ce65123636045f2131d07e327863e6","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        if cached:"},{"line_number":56,"context_line":"            return self.connection.get_system_version()"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        result \u003d self.send_request(\u0027system-get-version\u0027,"},{"line_number":59,"context_line":"                                   enable_tunneling\u003dFalse)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        version_tuple \u003d result.get_child_by_name("},{"line_number":62,"context_line":"            \u0027version-tuple\u0027) or netapp_api.NaElement(\u0027none\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_d428fb86","line":59,"range":{"start_line":58,"start_character":55,"end_line":59,"end_character":57},"updated":"2020-09-11 04:15:38.000000000","message":"have you tested if this works with a vsadmin user?","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        if cached:"},{"line_number":56,"context_line":"            return self.connection.get_system_version()"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        result \u003d self.send_request(\u0027system-get-version\u0027,"},{"line_number":59,"context_line":"                                   enable_tunneling\u003dFalse)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        version_tuple \u003d result.get_child_by_name("},{"line_number":62,"context_line":"            \u0027version-tuple\u0027) or netapp_api.NaElement(\u0027none\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_bdfef934","line":59,"range":{"start_line":58,"start_character":55,"end_line":59,"end_character":57},"in_reply_to":"9f560f44_77d2c75d","updated":"2020-09-11 19:59:56.000000000","message":"Removed, thanks for noticing.","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"bd85fdf82a1294e86d8d12de665f2e2c124e4373","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        if cached:"},{"line_number":56,"context_line":"            return self.connection.get_system_version()"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        result \u003d self.send_request(\u0027system-get-version\u0027,"},{"line_number":59,"context_line":"                                   enable_tunneling\u003dFalse)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        version_tuple \u003d result.get_child_by_name("},{"line_number":62,"context_line":"            \u0027version-tuple\u0027) or netapp_api.NaElement(\u0027none\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_eb455d16","line":59,"range":{"start_line":58,"start_character":55,"end_line":59,"end_character":57},"in_reply_to":"9f560f44_d428fb86","updated":"2020-09-11 04:24:38.000000000","message":"wonder if you need this change as well.","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"48f24ea43c72261d2ecdfe6336694fcdd49e54fb","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        if cached:"},{"line_number":56,"context_line":"            return self.connection.get_system_version()"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        result \u003d self.send_request(\u0027system-get-version\u0027,"},{"line_number":59,"context_line":"                                   enable_tunneling\u003dFalse)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        version_tuple \u003d result.get_child_by_name("},{"line_number":62,"context_line":"            \u0027version-tuple\u0027) or netapp_api.NaElement(\u0027none\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_77d2c75d","line":59,"range":{"start_line":58,"start_character":55,"end_line":59,"end_character":57},"in_reply_to":"9f560f44_eb455d16","updated":"2020-09-11 14:04:55.000000000","message":"No, I didn\u0027t, and might work, because \u0027system-get-ontapi-version\u0027 works. I remember having problems to build a client on \u0027share-server-migration-check\u0027 but, removing this parameter doesn\u0027t change anything, still works. So I\u0027m going to rollback this code in the next PS.\nThanks!","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"}],"manila/share/drivers/netapp/dataontap/cluster_mode/data_motion.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":592,"context_line":"        else:"},{"line_number":593,"context_line":"            dest_info \u003d dest_client.get_vserver_info(dest_vserver)"},{"line_number":594,"context_line":"            if dest_info is None:"},{"line_number":595,"context_line":"                # NOTE(dviroel): Nothing to cancel since the destination does"},{"line_number":596,"context_line":"                # not exists."},{"line_number":597,"context_line":"                return"},{"line_number":598,"context_line":"            if dest_info.get(\u0027subtype\u0027) \u003d\u003d \u0027dp_destination\u0027:"},{"line_number":599,"context_line":"                # NOTE(dviroel): Can be a corner case where no snapmirror"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_f4137f63","line":596,"range":{"start_line":595,"start_character":57,"end_line":596,"end_character":29},"updated":"2020-09-11 02:13:19.000000000","message":"the destination does not exist","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":592,"context_line":"        else:"},{"line_number":593,"context_line":"            dest_info \u003d dest_client.get_vserver_info(dest_vserver)"},{"line_number":594,"context_line":"            if dest_info is None:"},{"line_number":595,"context_line":"                # NOTE(dviroel): Nothing to cancel since the destination does"},{"line_number":596,"context_line":"                # not exists."},{"line_number":597,"context_line":"                return"},{"line_number":598,"context_line":"            if dest_info.get(\u0027subtype\u0027) \u003d\u003d \u0027dp_destination\u0027:"},{"line_number":599,"context_line":"                # NOTE(dviroel): Can be a corner case where no snapmirror"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_5df07d67","line":596,"range":{"start_line":595,"start_character":57,"end_line":596,"end_character":29},"in_reply_to":"9f560f44_f4137f63","updated":"2020-09-11 19:59:56.000000000","message":"Done","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":622,"context_line":"            wait_for_state()"},{"line_number":623,"context_line":"        except exception.VserverNotReady:"},{"line_number":624,"context_line":"            msg \u003d _(\"Vserver %s did not reach the expected state. Retries \""},{"line_number":625,"context_line":"                    \"exhausted. Aborting\") % vserver_name"},{"line_number":626,"context_line":"            raise exception.NetAppException(message\u003dmsg)"},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"    def delete_snapmirror_svm(self, src_share_server, dest_share_server,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_9404c319","line":625,"range":{"start_line":625,"start_character":32,"end_line":625,"end_character":41},"updated":"2020-09-11 02:13:19.000000000","message":"Aborting.","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":622,"context_line":"            wait_for_state()"},{"line_number":623,"context_line":"        except exception.VserverNotReady:"},{"line_number":624,"context_line":"            msg \u003d _(\"Vserver %s did not reach the expected state. Retries \""},{"line_number":625,"context_line":"                    \"exhausted. Aborting\") % vserver_name"},{"line_number":626,"context_line":"            raise exception.NetAppException(message\u003dmsg)"},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"    def delete_snapmirror_svm(self, src_share_server, dest_share_server,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_3df30975","line":625,"range":{"start_line":625,"start_character":32,"end_line":625,"end_character":41},"in_reply_to":"9f560f44_9404c319","updated":"2020-09-11 19:59:56.000000000","message":"Done","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":692,"context_line":"            wait_for_state()"},{"line_number":693,"context_line":"        except exception.VserverNotReady:"},{"line_number":694,"context_line":"            msg \u003d _(\"Vserver %s did not reach the expected state. Retries \""},{"line_number":695,"context_line":"                    \"exhausted. Aborting\") % vserver_name"},{"line_number":696,"context_line":"            raise exception.NetAppException(message\u003dmsg)"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    def wait_for_snapmirror_release_svm(self, source_vserver, dest_vserver,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_74512f30","line":695,"range":{"start_line":695,"start_character":32,"end_line":695,"end_character":40},"updated":"2020-09-11 02:13:19.000000000","message":"Aborting.","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":692,"context_line":"            wait_for_state()"},{"line_number":693,"context_line":"        except exception.VserverNotReady:"},{"line_number":694,"context_line":"            msg \u003d _(\"Vserver %s did not reach the expected state. Retries \""},{"line_number":695,"context_line":"                    \"exhausted. Aborting\") % vserver_name"},{"line_number":696,"context_line":"            raise exception.NetAppException(message\u003dmsg)"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    def wait_for_snapmirror_release_svm(self, source_vserver, dest_vserver,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_9de695af","line":695,"range":{"start_line":695,"start_character":32,"end_line":695,"end_character":40},"in_reply_to":"9f560f44_74512f30","updated":"2020-09-11 19:59:56.000000000","message":"Done","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":706,"context_line":"            snapmirrors \u003d src_client.get_snapmirror_destinations_svm("},{"line_number":707,"context_line":"                source_vserver\u003dsource_vserver, dest_vserver\u003ddest_vserver)"},{"line_number":708,"context_line":"            if not snapmirrors:"},{"line_number":709,"context_line":"                LOG.debug(\"No snapmirrors to be release in source location.\")"},{"line_number":710,"context_line":"            else:"},{"line_number":711,"context_line":"                try:"},{"line_number":712,"context_line":"                    src_client.release_snapmirror_svm(source_vserver,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_d4311b0d","line":709,"range":{"start_line":709,"start_character":48,"end_line":709,"end_character":55},"updated":"2020-09-11 02:13:19.000000000","message":"released","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":706,"context_line":"            snapmirrors \u003d src_client.get_snapmirror_destinations_svm("},{"line_number":707,"context_line":"                source_vserver\u003dsource_vserver, dest_vserver\u003ddest_vserver)"},{"line_number":708,"context_line":"            if not snapmirrors:"},{"line_number":709,"context_line":"                LOG.debug(\"No snapmirrors to be release in source location.\")"},{"line_number":710,"context_line":"            else:"},{"line_number":711,"context_line":"                try:"},{"line_number":712,"context_line":"                    src_client.release_snapmirror_svm(source_vserver,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_7de9017d","line":709,"range":{"start_line":709,"start_character":48,"end_line":709,"end_character":55},"in_reply_to":"9f560f44_d4311b0d","updated":"2020-09-11 19:59:56.000000000","message":"Done","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":719,"context_line":"                                  \u0027anymore.\u0027)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"                msg \u003d _(\u0027Snapmirror release sent to source vserver. We will \u0027"},{"line_number":722,"context_line":"                        \u0027wait for it to be release.\u0027)"},{"line_number":723,"context_line":"                raise exception.NetAppException(vserver\u003dmsg)"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_54606b01","line":722,"range":{"start_line":722,"start_character":37,"end_line":722,"end_character":51},"updated":"2020-09-11 02:13:19.000000000","message":"to be released","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":719,"context_line":"                                  \u0027anymore.\u0027)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"                msg \u003d _(\u0027Snapmirror release sent to source vserver. We will \u0027"},{"line_number":722,"context_line":"                        \u0027wait for it to be release.\u0027)"},{"line_number":723,"context_line":"                raise exception.NetAppException(vserver\u003dmsg)"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_dd03ed40","line":722,"range":{"start_line":722,"start_character":37,"end_line":722,"end_character":51},"in_reply_to":"9f560f44_54606b01","updated":"2020-09-11 19:59:56.000000000","message":"Done","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"}],"manila/share/drivers/netapp/dataontap/cluster_mode/drv_multi_svm.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    def share_server_migration_start(self, context, src_share_server,"},{"line_number":299,"context_line":"                                     dest_share_server, shares, snapshots):"},{"line_number":300,"context_line":"        return self.library.share_server_migration_start("},{"line_number":301,"context_line":"            context, src_share_server, dest_share_server, shares, snapshots)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def share_server_migration_continue(self, context, src_share_server,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_f4ffff62","line":300,"range":{"start_line":300,"start_character":8,"end_line":300,"end_character":15},"updated":"2020-09-11 02:13:19.000000000","message":"no need for \u0027return\u0027 here though it does no harm except to lead the reader to expect an explicit return value when there is none","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    def share_server_migration_start(self, context, src_share_server,"},{"line_number":299,"context_line":"                                     dest_share_server, shares, snapshots):"},{"line_number":300,"context_line":"        return self.library.share_server_migration_start("},{"line_number":301,"context_line":"            context, src_share_server, dest_share_server, shares, snapshots)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def share_server_migration_continue(self, context, src_share_server,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_fdf4f156","line":300,"range":{"start_line":300,"start_character":8,"end_line":300,"end_character":15},"in_reply_to":"9f560f44_f4ffff62","updated":"2020-09-11 19:59:56.000000000","message":"True, removed","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    def share_server_migration_cancel(self, context, src_share_server,"},{"line_number":316,"context_line":"                                      dest_share_server, shares, snapshots):"},{"line_number":317,"context_line":"        return self.library.share_server_migration_cancel("},{"line_number":318,"context_line":"            context, src_share_server, dest_share_server, shares, snapshots)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def choose_share_server_compatible_with_share(self, context, share_servers,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_34517763","line":317,"range":{"start_line":317,"start_character":8,"end_line":317,"end_character":14},"updated":"2020-09-11 02:13:19.000000000","message":"no need for the \u0027return\u0027","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    def share_server_migration_cancel(self, context, src_share_server,"},{"line_number":316,"context_line":"                                      dest_share_server, shares, snapshots):"},{"line_number":317,"context_line":"        return self.library.share_server_migration_cancel("},{"line_number":318,"context_line":"            context, src_share_server, dest_share_server, shares, snapshots)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def choose_share_server_compatible_with_share(self, context, share_servers,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_5d951de3","line":317,"range":{"start_line":317,"start_character":8,"end_line":317,"end_character":14},"in_reply_to":"9f560f44_34517763","updated":"2020-09-11 19:59:56.000000000","message":"True, removed","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"}],"manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":2841,"context_line":"                pool[\u0027total_capacity_gb\u0027] * reserved)"},{"line_number":2842,"context_line":""},{"line_number":2843,"context_line":"            if thin_provision:"},{"line_number":2844,"context_line":"                # If thin provision is enabled it\u0027s necessary recalculate the"},{"line_number":2845,"context_line":"                # total_pool_free considering the max over subscription ratio"},{"line_number":2846,"context_line":"                # for each pool. After summing the free space for each pool we"},{"line_number":2847,"context_line":"                # have the total backend free capacity to compare with the"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_149c330c","line":2844,"range":{"start_line":2844,"start_character":18,"end_line":2844,"end_character":74},"updated":"2020-09-11 02:13:19.000000000","message":"s/necessary recalculate/necessary to recalculate/","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":2841,"context_line":"                pool[\u0027total_capacity_gb\u0027] * reserved)"},{"line_number":2842,"context_line":""},{"line_number":2843,"context_line":"            if thin_provision:"},{"line_number":2844,"context_line":"                # If thin provision is enabled it\u0027s necessary recalculate the"},{"line_number":2845,"context_line":"                # total_pool_free considering the max over subscription ratio"},{"line_number":2846,"context_line":"                # for each pool. After summing the free space for each pool we"},{"line_number":2847,"context_line":"                # have the total backend free capacity to compare with the"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_dd880dc7","line":2844,"range":{"start_line":2844,"start_character":18,"end_line":2844,"end_character":74},"in_reply_to":"9f560f44_149c330c","updated":"2020-09-11 19:59:56.000000000","message":"forgot this one \u003e\u003c","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"}],"manila/share/drivers/netapp/dataontap/cluster_mode/lib_multi_svm.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":813,"context_line":"        # 1. Check and create vserver peer if needed"},{"line_number":814,"context_line":"        if not self._get_vserver_peers(dest_vserver, src_vserver):"},{"line_number":815,"context_line":"            # Request vserver peer creation from destination to source"},{"line_number":816,"context_line":"            dest_client.create_vserver_peer("},{"line_number":817,"context_line":"                dest_vserver, src_vserver,"},{"line_number":818,"context_line":"                peer_cluster_name\u003dsrc_cluster)"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"            # Accepts the vserver peering using active replica host\u0027s"},{"line_number":821,"context_line":"            # client (inter-cluster only)"},{"line_number":822,"context_line":"            if dest_cluster !\u003d src_cluster:"},{"line_number":823,"context_line":"                src_client.accept_vserver_peer(src_vserver, dest_vserver)"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"        # 2. Create SnapMirror"},{"line_number":826,"context_line":"        dm_session \u003d data_motion.DataMotionSession()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_14af137d","line":823,"range":{"start_line":816,"start_character":11,"end_line":823,"end_character":73},"updated":"2020-09-11 02:13:19.000000000","message":"Can these calls to set up vserver peering and to accept it fail?","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":813,"context_line":"        # 1. Check and create vserver peer if needed"},{"line_number":814,"context_line":"        if not self._get_vserver_peers(dest_vserver, src_vserver):"},{"line_number":815,"context_line":"            # Request vserver peer creation from destination to source"},{"line_number":816,"context_line":"            dest_client.create_vserver_peer("},{"line_number":817,"context_line":"                dest_vserver, src_vserver,"},{"line_number":818,"context_line":"                peer_cluster_name\u003dsrc_cluster)"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"            # Accepts the vserver peering using active replica host\u0027s"},{"line_number":821,"context_line":"            # client (inter-cluster only)"},{"line_number":822,"context_line":"            if dest_cluster !\u003d src_cluster:"},{"line_number":823,"context_line":"                src_client.accept_vserver_peer(src_vserver, dest_vserver)"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"        # 2. Create SnapMirror"},{"line_number":826,"context_line":"        dm_session \u003d data_motion.DataMotionSession()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_bdac3935","line":823,"range":{"start_line":816,"start_character":11,"end_line":823,"end_character":73},"in_reply_to":"9f560f44_14af137d","updated":"2020-09-11 19:59:56.000000000","message":"yes, and the cleanup will be made on \u0027_delete_vserver\u0027. Same rollback used on replication with DHSS\u003dTrue. Tks Tom","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":828,"context_line":"            dm_session.create_snapmirror_svm(source_share_server,"},{"line_number":829,"context_line":"                                             dest_share_server)"},{"line_number":830,"context_line":"        except Exception:"},{"line_number":831,"context_line":"            # NOTE(dviroel): vserver peer delete will be handle on vserver"},{"line_number":832,"context_line":"            # teardown"},{"line_number":833,"context_line":"            dm_session.cancel_snapmirror_svm(source_share_server,"},{"line_number":834,"context_line":"                                             dest_share_server)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_b48d8732","line":831,"range":{"start_line":831,"start_character":54,"end_line":831,"end_character":64},"updated":"2020-09-11 02:13:19.000000000","message":"nit: be handled","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":828,"context_line":"            dm_session.create_snapmirror_svm(source_share_server,"},{"line_number":829,"context_line":"                                             dest_share_server)"},{"line_number":830,"context_line":"        except Exception:"},{"line_number":831,"context_line":"            # NOTE(dviroel): vserver peer delete will be handle on vserver"},{"line_number":832,"context_line":"            # teardown"},{"line_number":833,"context_line":"            dm_session.cancel_snapmirror_svm(source_share_server,"},{"line_number":834,"context_line":"                                             dest_share_server)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_1da8c51d","line":831,"range":{"start_line":831,"start_character":54,"end_line":831,"end_character":64},"in_reply_to":"9f560f44_b48d8732","updated":"2020-09-11 19:59:56.000000000","message":"Done","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":975,"context_line":"            try:"},{"line_number":976,"context_line":"                src_client.start_vserver(src_vserver)"},{"line_number":977,"context_line":"            except Exception:"},{"line_number":978,"context_line":"                LOG.warning(\"Unable to recover source share server after a \""},{"line_number":979,"context_line":"                            \"migration failure.\")"},{"line_number":980,"context_line":"            # Destroy any snapmirror and make destination vserver to have its"},{"line_number":981,"context_line":"            # subtype set to \u0027default\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_3468571f","line":978,"range":{"start_line":978,"start_character":16,"end_line":978,"end_character":28},"updated":"2020-09-11 02:13:19.000000000","message":"Your call but I wonder if this is serious enough.","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":975,"context_line":"            try:"},{"line_number":976,"context_line":"                src_client.start_vserver(src_vserver)"},{"line_number":977,"context_line":"            except Exception:"},{"line_number":978,"context_line":"                LOG.warning(\"Unable to recover source share server after a \""},{"line_number":979,"context_line":"                            \"migration failure.\")"},{"line_number":980,"context_line":"            # Destroy any snapmirror and make destination vserver to have its"},{"line_number":981,"context_line":"            # subtype set to \u0027default\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_1d56052b","line":978,"range":{"start_line":978,"start_character":16,"end_line":978,"end_character":28},"in_reply_to":"9f560f44_3468571f","updated":"2020-09-11 19:59:56.000000000","message":"Almost all failures can be have the source back alive again, using this start_vserver call above. But if this one fails, all source shares will remain without access. I thought that was important to raise a warning for this scenario.","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":"        # 8. Release source share resources"},{"line_number":1034,"context_line":"        # NOTE(dviroel): We might need to avoid Share Manager from deleting the"},{"line_number":1035,"context_line":"        #  the source share server if we won\u0027t to delete all its shares."},{"line_number":1036,"context_line":"        for instance in share_instances:"},{"line_number":1037,"context_line":"            self._delete_share(instance, src_client, remove_export\u003dTrue)"},{"line_number":1038,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_d462bb3d","line":1035,"range":{"start_line":1035,"start_character":34,"end_line":1035,"end_character":72},"updated":"2020-09-11 02:13:19.000000000","message":"?\nif we don\u0027t want to delete all its shares\n?","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":"        # 8. Release source share resources"},{"line_number":1034,"context_line":"        # NOTE(dviroel): We might need to avoid Share Manager from deleting the"},{"line_number":1035,"context_line":"        #  the source share server if we won\u0027t to delete all its shares."},{"line_number":1036,"context_line":"        for instance in share_instances:"},{"line_number":1037,"context_line":"            self._delete_share(instance, src_client, remove_export\u003dTrue)"},{"line_number":1038,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_1d044517","line":1035,"range":{"start_line":1035,"start_character":34,"end_line":1035,"end_character":72},"in_reply_to":"9f560f44_d462bb3d","updated":"2020-09-11 19:59:56.000000000","message":"I removed the note. It was an alternate driver option, of not deleting source shares after migrating to the destination server.\nThis option was removed, so the note doesn\u0027t make sense anymore.","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"}],"manila/share/drivers/netapp/dataontap/protocols/nfs_cmode.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    @na_utils.trace"},{"line_number":43,"context_line":"    def create_share(self, share, share_name,"},{"line_number":44,"context_line":"                     clear_current_export_policy\u003dTrue,"},{"line_number":45,"context_line":"                     ensure_share_already_exists\u003dFalse):"},{"line_number":46,"context_line":"        \"\"\"Creates NFS share.\"\"\""},{"line_number":47,"context_line":"        if clear_current_export_policy:"},{"line_number":48,"context_line":"            self._client.clear_nfs_export_policy_for_volume(share_name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_748acfbb","line":45,"range":{"start_line":45,"start_character":21,"end_line":45,"end_character":54},"updated":"2020-09-11 02:13:19.000000000","message":"I may be missing something, but why do we handle ensure_share_already_exists\u003dTrue for CIFS but ignore it for NFS?","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    @na_utils.trace"},{"line_number":43,"context_line":"    def create_share(self, share, share_name,"},{"line_number":44,"context_line":"                     clear_current_export_policy\u003dTrue,"},{"line_number":45,"context_line":"                     ensure_share_already_exists\u003dFalse):"},{"line_number":46,"context_line":"        \"\"\"Creates NFS share.\"\"\""},{"line_number":47,"context_line":"        if clear_current_export_policy:"},{"line_number":48,"context_line":"            self._client.clear_nfs_export_policy_for_volume(share_name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_60767aa6","line":45,"range":{"start_line":45,"start_character":21,"end_line":45,"end_character":54},"in_reply_to":"9f560f44_748acfbb","updated":"2020-09-11 19:59:56.000000000","message":"Add a TODO for that, but the idea was to not create a new share when it already exists. This makes sense for CIFS since we trigger a cifs-share-create at this point. For NFS protocol, its is expected to always have it enabled. But this doesn\u0027t mean that we can add a check here.","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"}],"releasenotes/notes/netapp-add-share-server-migration-663f7ced1ef93558.yaml":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c8cdd8841e0faae73ac9586928cc3bc4d79f3ec5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    working across ONTAP clusters, they must be peered in advance."},{"line_number":12,"context_line":"    In order to adapt to different workloads and provide more flexibility on"},{"line_number":13,"context_line":"    managing cluster’s free space a new configuration option was added:"},{"line_number":14,"context_line":"    - ``netapp_server_migration_check_capacity``: specifies if a capacity"},{"line_number":15,"context_line":"    validation at the destination backend must be made before proceeding with"},{"line_number":16,"context_line":"    the share server migration. When enabled, the NetApp driver will validate"},{"line_number":17,"context_line":"    if the destination pools can hold all shares and snapshots belonging to the"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f560f44_5956e45d","line":14,"updated":"2020-09-11 02:13:19.000000000","message":"The format in the rendered release note seems less than ideal to me.  Not a show-stopper but please check if it\u0027s what you want and adjust if want if you need to make another patch.","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d418aada641bde01a371d82a55acd9734dde0c4a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    working across ONTAP clusters, they must be peered in advance."},{"line_number":12,"context_line":"    In order to adapt to different workloads and provide more flexibility on"},{"line_number":13,"context_line":"    managing cluster’s free space a new configuration option was added:"},{"line_number":14,"context_line":"    - ``netapp_server_migration_check_capacity``: specifies if a capacity"},{"line_number":15,"context_line":"    validation at the destination backend must be made before proceeding with"},{"line_number":16,"context_line":"    the share server migration. When enabled, the NetApp driver will validate"},{"line_number":17,"context_line":"    if the destination pools can hold all shares and snapshots belonging to the"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f560f44_00b05e3f","line":14,"in_reply_to":"9f560f44_5956e45d","updated":"2020-09-11 19:59:56.000000000","message":"Thank you Tom, I think that now is fixed and have a better output.","commit_id":"10b100721baf3b75cf221c72101fa37d9b45460a"}]}
