)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c911a47e8cd03f96b76e80cc0154cdffa5c6219","unresolved":false,"context_lines":[{"line_number":14,"context_line":"accelerate the proccess a lot. And if the user wants to perform"},{"line_number":15,"context_line":"a full-copy on the snap-copy volume, migration or retype can be"},{"line_number":16,"context_line":"triggered on it."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I134a2d2274b1e3b85ea08cbf5e034f47d98e97db"},{"line_number":19,"context_line":"Closes-Bug: 1457274"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a016987_9c84af0b","line":17,"updated":"2015-05-27 15:42:39.000000000","message":"Please add DocImpact flag.","commit_id":"dd100e605d702e3ec3c75c3b663cdc733b252587"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"bdd547f3912f7579c0e1a072a6e698d550e9d396","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xi Yang \u003cxi.yang@emc.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-19 22:57:11 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Provide snap copy feature in EMC VNX Cinder driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently in VNX Cinder driver, a full-copy will be performed"},{"line_number":10,"context_line":"when creating a volume from snapshot or volume and it is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"3a50d1a3_aafc61b5","line":7,"updated":"2015-07-29 07:55:11.000000000","message":"The first line should be limited to 50 characters. https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"3cb52a1d80f95c1e0b3a164165fef7dbb173e3fe"}],"cinder/tests/unit/test_emc_vnxdirect.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"19372654efac9d9f53e5c123ad25e72b5ae7cb8e","unresolved":false,"context_lines":[{"line_number":1339,"context_line":"            self.driver.create_volume,"},{"line_number":1340,"context_line":"            vol)"},{"line_number":1341,"context_line":"        self.assertTrue("},{"line_number":1342,"context_line":"            re.match(r\".*Volume has copytype:snap\u003dTrue can not be put \""},{"line_number":1343,"context_line":"                     \"in consistency group.\","},{"line_number":1344,"context_line":"                     ex.msg))"},{"line_number":1345,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_94d097f7","line":1342,"updated":"2015-05-21 14:28:59.000000000","message":"I know the other tests already do it, but please don\u0027t assert on specific exception text. That text could be updated in the source and it wouldn\u0027t be obvious to the maintainer that there is any implication in doing that. The important thing is making sure this code path results in the exception being raised, not the specifics of its text.","commit_id":"8f7484562520c62d4482b9e8a47e521a8781a5b6"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"12e8788a4028c35b2f924e3136eb988d76a1cae3","unresolved":false,"context_lines":[{"line_number":1339,"context_line":"            self.driver.create_volume,"},{"line_number":1340,"context_line":"            vol)"},{"line_number":1341,"context_line":"        self.assertTrue("},{"line_number":1342,"context_line":"            re.match(r\".*Volume has copytype:snap\u003dTrue can not be put \""},{"line_number":1343,"context_line":"                     \"in consistency group.\","},{"line_number":1344,"context_line":"                     ex.msg))"},{"line_number":1345,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_b805c111","line":1342,"in_reply_to":"7a016987_94d097f7","updated":"2015-05-21 18:55:47.000000000","message":"++","commit_id":"8f7484562520c62d4482b9e8a47e521a8781a5b6"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"0dbe758524355cd72aca5816662b275ad273df5b","unresolved":false,"context_lines":[{"line_number":1339,"context_line":"            self.driver.create_volume,"},{"line_number":1340,"context_line":"            vol)"},{"line_number":1341,"context_line":"        self.assertTrue("},{"line_number":1342,"context_line":"            re.match(r\".*Volume has copytype:snap\u003dTrue can not be put \""},{"line_number":1343,"context_line":"                     \"in consistency group.\","},{"line_number":1344,"context_line":"                     ex.msg))"},{"line_number":1345,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_2ea352a0","line":1342,"in_reply_to":"7a016987_94d097f7","updated":"2015-05-27 08:57:16.000000000","message":"Done","commit_id":"8f7484562520c62d4482b9e8a47e521a8781a5b6"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"0dbe758524355cd72aca5816662b275ad273df5b","unresolved":false,"context_lines":[{"line_number":1339,"context_line":"            self.driver.create_volume,"},{"line_number":1340,"context_line":"            vol)"},{"line_number":1341,"context_line":"        self.assertTrue("},{"line_number":1342,"context_line":"            re.match(r\".*Volume has copytype:snap\u003dTrue can not be put \""},{"line_number":1343,"context_line":"                     \"in consistency group.\","},{"line_number":1344,"context_line":"                     ex.msg))"},{"line_number":1345,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_eeac1a8e","line":1342,"in_reply_to":"7a016987_b805c111","updated":"2015-05-27 08:57:16.000000000","message":"Done","commit_id":"8f7484562520c62d4482b9e8a47e521a8781a5b6"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c50471193aee74ad3fd3b2f0322aaaf1d6178934","unresolved":false,"context_lines":[{"line_number":3600,"context_line":""},{"line_number":3601,"context_line":"    def test_create_consistencygroup_from_cgsnapshot(self):"},{"line_number":3602,"context_line":"        output_migrate_verify \u003d (\u0027The specified source LUN \u0027"},{"line_number":3603,"context_line":"                                 \u0027is not currently migrating\u0027, 23)"},{"line_number":3604,"context_line":"        new_cg \u003d self.testData.test_cg.copy()"},{"line_number":3605,"context_line":"        new_cg.update("},{"line_number":3606,"context_line":"            {\u0027id\u0027: \u0027new_cg_id\u0027})"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_2fb759f6","line":3603,"updated":"2015-07-14 14:02:46.000000000","message":"\".\" at EOL","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c50471193aee74ad3fd3b2f0322aaaf1d6178934","unresolved":false,"context_lines":[{"line_number":4657,"context_line":"        self.assertTrue(has_error)"},{"line_number":4658,"context_line":""},{"line_number":4659,"context_line":"    def test_has_error_not_exist(self):"},{"line_number":4660,"context_line":"        output \u003d \"The specified snapshot does not exist\""},{"line_number":4661,"context_line":"        has_error \u003d VNXError.has_error(output, VNXError.GENERAL_NOT_FOUND)"},{"line_number":4662,"context_line":"        self.assertTrue(has_error)"},{"line_number":4663,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_cfd34d03","line":4660,"updated":"2015-07-14 14:02:46.000000000","message":"\".\" at EOL","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"270bf13b81491f9ad0ce378c0c0b5aaf7f6d032b","unresolved":false,"context_lines":[{"line_number":4657,"context_line":"        self.assertTrue(has_error)"},{"line_number":4658,"context_line":""},{"line_number":4659,"context_line":"    def test_has_error_not_exist(self):"},{"line_number":4660,"context_line":"        output \u003d \"The specified snapshot does not exist\""},{"line_number":4661,"context_line":"        has_error \u003d VNXError.has_error(output, VNXError.GENERAL_NOT_FOUND)"},{"line_number":4662,"context_line":"        self.assertTrue(has_error)"},{"line_number":4663,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_cc8805c8","line":4660,"in_reply_to":"9a41bdd9_cfd34d03","updated":"2015-07-15 10:35:58.000000000","message":"Done","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c50471193aee74ad3fd3b2f0322aaaf1d6178934","unresolved":false,"context_lines":[{"line_number":4661,"context_line":"        has_error \u003d VNXError.has_error(output, VNXError.GENERAL_NOT_FOUND)"},{"line_number":4662,"context_line":"        self.assertTrue(has_error)"},{"line_number":4663,"context_line":""},{"line_number":4664,"context_line":"        output \u003d \"The (pool lun) may not exist\""},{"line_number":4665,"context_line":"        has_error \u003d VNXError.has_error(output, VNXError.GENERAL_NOT_FOUND)"},{"line_number":4666,"context_line":"        self.assertTrue(has_error)"},{"line_number":4667,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_afd609ef","line":4664,"updated":"2015-07-14 14:02:46.000000000","message":"\".\" at EOL","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"270bf13b81491f9ad0ce378c0c0b5aaf7f6d032b","unresolved":false,"context_lines":[{"line_number":4661,"context_line":"        has_error \u003d VNXError.has_error(output, VNXError.GENERAL_NOT_FOUND)"},{"line_number":4662,"context_line":"        self.assertTrue(has_error)"},{"line_number":4663,"context_line":""},{"line_number":4664,"context_line":"        output \u003d \"The (pool lun) may not exist\""},{"line_number":4665,"context_line":"        has_error \u003d VNXError.has_error(output, VNXError.GENERAL_NOT_FOUND)"},{"line_number":4666,"context_line":"        self.assertTrue(has_error)"},{"line_number":4667,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_6c91b9f0","line":4664,"in_reply_to":"9a41bdd9_afd609ef","updated":"2015-07-15 10:35:58.000000000","message":"Done","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c50471193aee74ad3fd3b2f0322aaaf1d6178934","unresolved":false,"context_lines":[{"line_number":4667,"context_line":""},{"line_number":4668,"context_line":"    def test_has_error_multi_line(self):"},{"line_number":4669,"context_line":"        output \u003d \"\"\"Could not retrieve the specified (pool lun)."},{"line_number":4670,"context_line":"                    The (pool lun) may not exist\"\"\""},{"line_number":4671,"context_line":"        has_error \u003d VNXError.has_error(output, VNXError.GENERAL_NOT_FOUND)"},{"line_number":4672,"context_line":"        self.assertTrue(has_error)"},{"line_number":4673,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_cf6fcd29","line":4670,"updated":"2015-07-14 14:02:46.000000000","message":"\".\" at EOL","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"270bf13b81491f9ad0ce378c0c0b5aaf7f6d032b","unresolved":false,"context_lines":[{"line_number":4667,"context_line":""},{"line_number":4668,"context_line":"    def test_has_error_multi_line(self):"},{"line_number":4669,"context_line":"        output \u003d \"\"\"Could not retrieve the specified (pool lun)."},{"line_number":4670,"context_line":"                    The (pool lun) may not exist\"\"\""},{"line_number":4671,"context_line":"        has_error \u003d VNXError.has_error(output, VNXError.GENERAL_NOT_FOUND)"},{"line_number":4672,"context_line":"        self.assertTrue(has_error)"},{"line_number":4673,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_8c8e7dce","line":4670,"in_reply_to":"9a41bdd9_cf6fcd29","updated":"2015-07-15 10:35:58.000000000","message":"Done","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c50471193aee74ad3fd3b2f0322aaaf1d6178934","unresolved":false,"context_lines":[{"line_number":4672,"context_line":"        self.assertTrue(has_error)"},{"line_number":4673,"context_line":""},{"line_number":4674,"context_line":"    def test_has_error_regular_string_false(self):"},{"line_number":4675,"context_line":"        output \u003d \"Cannot unbind LUN because it\u0027s contained in a Storage Group\""},{"line_number":4676,"context_line":"        has_error \u003d VNXError.has_error(output, VNXError.GENERAL_NOT_FOUND)"},{"line_number":4677,"context_line":"        self.assertFalse(has_error)"},{"line_number":4678,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_0ffcd570","line":4675,"updated":"2015-07-14 14:02:46.000000000","message":"\".\" at EOL","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"270bf13b81491f9ad0ce378c0c0b5aaf7f6d032b","unresolved":false,"context_lines":[{"line_number":4672,"context_line":"        self.assertTrue(has_error)"},{"line_number":4673,"context_line":""},{"line_number":4674,"context_line":"    def test_has_error_regular_string_false(self):"},{"line_number":4675,"context_line":"        output \u003d \"Cannot unbind LUN because it\u0027s contained in a Storage Group\""},{"line_number":4676,"context_line":"        has_error \u003d VNXError.has_error(output, VNXError.GENERAL_NOT_FOUND)"},{"line_number":4677,"context_line":"        self.assertFalse(has_error)"},{"line_number":4678,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_4cc395ed","line":4675,"in_reply_to":"9a41bdd9_0ffcd570","updated":"2015-07-15 10:35:58.000000000","message":"Done","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c50471193aee74ad3fd3b2f0322aaaf1d6178934","unresolved":false,"context_lines":[{"line_number":4677,"context_line":"        self.assertFalse(has_error)"},{"line_number":4678,"context_line":""},{"line_number":4679,"context_line":"    def test_has_error_multi_errors(self):"},{"line_number":4680,"context_line":"        output \u003d \"Cannot unbind LUN because it\u0027s contained in a Storage Group\""},{"line_number":4681,"context_line":"        has_error \u003d VNXError.has_error(output,"},{"line_number":4682,"context_line":"                                       VNXError.LUN_IN_SG,"},{"line_number":4683,"context_line":"                                       VNXError.GENERAL_NOT_FOUND)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_afeda9b8","line":4680,"updated":"2015-07-14 14:02:46.000000000","message":"\".\" at EOL","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"270bf13b81491f9ad0ce378c0c0b5aaf7f6d032b","unresolved":false,"context_lines":[{"line_number":4677,"context_line":"        self.assertFalse(has_error)"},{"line_number":4678,"context_line":""},{"line_number":4679,"context_line":"    def test_has_error_multi_errors(self):"},{"line_number":4680,"context_line":"        output \u003d \"Cannot unbind LUN because it\u0027s contained in a Storage Group\""},{"line_number":4681,"context_line":"        has_error \u003d VNXError.has_error(output,"},{"line_number":4682,"context_line":"                                       VNXError.LUN_IN_SG,"},{"line_number":4683,"context_line":"                                       VNXError.GENERAL_NOT_FOUND)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_0cb90d79","line":4680,"in_reply_to":"9a41bdd9_afeda9b8","updated":"2015-07-15 10:35:58.000000000","message":"Done","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c50471193aee74ad3fd3b2f0322aaaf1d6178934","unresolved":false,"context_lines":[{"line_number":4683,"context_line":"                                       VNXError.GENERAL_NOT_FOUND)"},{"line_number":4684,"context_line":"        self.assertTrue(has_error)"},{"line_number":4685,"context_line":""},{"line_number":4686,"context_line":"        output \u003d \"Cannot unbind LUN because it\u0027s contained in a Storage Group\""},{"line_number":4687,"context_line":"        has_error \u003d VNXError.has_error(output,"},{"line_number":4688,"context_line":"                                       VNXError.LUN_ALREADY_EXPANDED,"},{"line_number":4689,"context_line":"                                       VNXError.LUN_NOT_MIGRATING)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_af1b69c9","line":4686,"updated":"2015-07-14 14:02:46.000000000","message":"\".\" at EOL","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"270bf13b81491f9ad0ce378c0c0b5aaf7f6d032b","unresolved":false,"context_lines":[{"line_number":4683,"context_line":"                                       VNXError.GENERAL_NOT_FOUND)"},{"line_number":4684,"context_line":"        self.assertTrue(has_error)"},{"line_number":4685,"context_line":""},{"line_number":4686,"context_line":"        output \u003d \"Cannot unbind LUN because it\u0027s contained in a Storage Group\""},{"line_number":4687,"context_line":"        has_error \u003d VNXError.has_error(output,"},{"line_number":4688,"context_line":"                                       VNXError.LUN_ALREADY_EXPANDED,"},{"line_number":4689,"context_line":"                                       VNXError.LUN_NOT_MIGRATING)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_6ca8d920","line":4686,"in_reply_to":"9a41bdd9_af1b69c9","updated":"2015-07-15 10:35:58.000000000","message":"Done","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3b9e7206acff94eda7e6f2c9735dd49820b086c7","unresolved":false,"context_lines":[{"line_number":3405,"context_line":"                           \u0027storage_protocol\u0027: \u0027iSCSI\u0027}}"},{"line_number":3406,"context_line":""},{"line_number":3407,"context_line":"        cmd_migrate_verify \u003d self.testData.MIGRATION_VERIFY_CMD(1)"},{"line_number":3408,"context_line":"        output_migrate_verify \u003d (r\u0027The specified source LUN \u0027"},{"line_number":3409,"context_line":"                                 \u0027is not currently migrating\u0027, 23)"},{"line_number":3410,"context_line":"        commands \u003d [self.testData.NDU_LIST_CMD,"},{"line_number":3411,"context_line":"                    self.testData.SNAP_LIST_CMD(),"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a4dcd0f_56619f03","line":3408,"updated":"2015-08-07 16:17:26.000000000","message":"Is there a reason this is a raw string?","commit_id":"afbaf3d2f103edaef44901a405f4d9cfaecd50bc"}],"cinder/volume/drivers/emc/emc_cli_fc.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"edd3cae166fdc1418642fc35631a079cf50e615c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        5.2.0 - Pool-aware scheduler support"},{"line_number":56,"context_line":"        5.3.0 - Consistency group modification support"},{"line_number":57,"context_line":"        6.0.0 - Over subscription support"},{"line_number":58,"context_line":"                Snap copy support"},{"line_number":59,"context_line":"    \"\"\""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_a95659cc","line":58,"updated":"2015-05-25 14:46:15.000000000","message":"Should we update version?","commit_id":"8f7484562520c62d4482b9e8a47e521a8781a5b6"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"0dbe758524355cd72aca5816662b275ad273df5b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        5.2.0 - Pool-aware scheduler support"},{"line_number":56,"context_line":"        5.3.0 - Consistency group modification support"},{"line_number":57,"context_line":"        6.0.0 - Over subscription support"},{"line_number":58,"context_line":"                Snap copy support"},{"line_number":59,"context_line":"    \"\"\""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_8e67e624","line":58,"in_reply_to":"7a016987_a95659cc","updated":"2015-05-27 08:57:16.000000000","message":"We have changed the verison strategy, so the middle version will not be updated here.","commit_id":"8f7484562520c62d4482b9e8a47e521a8781a5b6"}],"cinder/volume/drivers/emc/emc_vnx_cli.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"12e8788a4028c35b2f924e3136eb988d76a1cae3","unresolved":false,"context_lines":[{"line_number":272,"context_line":"    CLI_RESP_PATTERN_LUN_NOT_MIGRATING \u003d (\u0027The specified source LUN \u0027"},{"line_number":273,"context_line":"                                          \u0027is not currently migrating\u0027)"},{"line_number":274,"context_line":"    CLI_RESP_PATTERN_SNAP_ALREADY_EXIST \u003d (\u0027The specified snapshot name \u0027"},{"line_number":275,"context_line":"                                           \u0027is already in use\u0027)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    def __init__(self, configuration):"},{"line_number":278,"context_line":"        configuration.append_config_values(san.san_opts)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_ed8db9d3","line":275,"updated":"2015-05-21 18:55:47.000000000","message":"Suggest \u0027.\u0027 here.","commit_id":"8f7484562520c62d4482b9e8a47e521a8781a5b6"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"0dbe758524355cd72aca5816662b275ad273df5b","unresolved":false,"context_lines":[{"line_number":272,"context_line":"    CLI_RESP_PATTERN_LUN_NOT_MIGRATING \u003d (\u0027The specified source LUN \u0027"},{"line_number":273,"context_line":"                                          \u0027is not currently migrating\u0027)"},{"line_number":274,"context_line":"    CLI_RESP_PATTERN_SNAP_ALREADY_EXIST \u003d (\u0027The specified snapshot name \u0027"},{"line_number":275,"context_line":"                                           \u0027is already in use\u0027)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    def __init__(self, configuration):"},{"line_number":278,"context_line":"        configuration.append_config_values(san.san_opts)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_6e6caa08","line":275,"in_reply_to":"7a016987_ed8db9d3","updated":"2015-05-27 08:57:16.000000000","message":"Done","commit_id":"8f7484562520c62d4482b9e8a47e521a8781a5b6"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"d8c83c2cc0fa70063d86e664e283715e70175533","unresolved":false,"context_lines":[{"line_number":781,"context_line":"                                 \u0027-ignoreDeduplicationCheck\u0027)"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"        out, rc \u003d self.command_execute(*command_copy_snapshot)"},{"line_number":784,"context_line":"        if rc !\u003d 0:"},{"line_number":785,"context_line":"            # Ignore the error that due to retry"},{"line_number":786,"context_line":"            if out.find(self.CLI_RESP_PATTERN_SNAP_ALREADY_EXIST) \u003e\u003d 0:"},{"line_number":787,"context_line":"                LOG.warning(_LW(\u0027Snapshot %(name)s already exists. \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_eb72f3af","line":784,"updated":"2015-06-28 14:09:03.000000000","message":"remove \u0027the\u0027 here it will be clearer.","commit_id":"4c7383688ee5a9c69cc282a5cf42fa7d132bbb8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"d8c83c2cc0fa70063d86e664e283715e70175533","unresolved":false,"context_lines":[{"line_number":1805,"context_line":"        provisioning, tiering, snapcopy \u003d self._get_extra_spec_value(specs)"},{"line_number":1806,"context_line":""},{"line_number":1807,"context_line":"        if snapcopy \u003d\u003d \u0027true\u0027 and volume[\u0027consistencygroup_id\u0027]:"},{"line_number":1808,"context_line":"            msg \u003d _(\"Volume has copytype:snap\u003dTrue can not be put in \""},{"line_number":1809,"context_line":"                    \"consistency group.\")"},{"line_number":1810,"context_line":"            LOG.error(msg)"},{"line_number":1811,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_4b451f41","line":1808,"updated":"2015-06-28 14:09:03.000000000","message":"This is confusing.  Think you mean \u0027Volume with \u0027 .","commit_id":"4c7383688ee5a9c69cc282a5cf42fa7d132bbb8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"33f055d11e3744934e24208915c757cbe2476209","unresolved":false,"context_lines":[{"line_number":1805,"context_line":"        provisioning, tiering, snapcopy \u003d self._get_extra_spec_value(specs)"},{"line_number":1806,"context_line":""},{"line_number":1807,"context_line":"        if snapcopy \u003d\u003d \u0027true\u0027 and volume[\u0027consistencygroup_id\u0027]:"},{"line_number":1808,"context_line":"            msg \u003d _(\"Volume has copytype:snap\u003dTrue can not be put in \""},{"line_number":1809,"context_line":"                    \"consistency group.\")"},{"line_number":1810,"context_line":"            LOG.error(msg)"},{"line_number":1811,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_3476483f","line":1808,"in_reply_to":"fa32b979_4b451f41","updated":"2015-06-29 03:13:36.000000000","message":"+1","commit_id":"4c7383688ee5a9c69cc282a5cf42fa7d132bbb8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"33f055d11e3744934e24208915c757cbe2476209","unresolved":false,"context_lines":[{"line_number":2060,"context_line":"        src_id \u003d self.get_lun_id(volume)"},{"line_number":2061,"context_line":""},{"line_number":2062,"context_line":"        provisioning \u003d \u0027thick\u0027"},{"line_number":2063,"context_line":"        tiering \u003d \u0027none\u0027"},{"line_number":2064,"context_line":"        if new_type:"},{"line_number":2065,"context_line":"            provisioning, tiering, snapcopy \u003d self._get_extra_spec_value("},{"line_number":2066,"context_line":"                new_type[\u0027extra_specs\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_94c71445","line":2063,"updated":"2015-06-29 03:13:36.000000000","message":"Why is this changed from None to \u0027none\u0027?  It\u0027s better to add a comment here to clarify.","commit_id":"4c7383688ee5a9c69cc282a5cf42fa7d132bbb8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"33f055d11e3744934e24208915c757cbe2476209","unresolved":false,"context_lines":[{"line_number":2089,"context_line":"                        \u0027metadata\u0027: volume_metadata}"},{"line_number":2090,"context_line":"        return moved, model_update"},{"line_number":2091,"context_line":""},{"line_number":2092,"context_line":"    def update_migrated_volume(self, context, volume, new_volume):"},{"line_number":2093,"context_line":"        lun_type \u003d self._extract_provider_location_for_lun("},{"line_number":2094,"context_line":"            new_volume[\u0027provider_location\u0027], \u0027type\u0027)"},{"line_number":2095,"context_line":"        volume_metadata \u003d self._get_volume_metadata(volume)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_54466cc0","line":2092,"updated":"2015-06-29 03:13:36.000000000","message":"At the first glance, I thought this is an unrelated change. Then I read your commit message again and you did mention migration or retype could be triggered.  Can you add in your commit message that you implemented update_migrated_volume?  By the way, please note there\u0027re some changes coming regarding this function:\n\nhttps://review.openstack.org/#/c/180873/","commit_id":"4c7383688ee5a9c69cc282a5cf42fa7d132bbb8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"33f055d11e3744934e24208915c757cbe2476209","unresolved":false,"context_lines":[{"line_number":3217,"context_line":""},{"line_number":3218,"context_line":"        for i, (volume, snap) in enumerate(zip(volumes, snapshots)):"},{"line_number":3219,"context_line":"            specs \u003d self.get_volumetype_extraspecs(volume)"},{"line_number":3220,"context_line":"            provisioning, tiering, snapcopy \u003d \\"},{"line_number":3221,"context_line":"                self._get_and_validate_extra_specs(specs)"},{"line_number":3222,"context_line":"            pool_name \u003d self. get_target_storagepool(volume, snap[\u0027volume\u0027])"},{"line_number":3223,"context_line":"            sub_store_spec \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_94ce3459","line":3220,"updated":"2015-06-29 03:13:36.000000000","message":"Please use () instead of \\","commit_id":"4c7383688ee5a9c69cc282a5cf42fa7d132bbb8b"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c50471193aee74ad3fd3b2f0322aaaf1d6178934","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"class VNXError(object):"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    GENERAL_NOT_FOUND \u003d \u0027cannot find|may not exist|does not exist\u0027"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    SG_NAME_IN_USE \u003d \u0027Storage Group name already in use\u0027"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_af012908","line":180,"updated":"2015-07-14 14:02:46.000000000","message":"Suggest: \"Cannot find|May not exist|Does not exist.\" If all three of those statements are necessary that is; I feel like you\u0027d be find with: \"Could not find the object. \"","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"270bf13b81491f9ad0ce378c0c0b5aaf7f6d032b","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"class VNXError(object):"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    GENERAL_NOT_FOUND \u003d \u0027cannot find|may not exist|does not exist\u0027"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    SG_NAME_IN_USE \u003d \u0027Storage Group name already in use\u0027"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_b9e946b9","line":180,"in_reply_to":"9a41bdd9_af012908","updated":"2015-07-15 10:35:58.000000000","message":"Hi Nelson,\n\nThanks very much for your comment.\nThis is specific pattern of our command line output. We would like to keep it as what it is now..","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c50471193aee74ad3fd3b2f0322aaaf1d6178934","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    GENERAL_NOT_FOUND \u003d \u0027cannot find|may not exist|does not exist\u0027"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    SG_NAME_IN_USE \u003d \u0027Storage Group name already in use\u0027"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    LUN_ALREADY_EXPANDED \u003d 0x712d8e04"},{"line_number":185,"context_line":"    LUN_EXISTED \u003d 0x712d8d04"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_8f91c5f3","line":182,"updated":"2015-07-14 14:02:46.000000000","message":"\".\" at EOL","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"270bf13b81491f9ad0ce378c0c0b5aaf7f6d032b","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    GENERAL_NOT_FOUND \u003d \u0027cannot find|may not exist|does not exist\u0027"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    SG_NAME_IN_USE \u003d \u0027Storage Group name already in use\u0027"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    LUN_ALREADY_EXPANDED \u003d 0x712d8e04"},{"line_number":185,"context_line":"    LUN_EXISTED \u003d 0x712d8d04"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_b9006667","line":182,"in_reply_to":"9a41bdd9_8f91c5f3","updated":"2015-07-15 10:35:58.000000000","message":"Same as above","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c50471193aee74ad3fd3b2f0322aaaf1d6178934","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    LUN_ALREADY_EXPANDED \u003d 0x712d8e04"},{"line_number":185,"context_line":"    LUN_EXISTED \u003d 0x712d8d04"},{"line_number":186,"context_line":"    LUN_IS_PREPARING \u003d 0x712d8e0e"},{"line_number":187,"context_line":"    LUN_IN_SG \u003d \u0027contained in a Storage Group|LUN mapping still exists\u0027"},{"line_number":188,"context_line":"    LUN_NOT_MIGRATING \u003d (\u0027The specified source LUN is \u0027"},{"line_number":189,"context_line":"                         \u0027not currently migrating\u0027)"},{"line_number":190,"context_line":"    LUN_IS_NOT_SMP \u003d \u0027it is not a snapshot mount point\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_0f9db509","line":187,"updated":"2015-07-14 14:02:46.000000000","message":"Suggest: \"Contained in a Storage Group|LUN mapping still exists.\"","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"270bf13b81491f9ad0ce378c0c0b5aaf7f6d032b","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    LUN_ALREADY_EXPANDED \u003d 0x712d8e04"},{"line_number":185,"context_line":"    LUN_EXISTED \u003d 0x712d8d04"},{"line_number":186,"context_line":"    LUN_IS_PREPARING \u003d 0x712d8e0e"},{"line_number":187,"context_line":"    LUN_IN_SG \u003d \u0027contained in a Storage Group|LUN mapping still exists\u0027"},{"line_number":188,"context_line":"    LUN_NOT_MIGRATING \u003d (\u0027The specified source LUN is \u0027"},{"line_number":189,"context_line":"                         \u0027not currently migrating\u0027)"},{"line_number":190,"context_line":"    LUN_IS_NOT_SMP \u003d \u0027it is not a snapshot mount point\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_b937064c","line":187,"in_reply_to":"9a41bdd9_0f9db509","updated":"2015-07-15 10:35:58.000000000","message":"Same as above","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"c50471193aee74ad3fd3b2f0322aaaf1d6178934","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    LUN_IN_SG \u003d \u0027contained in a Storage Group|LUN mapping still exists\u0027"},{"line_number":188,"context_line":"    LUN_NOT_MIGRATING \u003d (\u0027The specified source LUN is \u0027"},{"line_number":189,"context_line":"                         \u0027not currently migrating\u0027)"},{"line_number":190,"context_line":"    LUN_IS_NOT_SMP \u003d \u0027it is not a snapshot mount point\u0027"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    CG_IS_DELETING \u003d 0x712d8801"},{"line_number":193,"context_line":"    CG_EXISTED \u003d 0x716d8021"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_cf04ad4b","line":190,"updated":"2015-07-14 14:02:46.000000000","message":"Suggest: \"It is not a snapshot mount point. \"","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"270bf13b81491f9ad0ce378c0c0b5aaf7f6d032b","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    LUN_IN_SG \u003d \u0027contained in a Storage Group|LUN mapping still exists\u0027"},{"line_number":188,"context_line":"    LUN_NOT_MIGRATING \u003d (\u0027The specified source LUN is \u0027"},{"line_number":189,"context_line":"                         \u0027not currently migrating\u0027)"},{"line_number":190,"context_line":"    LUN_IS_NOT_SMP \u003d \u0027it is not a snapshot mount point\u0027"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    CG_IS_DELETING \u003d 0x712d8801"},{"line_number":193,"context_line":"    CG_EXISTED \u003d 0x716d8021"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_194712bd","line":190,"in_reply_to":"9a41bdd9_cf04ad4b","updated":"2015-07-15 10:35:58.000000000","message":"Same as above","commit_id":"ba4b865aa423cf751649210e7ae4030092ec617e"},{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"711d85783aa74720f4293aeb346d28dd70bae0e8","unresolved":false,"context_lines":[{"line_number":841,"context_line":""},{"line_number":842,"context_line":"        out, rc \u003d self.command_execute(*command_copy_snapshot)"},{"line_number":843,"context_line":"        if rc !\u003d 0:"},{"line_number":844,"context_line":"            # Ignore error that due to retry"},{"line_number":845,"context_line":"            if VNXError.has_error(out, VNXError.SNAP_NAME_EXISTED):"},{"line_number":846,"context_line":"                LOG.warning(_LW(\u0027Snapshot %(name)s already exists. \u0027"},{"line_number":847,"context_line":"                                \u0027Message: %(msg)s\u0027),"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a50d1a3_d5e69743","line":844,"updated":"2015-07-31 20:52:05.000000000","message":"Ignore error due to retry?","commit_id":"2011b9066cedc4d2204e40fca722b6322e08aa5c"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"80803926cd90c7905afbad39e638ed53cfae5f0a","unresolved":false,"context_lines":[{"line_number":841,"context_line":""},{"line_number":842,"context_line":"        out, rc \u003d self.command_execute(*command_copy_snapshot)"},{"line_number":843,"context_line":"        if rc !\u003d 0:"},{"line_number":844,"context_line":"            # Ignore error that due to retry"},{"line_number":845,"context_line":"            if VNXError.has_error(out, VNXError.SNAP_NAME_EXISTED):"},{"line_number":846,"context_line":"                LOG.warning(_LW(\u0027Snapshot %(name)s already exists. \u0027"},{"line_number":847,"context_line":"                                \u0027Message: %(msg)s\u0027),"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a50d1a3_8c8d4c33","line":844,"in_reply_to":"3a50d1a3_d5e69743","updated":"2015-08-03 03:24:27.000000000","message":"Done","commit_id":"2011b9066cedc4d2204e40fca722b6322e08aa5c"},{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"711d85783aa74720f4293aeb346d28dd70bae0e8","unresolved":false,"context_lines":[{"line_number":2500,"context_line":"        1. Create a snap mount point (SMP) for the snapshot."},{"line_number":2501,"context_line":"        2. Attach the snapshot to the SMP created in the first step."},{"line_number":2502,"context_line":"        3. Create a temporary lun prepare for migration."},{"line_number":2503,"context_line":"           (Skipped if copytype:snap\u003d\u0027True\u0027)"},{"line_number":2504,"context_line":"        4. Start a migration between the SMP and the temp lun."},{"line_number":2505,"context_line":"           (Skipped if copytype:snap\u003d\u0027True\u0027)"},{"line_number":2506,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"3a50d1a3_f56633ba","line":2503,"updated":"2015-07-31 20:52:05.000000000","message":"...\u0027true\u0027)?","commit_id":"2011b9066cedc4d2204e40fca722b6322e08aa5c"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"80803926cd90c7905afbad39e638ed53cfae5f0a","unresolved":false,"context_lines":[{"line_number":2500,"context_line":"        1. Create a snap mount point (SMP) for the snapshot."},{"line_number":2501,"context_line":"        2. Attach the snapshot to the SMP created in the first step."},{"line_number":2502,"context_line":"        3. Create a temporary lun prepare for migration."},{"line_number":2503,"context_line":"           (Skipped if copytype:snap\u003d\u0027True\u0027)"},{"line_number":2504,"context_line":"        4. Start a migration between the SMP and the temp lun."},{"line_number":2505,"context_line":"           (Skipped if copytype:snap\u003d\u0027True\u0027)"},{"line_number":2506,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"3a50d1a3_cc983478","line":2503,"in_reply_to":"3a50d1a3_f56633ba","updated":"2015-08-03 03:24:27.000000000","message":"Done","commit_id":"2011b9066cedc4d2204e40fca722b6322e08aa5c"},{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"711d85783aa74720f4293aeb346d28dd70bae0e8","unresolved":false,"context_lines":[{"line_number":2502,"context_line":"        3. Create a temporary lun prepare for migration."},{"line_number":2503,"context_line":"           (Skipped if copytype:snap\u003d\u0027True\u0027)"},{"line_number":2504,"context_line":"        4. Start a migration between the SMP and the temp lun."},{"line_number":2505,"context_line":"           (Skipped if copytype:snap\u003d\u0027True\u0027)"},{"line_number":2506,"context_line":"        \"\"\""},{"line_number":2507,"context_line":"        self._volume_creation_check(volume)"},{"line_number":2508,"context_line":"        flow_name \u003d \u0027create_volume_from_snapshot\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a50d1a3_b5074bc8","line":2505,"updated":"2015-07-31 20:52:05.000000000","message":"same as above","commit_id":"2011b9066cedc4d2204e40fca722b6322e08aa5c"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"80803926cd90c7905afbad39e638ed53cfae5f0a","unresolved":false,"context_lines":[{"line_number":2502,"context_line":"        3. Create a temporary lun prepare for migration."},{"line_number":2503,"context_line":"           (Skipped if copytype:snap\u003d\u0027True\u0027)"},{"line_number":2504,"context_line":"        4. Start a migration between the SMP and the temp lun."},{"line_number":2505,"context_line":"           (Skipped if copytype:snap\u003d\u0027True\u0027)"},{"line_number":2506,"context_line":"        \"\"\""},{"line_number":2507,"context_line":"        self._volume_creation_check(volume)"},{"line_number":2508,"context_line":"        flow_name \u003d \u0027create_volume_from_snapshot\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a50d1a3_6c880023","line":2505,"in_reply_to":"3a50d1a3_b5074bc8","updated":"2015-08-03 03:24:27.000000000","message":"Done","commit_id":"2011b9066cedc4d2204e40fca722b6322e08aa5c"},{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"711d85783aa74720f4293aeb346d28dd70bae0e8","unresolved":false,"context_lines":[{"line_number":3695,"context_line":"        LOG.debug(\u0027MigrateLunTask.execute\u0027)"},{"line_number":3696,"context_line":"        dest_vol_lun_id \u003d lun_data[\u0027lun_id\u0027]"},{"line_number":3697,"context_line":""},{"line_number":3698,"context_line":"        LOG.info(_LI(\u0027Migrating Mount Point Volume ID: %s\u0027), new_smp_id)"},{"line_number":3699,"context_line":"        if self.wait_for_completion:"},{"line_number":3700,"context_line":"            migrated \u003d client.migrate_lun_with_verification(new_smp_id,"},{"line_number":3701,"context_line":"                                                            dest_vol_lun_id,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a50d1a3_d519b723","line":3698,"updated":"2015-07-31 20:52:05.000000000","message":"should this really be a info message?","commit_id":"2011b9066cedc4d2204e40fca722b6322e08aa5c"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"80803926cd90c7905afbad39e638ed53cfae5f0a","unresolved":false,"context_lines":[{"line_number":3695,"context_line":"        LOG.debug(\u0027MigrateLunTask.execute\u0027)"},{"line_number":3696,"context_line":"        dest_vol_lun_id \u003d lun_data[\u0027lun_id\u0027]"},{"line_number":3697,"context_line":""},{"line_number":3698,"context_line":"        LOG.info(_LI(\u0027Migrating Mount Point Volume ID: %s\u0027), new_smp_id)"},{"line_number":3699,"context_line":"        if self.wait_for_completion:"},{"line_number":3700,"context_line":"            migrated \u003d client.migrate_lun_with_verification(new_smp_id,"},{"line_number":3701,"context_line":"                                                            dest_vol_lun_id,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a50d1a3_ac9b6872","line":3698,"in_reply_to":"3a50d1a3_d519b723","updated":"2015-08-03 03:24:27.000000000","message":"It should be a debug message..I have changed it. Thanks!","commit_id":"2011b9066cedc4d2204e40fca722b6322e08aa5c"},{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"09de5390b3a19c031e58bc2cf8ea0809969ae6c5","unresolved":false,"context_lines":[{"line_number":3695,"context_line":"        LOG.debug(\u0027MigrateLunTask.execute\u0027)"},{"line_number":3696,"context_line":"        dest_vol_lun_id \u003d lun_data[\u0027lun_id\u0027]"},{"line_number":3697,"context_line":""},{"line_number":3698,"context_line":"        LOG.debug(_LI(\u0027Migrating Mount Point Volume ID: %s\u0027), new_smp_id)"},{"line_number":3699,"context_line":"        if self.wait_for_completion:"},{"line_number":3700,"context_line":"            migrated \u003d client.migrate_lun_with_verification(new_smp_id,"},{"line_number":3701,"context_line":"                                                            dest_vol_lun_id,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_9b9bfe65","line":3698,"updated":"2015-08-06 20:32:49.000000000","message":"LOG.debug messages should not have _LI, correct?","commit_id":"47b313c020ada73233dffe3857ce67730464a231"}]}
