)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"d2cb20daf4472d2144fef1164a4a82e0d4490c46","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Peter Wang \u003cpeter.wang13@emc.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-01-05 07:57:31 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VNX: Add sync migration support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"VNX cinder driver now supports async migration during volume cloning."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9a57fde8_807ccd21","line":7,"range":{"start_line":7,"start_character":9,"end_line":7,"end_character":13},"updated":"2017-01-12 16:31:34.000000000","message":"sync or async?","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"4e604fe31e42a0f1915ccff8b01f9ed2a5cc5b96","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Peter Wang \u003cpeter.wang13@emc.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-01-05 07:57:31 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VNX: Add sync migration support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"VNX cinder driver now supports async migration during volume cloning."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"7a3c09a3_233c0793","line":7,"range":{"start_line":7,"start_character":9,"end_line":7,"end_character":13},"in_reply_to":"9a57fde8_807ccd21","updated":"2017-01-13 10:25:38.000000000","message":"should be sync","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"d2cb20daf4472d2144fef1164a4a82e0d4490c46","unresolved":false,"context_lines":[{"line_number":9,"context_line":"VNX cinder driver now supports async migration during volume cloning."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"By default, User can create cloned volume after the migration starts in"},{"line_number":12,"context_line":"the VNX instead of waiting for the completion of migration. this grately"},{"line_number":13,"context_line":"accelerates the cloneing process."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"If user wants to disable this, he could add \u0027--metadata async_migrate\u003dFalse\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9a57fde8_609e0958","line":12,"range":{"start_line":12,"start_character":65,"end_line":12,"end_character":72},"updated":"2017-01-12 16:31:34.000000000","message":"nit: greatly","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"4e604fe31e42a0f1915ccff8b01f9ed2a5cc5b96","unresolved":false,"context_lines":[{"line_number":9,"context_line":"VNX cinder driver now supports async migration during volume cloning."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"By default, User can create cloned volume after the migration starts in"},{"line_number":12,"context_line":"the VNX instead of waiting for the completion of migration. this grately"},{"line_number":13,"context_line":"accelerates the cloneing process."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"If user wants to disable this, he could add \u0027--metadata async_migrate\u003dFalse\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"7a3c09a3_834bfb2a","line":12,"range":{"start_line":12,"start_character":65,"end_line":12,"end_character":72},"in_reply_to":"9a57fde8_609e0958","updated":"2017-01-13 10:25:38.000000000","message":"Done","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"d2cb20daf4472d2144fef1164a4a82e0d4490c46","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"By default, User can create cloned volume after the migration starts in"},{"line_number":12,"context_line":"the VNX instead of waiting for the completion of migration. this grately"},{"line_number":13,"context_line":"accelerates the cloneing process."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"If user wants to disable this, he could add \u0027--metadata async_migrate\u003dFalse\u0027"},{"line_number":16,"context_line":"when creating volume from source volume/snapshot."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9a57fde8_00b61ddc","line":13,"range":{"start_line":13,"start_character":16,"end_line":13,"end_character":24},"updated":"2017-01-12 16:31:34.000000000","message":"nit: cloning","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"4e604fe31e42a0f1915ccff8b01f9ed2a5cc5b96","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"By default, User can create cloned volume after the migration starts in"},{"line_number":12,"context_line":"the VNX instead of waiting for the completion of migration. this grately"},{"line_number":13,"context_line":"accelerates the cloneing process."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"If user wants to disable this, he could add \u0027--metadata async_migrate\u003dFalse\u0027"},{"line_number":16,"context_line":"when creating volume from source volume/snapshot."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"7a3c09a3_c35503c7","line":13,"range":{"start_line":13,"start_character":16,"end_line":13,"end_character":24},"in_reply_to":"9a57fde8_00b61ddc","updated":"2017-01-13 10:25:38.000000000","message":"Done","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4903d230724dadcbdcd3bfd970bbcbde322a7c9b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"the VNX instead of waiting for the completion of migration. this grately"},{"line_number":13,"context_line":"accelerates the cloneing process."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"If user wants to disable this, he could add \u0027--metadata async_migrate\u003dFalse\u0027"},{"line_number":16,"context_line":"when creating volume from source volume/snapshot."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9a57fde8_6eca73a3","line":15,"updated":"2017-01-12 18:47:11.000000000","message":"Wrap at 72 chars.","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"4e604fe31e42a0f1915ccff8b01f9ed2a5cc5b96","unresolved":false,"context_lines":[{"line_number":12,"context_line":"the VNX instead of waiting for the completion of migration. this grately"},{"line_number":13,"context_line":"accelerates the cloneing process."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"If user wants to disable this, he could add \u0027--metadata async_migrate\u003dFalse\u0027"},{"line_number":16,"context_line":"when creating volume from source volume/snapshot."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"7a3c09a3_83721b7b","line":15,"in_reply_to":"9a57fde8_6eca73a3","updated":"2017-01-13 10:25:38.000000000","message":"Done","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"38cf19beebb75622ee239e0056570217e7b69786","unresolved":false,"context_lines":[{"line_number":17,"context_line":"volume/snapshot."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"DocImpact"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Idfe5d9d4043f84cad2ae2d4d31914d3ae573de50"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"5a3905b3_39ba4f6f","line":20,"updated":"2017-01-20 02:22:48.000000000","message":"This is an enhancement.  Please open a bug to track it and reference the bug number here.","commit_id":"d75cdf63ac432b966f0f76664cc026116883b942"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"48c3d2f33f1447d3b3fdc34a204ca15d3e72b7f5","unresolved":false,"context_lines":[{"line_number":17,"context_line":"volume/snapshot."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"DocImpact"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Idfe5d9d4043f84cad2ae2d4d31914d3ae573de50"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"5a3905b3_5139af40","line":20,"in_reply_to":"5a3905b3_39ba4f6f","updated":"2017-01-20 05:02:56.000000000","message":"Done","commit_id":"d75cdf63ac432b966f0f76664cc026116883b942"}],"cinder/tests/unit/volume/drivers/dell_emc/vnx/fake_storops/lib/tasks.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"d2cb20daf4472d2144fef1164a4a82e0d4490c46","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 EMC Corporation, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a57fde8_c055f5c6","line":1,"range":{"start_line":1,"start_character":15,"end_line":1,"end_character":20},"updated":"2017-01-12 16:31:34.000000000","message":"2016?","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"4e604fe31e42a0f1915ccff8b01f9ed2a5cc5b96","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 EMC Corporation, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a3c09a3_230a47d3","line":1,"range":{"start_line":1,"start_character":15,"end_line":1,"end_character":20},"in_reply_to":"9a57fde8_c055f5c6","updated":"2017-01-13 10:25:38.000000000","message":"fixed: 2017","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"}],"cinder/volume/drivers/dell_emc/vnx/adapter.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4903d230724dadcbdcd3bfd970bbcbde322a7c9b","unresolved":false,"context_lines":[{"line_number":749,"context_line":"                    name\u003dvolume.name,"},{"line_number":750,"context_line":"                    force\u003dself.force_delete_lun_in_sg)"},{"line_number":751,"context_line":"            else:"},{"line_number":752,"context_line":"                raise ex"},{"line_number":753,"context_line":"        except (storops_ex.VNXLunHasSnapError,"},{"line_number":754,"context_line":"                storops_ex.VNXLunHasSnapMountPointError):"},{"line_number":755,"context_line":"            # Here, we assume no Cinder managed snaps, and add it to queue"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a57fde8_ee62e3d7","line":752,"updated":"2017-01-12 18:47:11.000000000","message":"Just \"raise\" without \"ex\" is enough.","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"4e604fe31e42a0f1915ccff8b01f9ed2a5cc5b96","unresolved":false,"context_lines":[{"line_number":749,"context_line":"                    name\u003dvolume.name,"},{"line_number":750,"context_line":"                    force\u003dself.force_delete_lun_in_sg)"},{"line_number":751,"context_line":"            else:"},{"line_number":752,"context_line":"                raise ex"},{"line_number":753,"context_line":"        except (storops_ex.VNXLunHasSnapError,"},{"line_number":754,"context_line":"                storops_ex.VNXLunHasSnapMountPointError):"},{"line_number":755,"context_line":"            # Here, we assume no Cinder managed snaps, and add it to queue"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a3c09a3_430f53e1","line":752,"in_reply_to":"9a57fde8_ee62e3d7","updated":"2017-01-13 10:25:38.000000000","message":"Done","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"}],"cinder/volume/drivers/dell_emc/vnx/client.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"d2cb20daf4472d2144fef1164a4a82e0d4490c46","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            if smp_attached_snap:"},{"line_number":144,"context_line":"                smp_attached_snap.delete()"},{"line_number":145,"context_line":"        except storops_ex.VNXLunNotFoundError as ex:"},{"line_number":146,"context_line":"            LOG.info(_LW(\"LUN %(name)s is already deleted. This message can be\""},{"line_number":147,"context_line":"                         \"safely ignored. Message: %(msg)s\"),"},{"line_number":148,"context_line":"                     {\u0027name\u0027: name, \u0027msg\u0027: ex.message})"},{"line_number":149,"context_line":"            pass  # Ignore the failure that due to retry."}],"source_content_type":"text/x-python","patch_set":14,"id":"9a57fde8_e00039ad","line":146,"range":{"start_line":146,"start_character":21,"end_line":146,"end_character":24},"updated":"2017-01-12 16:31:34.000000000","message":"_LW -\u003e _LI","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"4e604fe31e42a0f1915ccff8b01f9ed2a5cc5b96","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            if smp_attached_snap:"},{"line_number":144,"context_line":"                smp_attached_snap.delete()"},{"line_number":145,"context_line":"        except storops_ex.VNXLunNotFoundError as ex:"},{"line_number":146,"context_line":"            LOG.info(_LW(\"LUN %(name)s is already deleted. This message can be\""},{"line_number":147,"context_line":"                         \"safely ignored. Message: %(msg)s\"),"},{"line_number":148,"context_line":"                     {\u0027name\u0027: name, \u0027msg\u0027: ex.message})"},{"line_number":149,"context_line":"            pass  # Ignore the failure that due to retry."}],"source_content_type":"text/x-python","patch_set":14,"id":"7a3c09a3_83f93bcb","line":146,"range":{"start_line":146,"start_character":21,"end_line":146,"end_character":24},"in_reply_to":"9a57fde8_e00039ad","updated":"2017-01-13 10:25:38.000000000","message":"Done","commit_id":"2453cab1c7ab510bd3450c970d9a7b57b2316675"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3f17951fd056078a7b1bb9207828cd839ce23577","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            if smp_attached_snap:"},{"line_number":144,"context_line":"                smp_attached_snap.delete()"},{"line_number":145,"context_line":"        except storops_ex.VNXLunNotFoundError as ex:"},{"line_number":146,"context_line":"            LOG.info(_LI(\"LUN %(name)s is already deleted. This message can be\""},{"line_number":147,"context_line":"                         \"safely ignored. Message: %(msg)s\"),"},{"line_number":148,"context_line":"                     {\u0027name\u0027: name, \u0027msg\u0027: ex.message})"},{"line_number":149,"context_line":"            pass  # Ignore the failure that due to retry."}],"source_content_type":"text/x-python","patch_set":15,"id":"7a3c09a3_1877bfa0","line":146,"updated":"2017-01-18 05:37:02.000000000","message":"Need a space at the end","commit_id":"bdcf60c9c1218af3249b555605870c7ae4ac91b3"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"88b7531c26dc44e828fa42d3a810de7a5fff074b","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            if smp_attached_snap:"},{"line_number":144,"context_line":"                smp_attached_snap.delete()"},{"line_number":145,"context_line":"        except storops_ex.VNXLunNotFoundError as ex:"},{"line_number":146,"context_line":"            LOG.info(_LI(\"LUN %(name)s is already deleted. This message can be\""},{"line_number":147,"context_line":"                         \"safely ignored. Message: %(msg)s\"),"},{"line_number":148,"context_line":"                     {\u0027name\u0027: name, \u0027msg\u0027: ex.message})"},{"line_number":149,"context_line":"            pass  # Ignore the failure that due to retry."}],"source_content_type":"text/x-python","patch_set":15,"id":"7a3c09a3_f8a4b34b","line":146,"in_reply_to":"7a3c09a3_1877bfa0","updated":"2017-01-18 06:09:24.000000000","message":"Done","commit_id":"bdcf60c9c1218af3249b555605870c7ae4ac91b3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3f17951fd056078a7b1bb9207828cd839ce23577","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        except storops_ex.VNXLunNotFoundError as ex:"},{"line_number":146,"context_line":"            LOG.info(_LI(\"LUN %(name)s is already deleted. This message can be\""},{"line_number":147,"context_line":"                         \"safely ignored. Message: %(msg)s\"),"},{"line_number":148,"context_line":"                     {\u0027name\u0027: name, \u0027msg\u0027: ex.message})"},{"line_number":149,"context_line":"            pass  # Ignore the failure that due to retry."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def cleanup_async_lun(self, name, force\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":15,"id":"7a3c09a3_78f523eb","line":148,"range":{"start_line":148,"start_character":43,"end_line":148,"end_character":53},"updated":"2017-01-18 05:37:02.000000000","message":"If your exception is defined in exception.py, I know that this should be ex.msg instead.\n\nex.message will look like this: \"Operation failed: %(reason)s\"\nex.msg will look like this: \"Operation failed: not found\"\n\nPlease verify because I can\u0027t see your exception class.  If I\u0027m right, you should fix other similar places with a follow up patch.","commit_id":"bdcf60c9c1218af3249b555605870c7ae4ac91b3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3dc609b5c3159770eb2ec2a3f20e29d7e3a8d220","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        except storops_ex.VNXLunNotFoundError as ex:"},{"line_number":146,"context_line":"            LOG.info(_LI(\"LUN %(name)s is already deleted. This message can be\""},{"line_number":147,"context_line":"                         \"safely ignored. Message: %(msg)s\"),"},{"line_number":148,"context_line":"                     {\u0027name\u0027: name, \u0027msg\u0027: ex.message})"},{"line_number":149,"context_line":"            pass  # Ignore the failure that due to retry."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def cleanup_async_lun(self, name, force\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":15,"id":"7a3c09a3_38c0fb4f","line":148,"range":{"start_line":148,"start_character":43,"end_line":148,"end_character":53},"in_reply_to":"7a3c09a3_78f523eb","updated":"2017-01-18 05:42:30.000000000","message":"Never mind.  I checked storops and your implementation is different.  ex.message should be fine.","commit_id":"bdcf60c9c1218af3249b555605870c7ae4ac91b3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"38cf19beebb75622ee239e0056570217e7b69786","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            LOG.info(_LI(\"LUN %(name)s is already deleted. This message can \""},{"line_number":147,"context_line":"                         \"be safely ignored. Message: %(msg)s\"),"},{"line_number":148,"context_line":"                     {\u0027name\u0027: name, \u0027msg\u0027: ex.message})"},{"line_number":149,"context_line":"            pass  # Ignore the failure that due to retry."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def cleanup_async_lun(self, name, force\u003dFalse):"},{"line_number":152,"context_line":"        \"\"\"Helper method to cleanup stuff for async migration."}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_994a63c4","line":149,"range":{"start_line":149,"start_character":12,"end_line":149,"end_character":16},"updated":"2017-01-20 02:22:48.000000000","message":"\"pass\" is not necessary and can be removed.","commit_id":"d75cdf63ac432b966f0f76664cc026116883b942"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"48c3d2f33f1447d3b3fdc34a204ca15d3e72b7f5","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            LOG.info(_LI(\"LUN %(name)s is already deleted. This message can \""},{"line_number":147,"context_line":"                         \"be safely ignored. Message: %(msg)s\"),"},{"line_number":148,"context_line":"                     {\u0027name\u0027: name, \u0027msg\u0027: ex.message})"},{"line_number":149,"context_line":"            pass  # Ignore the failure that due to retry."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def cleanup_async_lun(self, name, force\u003dFalse):"},{"line_number":152,"context_line":"        \"\"\"Helper method to cleanup stuff for async migration."}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_716eab30","line":149,"range":{"start_line":149,"start_character":12,"end_line":149,"end_character":16},"in_reply_to":"5a3905b3_994a63c4","updated":"2017-01-20 05:02:56.000000000","message":"Done","commit_id":"d75cdf63ac432b966f0f76664cc026116883b942"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"38cf19beebb75622ee239e0056570217e7b69786","unresolved":false,"context_lines":[{"line_number":251,"context_line":"            try:"},{"line_number":252,"context_line":"                src_lun.cancel_migrate()"},{"line_number":253,"context_line":"            except storops_ex.VNXLunNotMigratingError:"},{"line_number":254,"context_line":"                LOG.info(_LI(\u0027The LUN is not migrating, this log can be\u0027"},{"line_number":255,"context_line":"                             \u0027 safely ignored\u0027))"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def create_snapshot(self, lun_id, snap_name, keep_for\u003dNone):"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_d9794bfe","line":254,"range":{"start_line":254,"start_character":61,"end_line":254,"end_character":64},"updated":"2017-01-20 02:22:48.000000000","message":"s/log/message","commit_id":"d75cdf63ac432b966f0f76664cc026116883b942"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"48c3d2f33f1447d3b3fdc34a204ca15d3e72b7f5","unresolved":false,"context_lines":[{"line_number":251,"context_line":"            try:"},{"line_number":252,"context_line":"                src_lun.cancel_migrate()"},{"line_number":253,"context_line":"            except storops_ex.VNXLunNotMigratingError:"},{"line_number":254,"context_line":"                LOG.info(_LI(\u0027The LUN is not migrating, this log can be\u0027"},{"line_number":255,"context_line":"                             \u0027 safely ignored\u0027))"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def create_snapshot(self, lun_id, snap_name, keep_for\u003dNone):"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_f160db37","line":254,"range":{"start_line":254,"start_character":61,"end_line":254,"end_character":64},"in_reply_to":"5a3905b3_d9794bfe","updated":"2017-01-20 05:02:56.000000000","message":"Done","commit_id":"d75cdf63ac432b966f0f76664cc026116883b942"}],"cinder/volume/drivers/dell_emc/vnx/utils.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3f17951fd056078a7b1bb9207828cd839ce23577","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    extra_specs \u003d common.ExtraSpecs.from_volume(volume)"},{"line_number":237,"context_line":"    if extra_specs.is_replication_enabled:"},{"line_number":238,"context_line":"        # For repliaction-enabled volume, we should not use the async-cloned"},{"line_number":239,"context_line":"        # volume, or setup replication would failed with"},{"line_number":240,"context_line":"        # VNXMirrorLunNotAvailableError"},{"line_number":241,"context_line":"        return False"},{"line_number":242,"context_line":"    meta \u003d get_metadata(volume)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7a3c09a3_b83f8bb2","line":239,"range":{"start_line":239,"start_character":45,"end_line":239,"end_character":51},"updated":"2017-01-18 05:37:02.000000000","message":"s/failed/fail","commit_id":"bdcf60c9c1218af3249b555605870c7ae4ac91b3"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"88b7531c26dc44e828fa42d3a810de7a5fff074b","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    extra_specs \u003d common.ExtraSpecs.from_volume(volume)"},{"line_number":237,"context_line":"    if extra_specs.is_replication_enabled:"},{"line_number":238,"context_line":"        # For repliaction-enabled volume, we should not use the async-cloned"},{"line_number":239,"context_line":"        # volume, or setup replication would failed with"},{"line_number":240,"context_line":"        # VNXMirrorLunNotAvailableError"},{"line_number":241,"context_line":"        return False"},{"line_number":242,"context_line":"    meta \u003d get_metadata(volume)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7a3c09a3_783d23dc","line":239,"range":{"start_line":239,"start_character":45,"end_line":239,"end_character":51},"in_reply_to":"7a3c09a3_b83f8bb2","updated":"2017-01-18 06:09:24.000000000","message":"Done","commit_id":"bdcf60c9c1218af3249b555605870c7ae4ac91b3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"38cf19beebb75622ee239e0056570217e7b69786","unresolved":false,"context_lines":[{"line_number":235,"context_line":"def is_async_migrate_enabled(volume):"},{"line_number":236,"context_line":"    extra_specs \u003d common.ExtraSpecs.from_volume(volume)"},{"line_number":237,"context_line":"    if extra_specs.is_replication_enabled:"},{"line_number":238,"context_line":"        # For repliaction-enabled volume, we should not use the async-cloned"},{"line_number":239,"context_line":"        # volume, or setup replication would fail with"},{"line_number":240,"context_line":"        # VNXMirrorLunNotAvailableError"},{"line_number":241,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_39b40fd0","line":238,"range":{"start_line":238,"start_character":14,"end_line":238,"end_character":25},"updated":"2017-01-20 02:22:48.000000000","message":"s/repliaction/replication","commit_id":"d75cdf63ac432b966f0f76664cc026116883b942"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"48c3d2f33f1447d3b3fdc34a204ca15d3e72b7f5","unresolved":false,"context_lines":[{"line_number":235,"context_line":"def is_async_migrate_enabled(volume):"},{"line_number":236,"context_line":"    extra_specs \u003d common.ExtraSpecs.from_volume(volume)"},{"line_number":237,"context_line":"    if extra_specs.is_replication_enabled:"},{"line_number":238,"context_line":"        # For repliaction-enabled volume, we should not use the async-cloned"},{"line_number":239,"context_line":"        # volume, or setup replication would fail with"},{"line_number":240,"context_line":"        # VNXMirrorLunNotAvailableError"},{"line_number":241,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_f131bb0c","line":238,"range":{"start_line":238,"start_character":14,"end_line":238,"end_character":25},"in_reply_to":"5a3905b3_39b40fd0","updated":"2017-01-20 05:02:56.000000000","message":"Done","commit_id":"d75cdf63ac432b966f0f76664cc026116883b942"}]}
