)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"0953fdb842bee42e8973910e7fbf6c85f4ac938a","unresolved":false,"context_lines":[{"line_number":22,"context_line":"4. HBSDHORCMFC and HBSDHORCMiSCSI classes inherit HBSDHORCM."},{"line_number":23,"context_line":"5. HBSDSNM2FC and HBSDSNM2iSCSI classes inherit HBSDSNM2."},{"line_number":24,"context_line":"   These classes have characteristic methods respectively."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I5cab11a2b2d272503b8a57793dd86477e787eedb"},{"line_number":27,"context_line":"Implements: blueprint refactoring-hbsd-driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a740942_fda7ba4d","line":25,"updated":"2015-12-11 20:00:11.000000000","message":"This needs a DocImpact tag since you are modifying configuration options.","commit_id":"cb9e48efb9aca12ea7f0c40f880e94ca3210c83c"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"65a151aff75fdf32319316cf87118885ff4877a2","unresolved":false,"context_lines":[{"line_number":10,"context_line":"interfaces, named HORCM and SNM2. In other words, four kinds of drivers"},{"line_number":11,"context_line":"are performed on our code, HORCMFC, HORCMiSCSI, SNM2FC and SNM2iSCSI."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Because these drivers commonly use the our code, I found that it is"},{"line_number":14,"context_line":"hard to maintain the present code. So I refactor our code drastically."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The new relationship of our code are following:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3a7e1126_497558c9","line":13,"range":{"start_line":13,"start_character":22,"end_line":13,"end_character":47},"updated":"2015-12-18 12:09:31.000000000","message":"...commonly use our code,","commit_id":"783336f9edc756311255ee1eeb210f8a5a6c779f"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"65a151aff75fdf32319316cf87118885ff4877a2","unresolved":false,"context_lines":[{"line_number":16,"context_line":"The new relationship of our code are following:"},{"line_number":17,"context_line":"1. The most upper classes are HBSDFC and HBSDiSCSI. These classes"},{"line_number":18,"context_line":"   inherit VolumeDriver class. These classes have HBSDCOMMON."},{"line_number":19,"context_line":"2. HBSDCOMMON class have common method with HORCM and SNM2."},{"line_number":20,"context_line":"3. HBSDHORCM and HBSDSNM2 classes inherit HBSDCOMMON."},{"line_number":21,"context_line":"   HBSDHORCM class have the characteristic methods for HORCM."},{"line_number":22,"context_line":"4. HBSDHORCMFC and HBSDHORCMiSCSI classes inherit HBSDHORCM."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3a7e1126_2c3b3ad3","line":19,"range":{"start_line":19,"start_character":32,"end_line":19,"end_character":38},"updated":"2015-12-18 12:09:31.000000000","message":"methods","commit_id":"783336f9edc756311255ee1eeb210f8a5a6c779f"},{"author":{"_account_id":17444,"name":"Jay.Shen","email":"shenhong09@huawei.com","username":"Jay.Shen"},"change_message_id":"6bc82d964fde883983a644e85843dfa39a152c41","unresolved":false,"context_lines":[{"line_number":16,"context_line":"The new relationship of our code are following:"},{"line_number":17,"context_line":"1. The most upper classes are HBSDFC and HBSDiSCSI. These classes"},{"line_number":18,"context_line":"   inherit VolumeDriver class. These classes have HBSDCOMMON."},{"line_number":19,"context_line":"2. HBSDCOMMON class have common methods with HORCM and SNM2."},{"line_number":20,"context_line":"3. HBSDHORCM and HBSDSNM2 classes inherit HBSDCOMMON."},{"line_number":21,"context_line":"   HBSDHORCM class have the characteristic methods for HORCM."},{"line_number":22,"context_line":"4. HBSDHORCMFC and HBSDHORCMiSCSI classes inherit HBSDHORCM."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"fa69d971_79ca9370","line":19,"range":{"start_line":19,"start_character":20,"end_line":19,"end_character":24},"updated":"2016-01-07 12:06:15.000000000","message":"have/has","commit_id":"b841c688f7f2505954cd772989e9ab7de0d2c2a3"}],"cinder/exception.py":[{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"22811fb7f7f67dc07951043c915b02af7b0f0a59","unresolved":false,"context_lines":[{"line_number":903,"context_line":"    message \u003d _(\"Volume %(volume_name)s is busy.\")"},{"line_number":904,"context_line":""},{"line_number":905,"context_line":""},{"line_number":906,"context_line":"class HBSDSnapshotIsBusy(SnapshotIsBusy):"},{"line_number":907,"context_line":"    message \u003d _(\"Snapshot %(snapshot_name)s is busy.\")"},{"line_number":908,"context_line":""},{"line_number":909,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_29bdb401","line":906,"range":{"start_line":906,"start_character":6,"end_line":906,"end_character":24},"updated":"2016-01-07 09:11:21.000000000","message":"I found that have define an Exception Class SnapshotIsBusy,Why do you want to define a similar class，In my opinion,you can define you own error msg use SnapshotIsBusy","commit_id":"8d90f32576009d3e0e84f6778fb8ba01cfaacf7b"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"22811fb7f7f67dc07951043c915b02af7b0f0a59","unresolved":false,"context_lines":[{"line_number":907,"context_line":"    message \u003d _(\"Snapshot %(snapshot_name)s is busy.\")"},{"line_number":908,"context_line":""},{"line_number":909,"context_line":""},{"line_number":910,"context_line":"class HBSDNotSupported(HBSDError):"},{"line_number":911,"context_line":"    message \u003d _(\"The function on the storage is not supported.\")"},{"line_number":912,"context_line":""},{"line_number":913,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_494fc833","line":910,"range":{"start_line":910,"start_character":6,"end_line":910,"end_character":22},"updated":"2016-01-07 09:11:21.000000000","message":"just as above","commit_id":"8d90f32576009d3e0e84f6778fb8ba01cfaacf7b"}],"cinder/opts.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"65a151aff75fdf32319316cf87118885ff4877a2","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                cinder_volume_drivers_hitachi_hnasiscsi.iSCSI_OPTS,"},{"line_number":280,"context_line":"                cinder_volume_drivers_rbd.rbd_opts,"},{"line_number":281,"context_line":"                cinder_volume_drivers_tintri.tintri_opts,"},{"line_number":282,"context_line":"                cinder_volume_drivers_hitachi_hbsdhorcm._HORCM_VOLUME_OPTS,"},{"line_number":283,"context_line":"                cinder_backup_manager.backup_manager_opts,"},{"line_number":284,"context_line":"                cinder_volume_drivers_hitachi_hbsdfc.FC_OPTS,"},{"line_number":285,"context_line":"                cinder_quota.quota_opts,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a7e1126_8cb58ece","line":282,"range":{"start_line":282,"start_character":56,"end_line":282,"end_character":58},"updated":"2015-12-18 12:09:31.000000000","message":"\u0027_\u0027 should be used only for local variables.","commit_id":"783336f9edc756311255ee1eeb210f8a5a6c779f"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"22811fb7f7f67dc07951043c915b02af7b0f0a59","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                cinder_volume_drivers_violin_v6000common.violin_opts,"},{"line_number":280,"context_line":"                cinder_volume_drivers_emc_xtremio.XTREMIO_OPTS,"},{"line_number":281,"context_line":"                [cinder_api_middleware_auth.use_forwarded_for_opt],"},{"line_number":282,"context_line":"                cinder_volume_drivers_hitachi_hbsdcommon.COMMON_VOLUME_OPTS,"},{"line_number":283,"context_line":"                cinder_volume_drivers_infortrend_eonstor_ds_cli_commoncli."},{"line_number":284,"context_line":"                infortrend_esds_opts,"},{"line_number":285,"context_line":"                cinder_volume_drivers_infortrend_eonstor_ds_cli_commoncli."}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_ccb186e1","line":282,"range":{"start_line":282,"start_character":57,"end_line":282,"end_character":75},"updated":"2016-01-07 09:11:21.000000000","message":"Suggest to use lowercase unity,for this file is a public file, it looks more uniform for different configuration.","commit_id":"8d90f32576009d3e0e84f6778fb8ba01cfaacf7b"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"22811fb7f7f67dc07951043c915b02af7b0f0a59","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                cinder_volume_drivers_hitachi_hnasiscsi.iSCSI_OPTS,"},{"line_number":288,"context_line":"                cinder_volume_drivers_rbd.rbd_opts,"},{"line_number":289,"context_line":"                cinder_volume_drivers_tintri.tintri_opts,"},{"line_number":290,"context_line":"                cinder_volume_drivers_hitachi_hbsdhorcm.HORCM_VOLUME_OPTS,"},{"line_number":291,"context_line":"                cinder_backup_manager.backup_manager_opts,"},{"line_number":292,"context_line":"                cinder_volume_drivers_ibm_storwize_svc_storwizesvccommon."},{"line_number":293,"context_line":"                storwize_svc_opts,"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_0ce31eda","line":290,"range":{"start_line":290,"start_character":56,"end_line":290,"end_character":73},"updated":"2016-01-07 09:11:21.000000000","message":"the same as above","commit_id":"8d90f32576009d3e0e84f6778fb8ba01cfaacf7b"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"22811fb7f7f67dc07951043c915b02af7b0f0a59","unresolved":false,"context_lines":[{"line_number":291,"context_line":"                cinder_backup_manager.backup_manager_opts,"},{"line_number":292,"context_line":"                cinder_volume_drivers_ibm_storwize_svc_storwizesvccommon."},{"line_number":293,"context_line":"                storwize_svc_opts,"},{"line_number":294,"context_line":"                cinder_volume_drivers_hitachi_hbsdfc.FC_OPTS,"},{"line_number":295,"context_line":"                cinder_quota.quota_opts,"},{"line_number":296,"context_line":"                cinder_volume_drivers_huawei_huaweidriver.huawei_opts,"},{"line_number":297,"context_line":"                cinder_volume_drivers_dell_dellstoragecentercommon."}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_cce8a6b5","line":294,"range":{"start_line":294,"start_character":53,"end_line":294,"end_character":60},"updated":"2016-01-07 09:11:21.000000000","message":"the same as above","commit_id":"8d90f32576009d3e0e84f6778fb8ba01cfaacf7b"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"22811fb7f7f67dc07951043c915b02af7b0f0a59","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                cinder_volume_drivers_hpe_hpexpopts.FC_VOLUME_OPTS,"},{"line_number":312,"context_line":"                cinder_volume_drivers_hpe_hpexpopts.COMMON_VOLUME_OPTS,"},{"line_number":313,"context_line":"                cinder_volume_drivers_hpe_hpexpopts.HORCM_VOLUME_OPTS,"},{"line_number":314,"context_line":"                cinder_volume_drivers_hitachi_hbsdiscsi.ISCSI_OPTS,"},{"line_number":315,"context_line":"                cinder_volume_manager.volume_manager_opts,"},{"line_number":316,"context_line":"                cinder_volume_drivers_nexenta_nexentaedge_iscsi."},{"line_number":317,"context_line":"                nexenta_edge_opts,"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_8ccf0e55","line":314,"range":{"start_line":314,"start_character":56,"end_line":314,"end_character":66},"updated":"2016-01-07 09:11:21.000000000","message":"the same as above","commit_id":"8d90f32576009d3e0e84f6778fb8ba01cfaacf7b"}],"cinder/tests/unit/test_hitachi_hbsd_horcm_fc.py":[{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"240c1b45a52c0f798e7eae1ae4d9a9627c1818ff","unresolved":false,"context_lines":[{"line_number":904,"context_line":"    def setUp(self):"},{"line_number":905,"context_line":"        super(HBSDHORCMFCDriverTest, self).setUp()"},{"line_number":906,"context_line":""},{"line_number":907,"context_line":"        self.stubs.Set(db, \u0027volume_get\u0027, _volume_get)"},{"line_number":908,"context_line":"        self.stubs.Set(db, \u0027volume_metadata_get\u0027, _volume_metadata_get)"},{"line_number":909,"context_line":"        self.stubs.Set("},{"line_number":910,"context_line":"            db, \u0027volume_admin_metadata_get\u0027, _volume_admin_metadata_get)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_5895bc84","line":907,"updated":"2015-12-11 20:04:55.000000000","message":"We are moving away from using stubs. Please use mock() instead.","commit_id":"cb9e48efb9aca12ea7f0c40f880e94ca3210c83c"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"ff8915434f77709531ace65b188b5b4241a59fd3","unresolved":false,"context_lines":[{"line_number":1110,"context_line":""},{"line_number":1111,"context_line":"    @mock.patch.object(hbsd_utils, \u0027execute\u0027, side_effect\u003d_execute)"},{"line_number":1112,"context_line":"    def test_delete_volume_ldev_is_none(self, *args):"},{"line_number":1113,"context_line":"        self.driver.delete_volume(TEST_VOLUME_OBJ.get(\"test-volume2\"))"},{"line_number":1114,"context_line":""},{"line_number":1115,"context_line":"    @mock.patch.object(hbsd_utils, \u0027execute\u0027, side_effect\u003d_execute)"},{"line_number":1116,"context_line":"    def test_delete_volume_ldev_not_found(self, *args):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_10f962c7","line":1113,"updated":"2015-12-27 16:33:29.000000000","message":"Can you check if following got executed?\nutils.output_log(304, method\u003d\u0027delete_volume\u0027, id\u003dvolume[\u0027id\u0027])","commit_id":"f4ab5d70a9688063cd0dc44f719cf284fb902570"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"ff8915434f77709531ace65b188b5b4241a59fd3","unresolved":false,"context_lines":[{"line_number":1114,"context_line":""},{"line_number":1115,"context_line":"    @mock.patch.object(hbsd_utils, \u0027execute\u0027, side_effect\u003d_execute)"},{"line_number":1116,"context_line":"    def test_delete_volume_ldev_not_found(self, *args):"},{"line_number":1117,"context_line":"        self.driver.delete_volume(TEST_VOLUME_OBJ.get(\"test-volume3\"))"},{"line_number":1118,"context_line":""},{"line_number":1119,"context_line":"    @mock.patch.object(hbsd_utils, \u0027execute\u0027, side_effect\u003d_execute)"},{"line_number":1120,"context_line":"    def test_delete_volume_volume_is_busy(self, *args):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_903312ab","line":1117,"updated":"2015-12-27 16:33:29.000000000","message":"Is there any difference in above unit test? ldev is none vs not found? \n\nSimilarly for other similar situations of ldev being none and not found, eg. unmanage etc","commit_id":"f4ab5d70a9688063cd0dc44f719cf284fb902570"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5c9261ae0bd1163f49fb4dadfa607ba9fd3973c2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"from cinder.volume.drivers.hitachi import hbsd_utils"},{"line_number":36,"context_line":"from cinder.volume import utils as volume_utils"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"from six.moves import range"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"START_TIME \u003d 0"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa69d971_db3929f4","line":38,"updated":"2016-01-07 17:01:56.000000000","message":"six import should actually be above with the os_brick and oslo_concurrency imports.","commit_id":"43b089cb27fa86d31714ffa3e19ef2d7bbda4a8b"}],"cinder/tests/unit/test_hitachi_hbsd_horcm_iscsi.py":[{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"240c1b45a52c0f798e7eae1ae4d9a9627c1818ff","unresolved":false,"context_lines":[{"line_number":897,"context_line":"    def setUp(self):"},{"line_number":898,"context_line":"        super(HBSDHORCMISCSIDriverTest, self).setUp()"},{"line_number":899,"context_line":""},{"line_number":900,"context_line":"        self.stubs.Set(db, \u0027volume_get\u0027, _volume_get)"},{"line_number":901,"context_line":"        self.stubs.Set(db, \u0027volume_metadata_get\u0027, _volume_metadata_get)"},{"line_number":902,"context_line":"        self.stubs.Set("},{"line_number":903,"context_line":"            db, \u0027volume_admin_metadata_get\u0027, _volume_admin_metadata_get)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_188bb469","line":900,"updated":"2015-12-11 20:04:55.000000000","message":"We are moving away from using stubs. Please use mock() instead.","commit_id":"cb9e48efb9aca12ea7f0c40f880e94ca3210c83c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5c9261ae0bd1163f49fb4dadfa607ba9fd3973c2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"from cinder.volume.drivers.hitachi import hbsd_utils"},{"line_number":36,"context_line":"from cinder.volume import utils as volume_utils"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"from six.moves import range"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"START_TIME \u003d 0"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa69d971_9e94ff44","line":38,"range":{"start_line":38,"start_character":15,"end_line":38,"end_character":21},"updated":"2016-01-07 17:01:56.000000000","message":"Move up to third party import section.","commit_id":"43b089cb27fa86d31714ffa3e19ef2d7bbda4a8b"}],"cinder/tests/unit/test_hitachi_hbsd_snm2_fc.py":[{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"240c1b45a52c0f798e7eae1ae4d9a9627c1818ff","unresolved":false,"context_lines":[{"line_number":597,"context_line":"    def setUp(self):"},{"line_number":598,"context_line":"        super(HBSDSNM2FCDriverTest, self).setUp()"},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"        self.stubs.Set(db, \u0027volume_get\u0027, _volume_get)"},{"line_number":601,"context_line":"        self.stubs.Set(db, \u0027volume_metadata_get\u0027, _volume_metadata_get)"},{"line_number":602,"context_line":"        self.stubs.Set("},{"line_number":603,"context_line":"            db, \u0027volume_admin_metadata_get\u0027, _volume_admin_metadata_get)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_d8d68c4e","line":600,"updated":"2015-12-11 20:04:55.000000000","message":"We are moving away from using stubs. Please use mock() instead.","commit_id":"cb9e48efb9aca12ea7f0c40f880e94ca3210c83c"}],"cinder/tests/unit/test_hitachi_hbsd_snm2_iscsi.py":[{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"240c1b45a52c0f798e7eae1ae4d9a9627c1818ff","unresolved":false,"context_lines":[{"line_number":575,"context_line":"    def setUp(self):"},{"line_number":576,"context_line":"        super(HBSDSNM2ISCSIDriverTest, self).setUp()"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"        self.stubs.Set(db, \u0027volume_get\u0027, _volume_get)"},{"line_number":579,"context_line":"        self.stubs.Set(db, \u0027volume_metadata_get\u0027, _volume_metadata_get)"},{"line_number":580,"context_line":"        self.stubs.Set("},{"line_number":581,"context_line":"            db, \u0027volume_admin_metadata_get\u0027, _volume_admin_metadata_get)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_f8bb480d","line":578,"updated":"2015-12-11 20:04:55.000000000","message":"We are moving away from using stubs. Please use mock() instead.","commit_id":"cb9e48efb9aca12ea7f0c40f880e94ca3210c83c"}],"cinder/volume/drivers/hitachi/hbsd_common.py":[{"author":{"_account_id":9174,"name":"Seiji Aguchi","email":"seiji.aguchi.tr@hitachi.com","username":"saguchi"},"change_message_id":"80ac196a91e9d279920b3c85d7ab71dc520a3a53","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from cinder.volume.drivers.hitachi import hbsd_utils as utils"},{"line_number":30,"context_line":"from cinder.volume import utils as volume_utils"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"VERSION \u003d \u00271.4.0\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"_COPY_METHOD \u003d set([\u0027FULL\u0027, \u0027THIN\u0027])"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_fb2ff485","line":32,"updated":"2015-12-11 01:13:01.000000000","message":"I don\u0027t recommend to erase a version history.\nAnd please explain why it is 1.4.0.","commit_id":"42f797ea9c0dfa199d5432922e9e91465f4031b1"},{"author":{"_account_id":9174,"name":"Seiji Aguchi","email":"seiji.aguchi.tr@hitachi.com","username":"saguchi"},"change_message_id":"80ac196a91e9d279920b3c85d7ab71dc520a3a53","unresolved":false,"context_lines":[{"line_number":633,"context_line":"        if self.storage_info[\u0027pool_id\u0027] is None:"},{"line_number":634,"context_line":"            msg \u003d utils.output_log(640, pool\u003dself.conf.hitachi_pool)"},{"line_number":635,"context_line":"            raise exception.HBSDError(data\u003dmsg)"},{"line_number":636,"context_line":"        LOG.debug(_LI(\u0027Setting pool id: %s\u0027), self.storage_info[\u0027pool_id\u0027])"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"    def check_ports_info(self):"},{"line_number":639,"context_line":"        if (self.conf.hitachi_target_ports and"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_c01b237f","line":636,"updated":"2015-12-11 01:13:01.000000000","message":"a debug message is not transelated.\nDo not need _LI()\n\nhttp://docs.openstack.org/developer/oslo.i18n/guidelines.html#log-translation","commit_id":"42f797ea9c0dfa199d5432922e9e91465f4031b1"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"240c1b45a52c0f798e7eae1ae4d9a9627c1818ff","unresolved":false,"context_lines":[{"line_number":31,"context_line":"\"\"\""},{"line_number":32,"context_line":"    1.0.0 - Initial driver"},{"line_number":33,"context_line":"    1.1.0 - Add manage_existing/manage_existing_get_size/unmanage methods"},{"line_number":34,"context_line":"    1.2.0 - Refactor this driver"},{"line_number":35,"context_line":"\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"VERSION \u003d \u00271.2.0\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_98b6c4f7","line":34,"updated":"2015-12-11 20:04:55.000000000","message":"It would be a good idea to elaborate a little more about what is specifically being done.","commit_id":"cb9e48efb9aca12ea7f0c40f880e94ca3210c83c"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"ff8915434f77709531ace65b188b5b4241a59fd3","unresolved":false,"context_lines":[{"line_number":52,"context_line":"COMMON_VOLUME_OPTS \u003d ["},{"line_number":53,"context_line":"    cfg.StrOpt("},{"line_number":54,"context_line":"        \u0027hitachi_storage_cli\u0027,"},{"line_number":55,"context_line":"        default\u003dNone,"},{"line_number":56,"context_line":"        choices\u003d[\u0027SNM2\u0027, \u0027HORCM\u0027],"},{"line_number":57,"context_line":"        help\u003d\u0027Type of storage command line interface\u0027),"},{"line_number":58,"context_line":"    cfg.StrOpt("}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_d0b43a36","line":55,"updated":"2015-12-27 16:33:29.000000000","message":"No need to specify default\u003dNone","commit_id":"f4ab5d70a9688063cd0dc44f719cf284fb902570"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"ff8915434f77709531ace65b188b5b4241a59fd3","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        return svol, ldev_type"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def create_pair_on_storage(self, pvol, svol, is_thin):"},{"line_number":328,"context_line":"        raise NotImplementedError()"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def _delete_ldev(self, ldev):"},{"line_number":331,"context_line":"        self.delete_pair(ldev)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_b08e4e77","line":328,"updated":"2015-12-27 16:33:29.000000000","message":"HBSDNotImplementedError?","commit_id":"f4ab5d70a9688063cd0dc44f719cf284fb902570"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"ff8915434f77709531ace65b188b5b4241a59fd3","unresolved":false,"context_lines":[{"line_number":342,"context_line":"                pair_info[\u0027pvol\u0027], pair_info[\u0027svol_info\u0027][0])"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    def get_pair_info(self, ldev):"},{"line_number":345,"context_line":"        raise NotImplementedError()"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def delete_pair_based_on_pvol(self, pair_info, all_split):"},{"line_number":348,"context_line":"        svols \u003d []"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_d08bda66","line":345,"updated":"2015-12-27 16:33:29.000000000","message":"HBSDNotImplementedError","commit_id":"f4ab5d70a9688063cd0dc44f719cf284fb902570"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"ff8915434f77709531ace65b188b5b4241a59fd3","unresolved":false,"context_lines":[{"line_number":359,"context_line":"            raise exception.HBSDBusy(message\u003dmsg)"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    def delete_pair_from_storage(self, pvol, svol, is_thin):"},{"line_number":362,"context_line":"        raise NotImplementedError()"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    def delete_pair_based_on_svol(self, pvol, svol_info):"},{"line_number":365,"context_line":"        if not svol_info[\u0027is_psus\u0027]:"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_70eb0614","line":362,"updated":"2015-12-27 16:33:29.000000000","message":"HBSDNotImplementedError","commit_id":"f4ab5d70a9688063cd0dc44f719cf284fb902570"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"ff8915434f77709531ace65b188b5b4241a59fd3","unresolved":false,"context_lines":[{"line_number":369,"context_line":"            pvol, svol_info[\u0027ldev\u0027], svol_info[\u0027is_thin\u0027])"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def delete_ldev_from_storage(self, ldev):"},{"line_number":372,"context_line":"        raise NotImplementedError()"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":375,"context_line":"        ldev \u003d utils.get_ldev(src_vref)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_90f0f2ff","line":372,"updated":"2015-12-27 16:33:29.000000000","message":"HBSDNotImplementedError","commit_id":"f4ab5d70a9688063cd0dc44f719cf284fb902570"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"55c005c0a6ae8a997db2ed7b8e8668b33a621ed6","unresolved":false,"context_lines":[{"line_number":412,"context_line":"            msg \u003d utils.output_log(624, type\u003d\u0027volume\u0027, id\u003dsrc_vref[\u0027id\u0027])"},{"line_number":413,"context_line":"            raise exception.HBSDError(data\u003dmsg)"},{"line_number":414,"context_line":"        size \u003d snapshot[\u0027volume_size\u0027]"},{"line_number":415,"context_line":"        metadata \u003d utils.get_volume_metadata(src_vref)"},{"line_number":416,"context_line":"        new_ldev, ldev_type \u003d self._copy_ldev(ldev, size, metadata)"},{"line_number":417,"context_line":"        if not self.conf.hitachi_driver_cert_mode:"},{"line_number":418,"context_line":"            self.db.snapshot_metadata_update("}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_55a83cdb","line":415,"range":{"start_line":415,"start_character":19,"end_line":415,"end_character":24},"updated":"2015-12-27 13:04:28.000000000","message":"Why no just use\nmetadata \u003d volume.get(\u0027metadata\u0027, {})\nlike line 385?","commit_id":"f4ab5d70a9688063cd0dc44f719cf284fb902570"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"55c005c0a6ae8a997db2ed7b8e8668b33a621ed6","unresolved":false,"context_lines":[{"line_number":444,"context_line":"        return self._stats"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"    def _update_volume_stats(self):"},{"line_number":447,"context_line":"        d \u003d {}"},{"line_number":448,"context_line":"        backend_name \u003d self.conf.safe_get(\u0027volume_backend_name\u0027)"},{"line_number":449,"context_line":"        d[\u0027volume_backend_name\u0027] \u003d ("},{"line_number":450,"context_line":"            backend_name or self.driver_info[\u0027volume_backend_name\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_9589c477","line":447,"range":{"start_line":447,"start_character":11,"end_line":447,"end_character":12},"updated":"2015-12-27 13:04:28.000000000","message":"\u0027d\u0027 is not a good var name, should we make it more meaningful, like \u0027data\u0027?","commit_id":"f4ab5d70a9688063cd0dc44f719cf284fb902570"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"55c005c0a6ae8a997db2ed7b8e8668b33a621ed6","unresolved":false,"context_lines":[{"line_number":741,"context_line":"    def get_properties(self, volume, targets, target_lun, connector):"},{"line_number":742,"context_line":"        multipath \u003d connector.get(\u0027multipath\u0027, False)"},{"line_number":743,"context_line":"        if self.storage_info[\u0027protocol\u0027] \u003d\u003d \u0027FC\u0027:"},{"line_number":744,"context_line":"            d \u003d self.get_properties_fc(targets)"},{"line_number":745,"context_line":"        elif self.storage_info[\u0027protocol\u0027] \u003d\u003d \u0027iSCSI\u0027:"},{"line_number":746,"context_line":"            d \u003d self.get_properties_iscsi(targets, multipath)"},{"line_number":747,"context_line":"        d[\u0027target_discovered\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_75d2185e","line":744,"range":{"start_line":744,"start_character":12,"end_line":744,"end_character":13},"updated":"2015-12-27 13:04:28.000000000","message":"\u0027d\u0027 again.","commit_id":"f4ab5d70a9688063cd0dc44f719cf284fb902570"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5c9261ae0bd1163f49fb4dadfa607ba9fd3973c2","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        default\u003dFalse,"},{"line_number":100,"context_line":"        help\u003d\u0027Request for creating host group or iSCSI target\u0027),"},{"line_number":101,"context_line":"    cfg.BoolOpt("},{"line_number":102,"context_line":"        \u0027hitachi_driver_cert_mode\u0027,"},{"line_number":103,"context_line":"        default\u003dFalse,"},{"line_number":104,"context_line":"        secret\u003dTrue,"},{"line_number":105,"context_line":"        help\u003d\u0027Driver cert mode\u0027),"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa69d971_be222300","line":102,"updated":"2016-01-07 17:01:56.000000000","message":"Why is this needed?","commit_id":"43b089cb27fa86d31714ffa3e19ef2d7bbda4a8b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5c9261ae0bd1163f49fb4dadfa607ba9fd3973c2","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        try:"},{"line_number":294,"context_line":"            connector.disconnect_volume("},{"line_number":295,"context_line":"                attach_info[\u0027conn\u0027][\u0027data\u0027], attach_info[\u0027device\u0027])"},{"line_number":296,"context_line":"        except Exception as ex:"},{"line_number":297,"context_line":"            utils.output_log(329, ldev\u003dldev, reason\u003dsix.text_type(ex))"},{"line_number":298,"context_line":"        self._terminate_connection(volume, properties)"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa69d971_1e624f17","line":296,"updated":"2016-01-07 17:01:56.000000000","message":"Can we catch a more specific exception on these?","commit_id":"43b089cb27fa86d31714ffa3e19ef2d7bbda4a8b"}],"cinder/volume/drivers/hitachi/hbsd_fc.py":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"0953fdb842bee42e8973910e7fbf6c85f4ac938a","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"CONF \u003d cfg.CONF"},{"line_number":24,"context_line":"CONF.register_opts(common.FC_OPTS)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class HBSDFCDriver(driver.FibreChannelDriver):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_f848285e","line":24,"updated":"2015-12-11 20:00:11.000000000","message":"Just a suggestion, might want to move the opts you are registering here from common since they are specific to fc and the same for other options not being used in multiple places.","commit_id":"cb9e48efb9aca12ea7f0c40f880e94ca3210c83c"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"240c1b45a52c0f798e7eae1ae4d9a9627c1818ff","unresolved":false,"context_lines":[{"line_number":23,"context_line":"CONF \u003d cfg.CONF"},{"line_number":24,"context_line":"CONF.register_opts(common.FC_OPTS)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class HBSDFCDriver(driver.FibreChannelDriver):"},{"line_number":28,"context_line":"    \"\"\"Fibre channel Class for hbsd drivers.\"\"\""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_58d05cf6","line":26,"updated":"2015-12-11 20:04:55.000000000","message":"Might be a good idea to add a version history here, similar to hbsd_common.py.","commit_id":"cb9e48efb9aca12ea7f0c40f880e94ca3210c83c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5c9261ae0bd1163f49fb4dadfa607ba9fd3973c2","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    def remove_export(self, context, volume):"},{"line_number":136,"context_line":"        pass"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":139,"context_line":"        return self.common.initialize_connection(volume, connector)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa69d971_a1c3e289","line":138,"updated":"2016-01-07 17:01:56.000000000","message":"Initialize and terminate need FCZM decorators.","commit_id":"43b089cb27fa86d31714ffa3e19ef2d7bbda4a8b"}],"cinder/volume/drivers/hitachi/hbsd_horcm.py":[{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"ff8915434f77709531ace65b188b5b4241a59fd3","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        help\u003d\u0027Instance numbers for HORCM\u0027),"},{"line_number":203,"context_line":"    cfg.StrOpt("},{"line_number":204,"context_line":"        \u0027hitachi_horcm_user\u0027,"},{"line_number":205,"context_line":"        default\u003dNone,"},{"line_number":206,"context_line":"        help\u003d\u0027Username of storage system for HORCM\u0027),"},{"line_number":207,"context_line":"    cfg.StrOpt("},{"line_number":208,"context_line":"        \u0027hitachi_horcm_password\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a7b0d38_b0e5ee38","line":205,"updated":"2015-12-27 16:33:29.000000000","message":"not needed","commit_id":"f4ab5d70a9688063cd0dc44f719cf284fb902570"},{"author":{"_account_id":17444,"name":"Jay.Shen","email":"shenhong09@huawei.com","username":"Jay.Shen"},"change_message_id":"6bc82d964fde883983a644e85843dfa39a152c41","unresolved":false,"context_lines":[{"line_number":855,"context_line":"    def _find_lun(self, ldev, port, gid):"},{"line_number":856,"context_line":"        result \u003d self.run_raidcom("},{"line_number":857,"context_line":"            \u0027get\u0027, \u0027lun\u0027, \u0027-port\u0027, \u0027-\u0027.join([port, gid]))"},{"line_number":858,"context_line":"        m \u003d re.search("},{"line_number":859,"context_line":"            r\u0027^%(port)s +%(gid)s +\\S+ +(?P\u003clun\u003e\\d+) +1 +%(ldev)s \u0027 % {"},{"line_number":860,"context_line":"                \u0027port\u0027: port, \u0027gid\u0027: gid, \u0027ldev\u0027: ldev}, result[1], re.M)"},{"line_number":861,"context_line":"        if m:"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa69d971_f992034b","line":858,"range":{"start_line":858,"start_character":8,"end_line":858,"end_character":9},"updated":"2016-01-07 12:06:15.000000000","message":"\u0027m\u0027 is not a good var name, should we make it more meaningful","commit_id":"b841c688f7f2505954cd772989e9ab7de0d2c2a3"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5c9261ae0bd1163f49fb4dadfa607ba9fd3973c2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"from cinder.volume.drivers.hitachi import hbsd_common as common"},{"line_number":35,"context_line":"from cinder.volume.drivers.hitachi import hbsd_utils as utils"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"from six.moves import range"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"_GETSTORAGEARRAY_ONCE \u003d 1000"},{"line_number":40,"context_line":"_LU_PATH_DEFINED \u003d \u0027SSB\u003d0xB958,0x015A\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa69d971_c147f61b","line":37,"updated":"2016-01-07 17:01:56.000000000","message":"Move up to third party import section.","commit_id":"43b089cb27fa86d31714ffa3e19ef2d7bbda4a8b"}],"cinder/volume/drivers/hitachi/hbsd_horcm_iscsi.py":[{"author":{"_account_id":17444,"name":"Jay.Shen","email":"shenhong09@huawei.com","username":"Jay.Shen"},"change_message_id":"6bc82d964fde883983a644e85843dfa39a152c41","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"                if (port, gid) not in self.storage_info[\u0027iqns\u0027]:"},{"line_number":139,"context_line":"                    result \u003d self.run_raidcom(\u0027get\u0027, \u0027host_grp\u0027, \u0027-port\u0027, port)"},{"line_number":140,"context_line":"                    m \u003d iscsi_target_pattern.search(result[1])"},{"line_number":141,"context_line":"                    if m:"},{"line_number":142,"context_line":"                        self.storage_info[\u0027iqns\u0027][(port, gid)] \u003d m.group(\u0027iqn\u0027)"},{"line_number":143,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa69d971_39a97b7c","line":140,"range":{"start_line":140,"start_character":0,"end_line":140,"end_character":20},"updated":"2016-01-07 12:06:15.000000000","message":"\u0027m\u0027 is not a good var name, should we make it more meaningful","commit_id":"b841c688f7f2505954cd772989e9ab7de0d2c2a3"},{"author":{"_account_id":17444,"name":"Jay.Shen","email":"shenhong09@huawei.com","username":"Jay.Shen"},"change_message_id":"6bc82d964fde883983a644e85843dfa39a152c41","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            if target not in self.storage_info[\u0027iqns\u0027]:"},{"line_number":171,"context_line":"                port, gid \u003d target"},{"line_number":172,"context_line":"                result \u003d self.run_raidcom(\u0027get\u0027, \u0027host_grp\u0027, \u0027-port\u0027, port)"},{"line_number":173,"context_line":"                m \u003d re.search("},{"line_number":174,"context_line":"                    r\"^CL\\w-\\w+ +%s +\\S+ +(?P\u003ciqn\u003e\\S+) +\\w+ +\\w +\\d+ \" % gid,"},{"line_number":175,"context_line":"                    result[1], re.M)"},{"line_number":176,"context_line":"                if not m:"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa69d971_f9b9a3cc","line":173,"range":{"start_line":173,"start_character":16,"end_line":173,"end_character":17},"updated":"2016-01-07 12:06:15.000000000","message":"\u0027m\u0027 is not a good var name, should we make it more meaningful","commit_id":"b841c688f7f2505954cd772989e9ab7de0d2c2a3"}],"cinder/volume/drivers/hitachi/hbsd_iscsi.py":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"0953fdb842bee42e8973910e7fbf6c85f4ac938a","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"CONF \u003d cfg.CONF"},{"line_number":24,"context_line":"CONF.register_opts(common.ISCSI_OPTS)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class HBSDISCSIDriver(driver.ISCSIDriver):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_98cc84bc","line":24,"updated":"2015-12-11 20:00:11.000000000","message":"Same comment here as with the fc opts.","commit_id":"cb9e48efb9aca12ea7f0c40f880e94ca3210c83c"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"240c1b45a52c0f798e7eae1ae4d9a9627c1818ff","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"CONF \u003d cfg.CONF"},{"line_number":24,"context_line":"CONF.register_opts(common.ISCSI_OPTS)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class HBSDISCSIDriver(driver.ISCSIDriver):"},{"line_number":28,"context_line":"    \"\"\"iSCSI Class for hbsd driver.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a740942_18edf4b6","line":25,"updated":"2015-12-11 20:04:55.000000000","message":"Might be a good idea to add a version history here, similar to hbsd_common.py.","commit_id":"cb9e48efb9aca12ea7f0c40f880e94ca3210c83c"}],"cinder/volume/drivers/hitachi/hbsd_utils.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5c9261ae0bd1163f49fb4dadfa607ba9fd3973c2","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from cinder.i18n import _"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"from six.moves import range"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"_DRIVER_DIR \u003d \u0027cinder.volume.drivers.hitachi\u0027"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa69d971_e1a9da91","line":37,"updated":"2016-01-07 17:01:56.000000000","message":"Move above cinder imports.","commit_id":"43b089cb27fa86d31714ffa3e19ef2d7bbda4a8b"}],"releasenotes/notes/refactoring-hbsd-driver-c8654b1f17e970c7.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5c9261ae0bd1163f49fb4dadfa607ba9fd3973c2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Refactor Hitachi Block Storage Driver."},{"line_number":4,"context_line":"upgrade:"},{"line_number":5,"context_line":"  - Hitachi Block Storage Drivers is refactored for easy maintenance."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"fa69d971_619e4a65","line":3,"updated":"2016-01-07 17:01:56.000000000","message":"Please remove this prelude section.","commit_id":"43b089cb27fa86d31714ffa3e19ef2d7bbda4a8b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5c9261ae0bd1163f49fb4dadfa607ba9fd3973c2","unresolved":false,"context_lines":[{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Refactor Hitachi Block Storage Driver."},{"line_number":4,"context_line":"upgrade:"},{"line_number":5,"context_line":"  - Hitachi Block Storage Drivers is refactored for easy maintenance."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"fa69d971_019d0e59","line":5,"updated":"2016-01-07 17:01:56.000000000","message":"Actually, none of this is relevant really to the end user. This is an internal code thing and doesn\u0027t (or shouldn\u0027t) impact the end user. So please remove this release note completely.\n\nUnless there are config option changes. In that case, just call out those changes a deployer would need to make when doing an upgrade.","commit_id":"43b089cb27fa86d31714ffa3e19ef2d7bbda4a8b"}]}
