)]}'
{"cinder/tests/unit/volume/drivers/nec/test_volume.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"cac96c71174228095c85ebc6f0490b3448a07262","unresolved":false,"context_lines":[{"line_number":1260,"context_line":"        self.assertEqual(6, size_in_gb)"},{"line_number":1261,"context_line":""},{"line_number":1262,"context_line":""},{"line_number":1263,"context_line":"class RevertToSnapshot_test(volume_helper.MStorageDSVDriver, test.TestCase):"},{"line_number":1264,"context_line":""},{"line_number":1265,"context_line":"    def setUp(self):"},{"line_number":1266,"context_line":"        super(RevertToSnapshot_test, self).setUp()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_e7acd68d","line":1263,"range":{"start_line":1263,"start_character":6,"end_line":1263,"end_character":27},"updated":"2019-09-10 10:01:05.000000000","message":"This would be better as\n`RevertToSnapshotTestCase`","commit_id":"41c9b91b2717ae91a1b838fc58a899b25859e875"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"f9e1b9af7e9c269d96d0e70dc4a5fe2d27b2cb0c","unresolved":false,"context_lines":[{"line_number":1260,"context_line":"        self.assertEqual(6, size_in_gb)"},{"line_number":1261,"context_line":""},{"line_number":1262,"context_line":""},{"line_number":1263,"context_line":"class RevertToSnapshot_test(volume_helper.MStorageDSVDriver, test.TestCase):"},{"line_number":1264,"context_line":""},{"line_number":1265,"context_line":"    def setUp(self):"},{"line_number":1266,"context_line":"        super(RevertToSnapshot_test, self).setUp()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_663208aa","line":1263,"range":{"start_line":1263,"start_character":6,"end_line":1263,"end_character":27},"in_reply_to":"5faad753_e7acd68d","updated":"2019-09-11 12:29:18.000000000","message":"Done","commit_id":"41c9b91b2717ae91a1b838fc58a899b25859e875"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5ef1d54d2597e616b151861ebad198e340444a7a","unresolved":false,"context_lines":[{"line_number":1268,"context_line":"        self.do_setup(None)"},{"line_number":1269,"context_line":"        self.mock_object(self._cli, \u0027view_all\u0027, return_value\u003dxml_out)"},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"    def test_revert_to_snapshot(self):"},{"line_number":1272,"context_line":"        vol \u003d DummyVolume(\"1febb976-86d0-42ed-9bc0-4aa3e158f27d\")"},{"line_number":1273,"context_line":"        snap \u003d DummyVolume(\"63410c76-2f12-4473-873d-74a63dfcd3e2\")"},{"line_number":1274,"context_line":"        self.mock_object(self._cli, \u0027_execute\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_7bddda40","line":1271,"updated":"2019-09-10 14:49:02.000000000","message":"This test takes 20s to run. Please, mock time.sleep calls","commit_id":"41c9b91b2717ae91a1b838fc58a899b25859e875"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"f9e1b9af7e9c269d96d0e70dc4a5fe2d27b2cb0c","unresolved":false,"context_lines":[{"line_number":1268,"context_line":"        self.do_setup(None)"},{"line_number":1269,"context_line":"        self.mock_object(self._cli, \u0027view_all\u0027, return_value\u003dxml_out)"},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"    def test_revert_to_snapshot(self):"},{"line_number":1272,"context_line":"        vol \u003d DummyVolume(\"1febb976-86d0-42ed-9bc0-4aa3e158f27d\")"},{"line_number":1273,"context_line":"        snap \u003d DummyVolume(\"63410c76-2f12-4473-873d-74a63dfcd3e2\")"},{"line_number":1274,"context_line":"        self.mock_object(self._cli, \u0027_execute\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_262c1046","line":1271,"in_reply_to":"5faad753_7bddda40","updated":"2019-09-11 12:29:18.000000000","message":"Done","commit_id":"41c9b91b2717ae91a1b838fc58a899b25859e875"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"cac96c71174228095c85ebc6f0490b3448a07262","unresolved":false,"context_lines":[{"line_number":1285,"context_line":"                                    \u0027Logical Disk `LX:vD03hJCiHvGpvP4iSevKk` \u0027"},{"line_number":1286,"context_line":"                                    \u0027has unbound already.\u0027):"},{"line_number":1287,"context_line":"            self.revert_to_snapshot(None, vol, snap)"},{"line_number":1288,"context_line":"        vol.id \u003d \u00271febb976-86d0-42ed-9bc0-4aa3e158f27d\u0027"},{"line_number":1289,"context_line":"        snap.id \u003d constants.SNAPSHOT_ID"},{"line_number":1290,"context_line":"        with self.assertRaisesRegex(exception.NotFound,"},{"line_number":1291,"context_line":"                                    \u0027Logical Disk `LX:18FkaTGqa43xSFL8aX4A2N` \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_074492b6","line":1288,"range":{"start_line":1288,"start_character":17,"end_line":1288,"end_character":55},"updated":"2019-09-10 10:01:05.000000000","message":"a constant could be used here as well\nconstants.SNAPSHOT2_ID","commit_id":"41c9b91b2717ae91a1b838fc58a899b25859e875"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"f9e1b9af7e9c269d96d0e70dc4a5fe2d27b2cb0c","unresolved":false,"context_lines":[{"line_number":1285,"context_line":"                                    \u0027Logical Disk `LX:vD03hJCiHvGpvP4iSevKk` \u0027"},{"line_number":1286,"context_line":"                                    \u0027has unbound already.\u0027):"},{"line_number":1287,"context_line":"            self.revert_to_snapshot(None, vol, snap)"},{"line_number":1288,"context_line":"        vol.id \u003d \u00271febb976-86d0-42ed-9bc0-4aa3e158f27d\u0027"},{"line_number":1289,"context_line":"        snap.id \u003d constants.SNAPSHOT_ID"},{"line_number":1290,"context_line":"        with self.assertRaisesRegex(exception.NotFound,"},{"line_number":1291,"context_line":"                                    \u0027Logical Disk `LX:18FkaTGqa43xSFL8aX4A2N` \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_cb950542","line":1288,"range":{"start_line":1288,"start_character":17,"end_line":1288,"end_character":55},"in_reply_to":"5faad753_074492b6","updated":"2019-09-11 12:29:18.000000000","message":"The volume id here must be same as the id that is derived by decoding the logical disk name in xml_out (test data).","commit_id":"41c9b91b2717ae91a1b838fc58a899b25859e875"}],"cinder/volume/drivers/nec/cli.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3009bd3aa39cb55248da0e8deb971015b2d385bc","unresolved":false,"context_lines":[{"line_number":601,"context_line":"                    LOG.debug(\u0027Sleep %d seconds Start\u0027, sleep_time)"},{"line_number":602,"context_line":"                    time.sleep(sleep_time)"},{"line_number":603,"context_line":"                    retry_count +\u003d 1"},{"line_number":604,"context_line":"                else:"},{"line_number":605,"context_line":"                    break"},{"line_number":606,"context_line":"        else:"},{"line_number":607,"context_line":"            msg \u003d (_(\u0027The snapshot data does not exist.\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_59ff0567","line":604,"range":{"start_line":604,"start_character":16,"end_line":604,"end_character":20},"updated":"2019-09-06 15:32:27.000000000","message":"There are multiple possible status for a snapshot,\nare we assuming we will always get snap/active ?\nis there possibility of getting snap/fault or rst/suspended status here?\nAtleast add a comment here for clarity.","commit_id":"654abb334e5dba44e50c974f2325cb8da9938d44"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"2f8bbb051c9e3f23ed0f459de253e2269bc359d7","unresolved":false,"context_lines":[{"line_number":601,"context_line":"                    LOG.debug(\u0027Sleep %d seconds Start\u0027, sleep_time)"},{"line_number":602,"context_line":"                    time.sleep(sleep_time)"},{"line_number":603,"context_line":"                    retry_count +\u003d 1"},{"line_number":604,"context_line":"                else:"},{"line_number":605,"context_line":"                    break"},{"line_number":606,"context_line":"        else:"},{"line_number":607,"context_line":"            msg \u003d (_(\u0027The snapshot data does not exist.\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_a1b105e4","line":604,"range":{"start_line":604,"start_character":16,"end_line":604,"end_character":20},"in_reply_to":"5faad753_59ff0567","updated":"2019-09-09 10:48:35.000000000","message":"Done","commit_id":"654abb334e5dba44e50c974f2325cb8da9938d44"},{"author":{"_account_id":24952,"name":"Vivek Soni","email":"viveksoni31390@gmail.com","username":"sonivi"},"change_message_id":"3aebb737e352cd81eae1554bc3e32f0e885a26dc","unresolved":false,"context_lines":[{"line_number":617,"context_line":"               \u0027if [[ \"$line\" \u003d~ \"%(line)s\" ]]; \u0027"},{"line_number":618,"context_line":"               \u0027then builtin echo \"$line\";fi;done\u0027"},{"line_number":619,"context_line":"               % {\u0027bv\u0027: bvname, \u0027sv\u0027: svname, \u0027line\u0027: svname})"},{"line_number":620,"context_line":"        out, err, status \u003d self._execute(cmd)"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"        delimiter \u003d \u0027) \u0027"},{"line_number":623,"context_line":"        start \u003d out.find(delimiter)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_d493ca5b","line":620,"range":{"start_line":620,"start_character":8,"end_line":620,"end_character":45},"updated":"2019-09-06 03:54:36.000000000","message":"since err and status is not used further.\nshould we change it to.\nout \u003d self._execute(cmd)[0]\n\nquery_status is extracted out from \u0027out\u0027 variable only and not from \u0027status\u0027 variable","commit_id":"654abb334e5dba44e50c974f2325cb8da9938d44"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"0035f2b54a420fa5068ca1832d19f7459312dbdc","unresolved":false,"context_lines":[{"line_number":617,"context_line":"               \u0027if [[ \"$line\" \u003d~ \"%(line)s\" ]]; \u0027"},{"line_number":618,"context_line":"               \u0027then builtin echo \"$line\";fi;done\u0027"},{"line_number":619,"context_line":"               % {\u0027bv\u0027: bvname, \u0027sv\u0027: svname, \u0027line\u0027: svname})"},{"line_number":620,"context_line":"        out, err, status \u003d self._execute(cmd)"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"        delimiter \u003d \u0027) \u0027"},{"line_number":623,"context_line":"        start \u003d out.find(delimiter)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_7acbdd1d","line":620,"range":{"start_line":620,"start_character":8,"end_line":620,"end_character":45},"in_reply_to":"5faad753_d493ca5b","updated":"2019-09-06 07:10:29.000000000","message":"I will remove unreferenced variables at the next refactoring.","commit_id":"654abb334e5dba44e50c974f2325cb8da9938d44"},{"author":{"_account_id":24952,"name":"Vivek Soni","email":"viveksoni31390@gmail.com","username":"sonivi"},"change_message_id":"23e991a92e09f9f01f9f78fa4bcf6b4897fcf943","unresolved":false,"context_lines":[{"line_number":622,"context_line":"        delimiter \u003d \u0027) \u0027"},{"line_number":623,"context_line":"        start \u003d out.find(delimiter)"},{"line_number":624,"context_line":"        if start \u003d\u003d -1:"},{"line_number":625,"context_line":"            return None"},{"line_number":626,"context_line":"        start +\u003d len(delimiter)"},{"line_number":627,"context_line":"        query_status \u003d out[start:].split(\u0027 \u0027)[0]"},{"line_number":628,"context_line":"        LOG.debug(\u0027snap/state:%s.\u0027, query_status)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_a5d175fa","line":625,"range":{"start_line":625,"start_character":12,"end_line":625,"end_character":18},"updated":"2019-09-04 12:55:14.000000000","message":"In case of error, should we log variable err as LOG.error(err)","commit_id":"654abb334e5dba44e50c974f2325cb8da9938d44"},{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"373e8c6e33765b65b4c82c2e262c490ce525c4f1","unresolved":false,"context_lines":[{"line_number":622,"context_line":"        delimiter \u003d \u0027) \u0027"},{"line_number":623,"context_line":"        start \u003d out.find(delimiter)"},{"line_number":624,"context_line":"        if start \u003d\u003d -1:"},{"line_number":625,"context_line":"            return None"},{"line_number":626,"context_line":"        start +\u003d len(delimiter)"},{"line_number":627,"context_line":"        query_status \u003d out[start:].split(\u0027 \u0027)[0]"},{"line_number":628,"context_line":"        LOG.debug(\u0027snap/state:%s.\u0027, query_status)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_c2832e55","line":625,"range":{"start_line":625,"start_character":12,"end_line":625,"end_character":18},"in_reply_to":"7faddb67_a5d175fa","updated":"2019-09-05 10:03:19.000000000","message":"This happens when the logical disks have been un-paired already.\nIn that case, out and err should be empty strings and they have no information to log.\nIf the iSMsc_query command fails, _execute() throws an exception and this does not happen.","commit_id":"654abb334e5dba44e50c974f2325cb8da9938d44"},{"author":{"_account_id":24952,"name":"Vivek Soni","email":"viveksoni31390@gmail.com","username":"sonivi"},"change_message_id":"3aebb737e352cd81eae1554bc3e32f0e885a26dc","unresolved":false,"context_lines":[{"line_number":622,"context_line":"        delimiter \u003d \u0027) \u0027"},{"line_number":623,"context_line":"        start \u003d out.find(delimiter)"},{"line_number":624,"context_line":"        if start \u003d\u003d -1:"},{"line_number":625,"context_line":"            return None"},{"line_number":626,"context_line":"        start +\u003d len(delimiter)"},{"line_number":627,"context_line":"        query_status \u003d out[start:].split(\u0027 \u0027)[0]"},{"line_number":628,"context_line":"        LOG.debug(\u0027snap/state:%s.\u0027, query_status)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5faad753_14aac284","line":625,"range":{"start_line":625,"start_character":12,"end_line":625,"end_character":18},"in_reply_to":"7faddb67_c2832e55","updated":"2019-09-06 03:54:36.000000000","message":"ok","commit_id":"654abb334e5dba44e50c974f2325cb8da9938d44"}],"cinder/volume/drivers/nec/volume.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3da3efa53d44bf572a64413e3210fba53890a5ae","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                 Fixed bug #1777385: driver removed access permission from"},{"line_number":116,"context_line":"                 the destination node after live-migraion."},{"line_number":117,"context_line":"                 Fixed bug #1778669: LUNs of detached volumes are never reused."},{"line_number":118,"context_line":"        1.11.1 - Add support to revert a volume to a snapshot."},{"line_number":119,"context_line":"    \"\"\""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    VERSION \u003d \u00271.11.1\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_938683db","line":118,"updated":"2019-09-19 18:54:29.000000000","message":"Merge conflict here with\n    2fcc678 NEC Driver: allow more than 4 iSCSI portals","commit_id":"12d35cba7539cf365e92d8d3be42f268b517db15"}]}
