)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"ac56970ce2b8ab6216c22929c516263f11f5733c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Implement nfs manage/unmanage of a volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This bp is aim to implement nfs manage/unmanage of a volume"},{"line_number":10,"context_line":"M cinder/tests/unit/test_nfs.py"},{"line_number":11,"context_line":"M cinder/volume/drivers/nfs.py"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I71733fa655ace8c2ef0dd919639b0e6733b0ef99"},{"line_number":14,"context_line":"Implements: blueprint nfs-manage-unmanage-volume"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1aa78d24_fe6b721d","line":11,"range":{"start_line":10,"start_character":0,"end_line":11,"end_character":30},"updated":"2016-07-14 17:47:55.000000000","message":"This is not needed, please remove.","commit_id":"5971a0023fa9654f1c87c151096b821f206992bd"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4f939723096c9ad10763edc234511d60fd5f0c80","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Implement nfs manage/unmanage of a volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This bp is aim to implement nfs manage/unmanage of a volume"},{"line_number":10,"context_line":"M cinder/tests/unit/test_nfs.py"},{"line_number":11,"context_line":"M cinder/volume/drivers/nfs.py"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I71733fa655ace8c2ef0dd919639b0e6733b0ef99"},{"line_number":14,"context_line":"Implements: blueprint nfs-manage-unmanage-volume"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1aa78d24_2c34af48","line":11,"range":{"start_line":10,"start_character":0,"end_line":11,"end_character":30},"in_reply_to":"1aa78d24_fe6b721d","updated":"2016-07-14 20:28:13.000000000","message":"+1","commit_id":"5971a0023fa9654f1c87c151096b821f206992bd"}],"cinder/tests/unit/test_nfs.py":[{"author":{"_account_id":19153,"name":"jingtao liang","email":"liang.jingtao@zte.com.cn","username":"liangjingtao"},"change_message_id":"b66ae724583dc331976f70d1bb7a95a30d54f861","unresolved":false,"context_lines":[{"line_number":1069,"context_line":"            self.assertEqual(ref[\u0027source-name\u0027], old_name)"},{"line_number":1070,"context_line":"            self.assertEqual(vol[\u0027name\u0027], new_name)"},{"line_number":1071,"context_line":""},{"line_number":1072,"context_line":"        with mock.patch.object(drv,"},{"line_number":1073,"context_line":"                               \u0027_rename_volume\u0027) as mock_rename_volume, \\"},{"line_number":1074,"context_line":"                mock.patch.object(drv, \u0027_get_volume\u0027,"},{"line_number":1075,"context_line":"                                  self._get_manage_existing_vols):"},{"line_number":1076,"context_line":"                mock_rename_volume.return_value \u003d _rename_volume"},{"line_number":1077,"context_line":"                size \u003d drv.manage_existing_get_size(vol, ref)"},{"line_number":1078,"context_line":"                self.assertEqual(1, size)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_33d67ef1","line":1075,"range":{"start_line":1072,"start_character":0,"end_line":1075,"end_character":66},"updated":"2016-07-12 01:34:46.000000000","message":"It looks very strange and be hard to understand.","commit_id":"ba07e8749c34826f33b818475c87dbb200a16a89"},{"author":{"_account_id":21406,"name":"Vijay Ladani","email":"vijay.ladani@hpe.com","username":"vladani"},"change_message_id":"0fea49c857949ab5bd3cf1ce7706637ad7d371f7","unresolved":false,"context_lines":[{"line_number":1065,"context_line":"               \u0027id\u0027: \u002780ee16b6-75d2-4d54-9539-ffc1b4b0fb10\u0027,"},{"line_number":1066,"context_line":"               \u0027size\u0027: 1}"},{"line_number":1067,"context_line":""},{"line_number":1068,"context_line":"        def _rename_volume(old_name, new_name):"},{"line_number":1069,"context_line":"            self.assertEqual(ref[\u0027source-name\u0027], old_name)"},{"line_number":1070,"context_line":"            self.assertEqual(vol[\u0027name\u0027], new_name)"},{"line_number":1071,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_f2105502","line":1068,"updated":"2016-07-12 12:29:45.000000000","message":"why is this function defined here and what is the purpose of it?","commit_id":"b0b490629bfd579221111ca928eb36e92e630e73"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4f939723096c9ad10763edc234511d60fd5f0c80","unresolved":false,"context_lines":[{"line_number":1060,"context_line":"        \"\"\""},{"line_number":1061,"context_line":"        drv \u003d self._driver"},{"line_number":1062,"context_line":""},{"line_number":1063,"context_line":"        ref \u003d {\u0027source-name\u0027: \u0027fake_lv\u0027}"},{"line_number":1064,"context_line":"        vol \u003d {\u0027name\u0027: \u0027test\u0027,"},{"line_number":1065,"context_line":"               \u0027id\u0027: \u002780ee16b6-75d2-4d54-9539-ffc1b4b0fb10\u0027,"},{"line_number":1066,"context_line":"               \u0027size\u0027: 1}"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_2c3aefe7","line":1063,"updated":"2016-07-14 20:28:13.000000000","message":"Please, do not copy-paste this initial data  in the each test","commit_id":"5971a0023fa9654f1c87c151096b821f206992bd"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"ac56970ce2b8ab6216c22929c516263f11f5733c","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"                drv, \u0027_rename_volume\u0027) as mock_rename_volume, \\"},{"line_number":1074,"context_line":"                mock.patch.object(drv, \u0027_get_volume\u0027,"},{"line_number":1075,"context_line":"                                  self._get_manage_existing_vols):"},{"line_number":1076,"context_line":"                mock_rename_volume.return_value \u003d _rename_volume"},{"line_number":1077,"context_line":"                size \u003d drv.manage_existing_get_size(vol, ref)"},{"line_number":1078,"context_line":"                self.assertEqual(1, size)"},{"line_number":1079,"context_line":"                model_update \u003d drv.manage_existing(vol, ref)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_5e66062a","line":1076,"range":{"start_line":1076,"start_character":35,"end_line":1076,"end_character":47},"updated":"2016-07-14 17:47:55.000000000","message":"side_effect\n\n_rename_volume defined above will not be called otherwise.","commit_id":"5971a0023fa9654f1c87c151096b821f206992bd"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"ac56970ce2b8ab6216c22929c516263f11f5733c","unresolved":false,"context_lines":[{"line_number":1077,"context_line":"                size \u003d drv.manage_existing_get_size(vol, ref)"},{"line_number":1078,"context_line":"                self.assertEqual(1, size)"},{"line_number":1079,"context_line":"                model_update \u003d drv.manage_existing(vol, ref)"},{"line_number":1080,"context_line":"                self.assertIsNone(model_update)"},{"line_number":1081,"context_line":""},{"line_number":1082,"context_line":"    def test_manage_existing_bad_size(self):"},{"line_number":1083,"context_line":"        \"\"\"Make sure correct exception on bad size returned."}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_3e805a8b","line":1080,"updated":"2016-07-14 17:47:55.000000000","message":"Also assert mock_rename_volume is called.","commit_id":"5971a0023fa9654f1c87c151096b821f206992bd"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"1bfecbea161da22dffdf25a3f497a811bc1073f7","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"                drv, \u0027_rename_volume\u0027) as mock_rename_volume, \\"},{"line_number":1074,"context_line":"                mock.patch.object(drv, \u0027_get_volume\u0027,"},{"line_number":1075,"context_line":"                                  self._get_manage_existing_vols):"},{"line_number":1076,"context_line":"                mock_rename_volume.return_value \u003d test_rename_volume"},{"line_number":1077,"context_line":"                size \u003d drv.manage_existing_get_size(vol, ref)"},{"line_number":1078,"context_line":"                self.assertEqual(1, size)"},{"line_number":1079,"context_line":"                model_update \u003d drv.manage_existing(vol, ref)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_484c6942","line":1076,"range":{"start_line":1076,"start_character":35,"end_line":1076,"end_character":47},"updated":"2016-07-19 11:00:32.000000000","message":"The test_rename_volume in line 1068 will not be called. Please replace return_value with side_effect.","commit_id":"77220cab891f13af38c716622e4ddc6111dba00e"}],"cinder/volume/drivers/nfs.py":[{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"c74a8557c8106fd73bc5ed72c5743fa365d1c041","unresolved":false,"context_lines":[{"line_number":492,"context_line":"        try:"},{"line_number":493,"context_line":"            vol_size \u003d int(math.ceil(float(vol[\u0027size\u0027]) / units.Gi))"},{"line_number":494,"context_line":"        except ValueError:"},{"line_number":495,"context_line":"            exception_message \u003d (_(\"Failed to manage existing\""},{"line_number":496,"context_line":"                                   \"%(name)s, because reported size %(size)s \""},{"line_number":497,"context_line":"                                   \"was not a floating-point number.\")"},{"line_number":498,"context_line":"                                 % {\u0027name\u0027: vol_name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_9c2c88ad","line":495,"range":{"start_line":495,"start_character":53,"end_line":495,"end_character":61},"updated":"2016-07-12 12:06:24.000000000","message":"Missing a blank space after \"\"existing.","commit_id":"b0b490629bfd579221111ca928eb36e92e630e73"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"c74a8557c8106fd73bc5ed72c5743fa365d1c041","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        \"\"\"Get all nfs volumes."},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        :returns: List of Dictionaries with volume info"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        \"\"\""},{"line_number":510,"context_line":"        run_as_root \u003d self._execute_as_root"},{"line_number":511,"context_line":"        vol_list \u003d []"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_9c03e80f","line":508,"updated":"2016-07-12 12:06:24.000000000","message":"remove the extra line.","commit_id":"b0b490629bfd579221111ca928eb36e92e630e73"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"c74a8557c8106fd73bc5ed72c5743fa365d1c041","unresolved":false,"context_lines":[{"line_number":529,"context_line":"        \"\"\"Get reference object of volume specified by name."},{"line_number":530,"context_line":""},{"line_number":531,"context_line":"        :returns: dict representation of Logical Volume if exists"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"        \"\"\""},{"line_number":534,"context_line":"        ref_list \u003d self._get_volumes()"},{"line_number":535,"context_line":"        for r in ref_list:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_171d1362","line":532,"updated":"2016-07-12 12:06:24.000000000","message":"Same","commit_id":"b0b490629bfd579221111ca928eb36e92e630e73"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4f939723096c9ad10763edc234511d60fd5f0c80","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        src_volume \u003d mount_point + r\"/\" + vol_name"},{"line_number":548,"context_line":"        dest_volume \u003d src_volume.replace(vol_name, new_name)"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"        try:"},{"line_number":551,"context_line":"            self._execute(\u0027mv\u0027, src_volume, dest_volume,"},{"line_number":552,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":553,"context_line":"        except putils.ProcessExecutionError as err:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_4caadb1b","line":550,"updated":"2016-07-14 20:28:13.000000000","message":"Please, use save_and_reraise_exception helper here","commit_id":"5971a0023fa9654f1c87c151096b821f206992bd"},{"author":{"_account_id":17718,"name":"Lallana","email":"gaozhiqiang2@huawei.com","username":"Lallana"},"change_message_id":"5cf0d9d62804231cd1c94485fa4f88b56c8bafed","unresolved":false,"context_lines":[{"line_number":513,"context_line":"            raise exception.NfsNoSharesMounted()"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        mount_point \u003d self._get_mount_point_for_share(self._mounted_shares[0])"},{"line_number":516,"context_line":"        du, _ \u003d self._execute(\u0027du\u0027, r\"-ab\", mount_point,"},{"line_number":517,"context_line":"                              run_as_root\u003drun_as_root)"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        if du is not None:"}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_79a2b7fd","line":516,"range":{"start_line":516,"start_character":8,"end_line":516,"end_character":10},"updated":"2016-07-26 01:51:25.000000000","message":"I can\u0027t get the meaning of this variable from it\u0027s name. Maybe you should change it to a meaningful one.","commit_id":"42c6cdee99d64ce0c4a2e3188cc471beda6aa864"},{"author":{"_account_id":17718,"name":"Lallana","email":"gaozhiqiang2@huawei.com","username":"Lallana"},"change_message_id":"5cf0d9d62804231cd1c94485fa4f88b56c8bafed","unresolved":false,"context_lines":[{"line_number":530,"context_line":"        :returns: dict representation of Logical Volume if exists"},{"line_number":531,"context_line":"        \"\"\""},{"line_number":532,"context_line":"        ref_list \u003d self._get_volumes()"},{"line_number":533,"context_line":"        for r in ref_list:"},{"line_number":534,"context_line":"            if r[\"name\"] \u003d\u003d name:"},{"line_number":535,"context_line":"                return r"},{"line_number":536,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_39831f58","line":533,"range":{"start_line":533,"start_character":12,"end_line":533,"end_character":13},"updated":"2016-07-26 01:51:25.000000000","message":"Ditto.","commit_id":"42c6cdee99d64ce0c4a2e3188cc471beda6aa864"}]}
