)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bd0708d4b3a328602a98fe15f00fae5315c91d9c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Johnny Chou \u003cjohnny800503.work@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-07 14:52:11 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Infortrend - Add MPIO support for iSCSI."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Refactor initialize_connection for iSCSI."},{"line_number":10,"context_line":"bug/1481968 is also solved:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a629dbe_8f489b2f","line":7,"range":{"start_line":7,"start_character":39,"end_line":7,"end_character":40},"updated":"2016-11-07 15:01:32.000000000","message":"nit: No period at the end of the summary line.","commit_id":"8d313452a7dc84be7b0e71d5e3a3e7dfd8b734ac"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"4d4db0514155376e9fce04ad5f164e16ab27618d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Johnny Chou \u003cjohnny800503.work@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-07 14:52:11 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Infortrend - Add MPIO support for iSCSI."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Refactor initialize_connection for iSCSI."},{"line_number":10,"context_line":"bug/1481968 is also solved:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a629dbe_35d50743","line":7,"range":{"start_line":7,"start_character":39,"end_line":7,"end_character":40},"in_reply_to":"9a629dbe_8f489b2f","updated":"2016-11-08 03:22:37.000000000","message":"Done","commit_id":"8d313452a7dc84be7b0e71d5e3a3e7dfd8b734ac"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bd0708d4b3a328602a98fe15f00fae5315c91d9c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Infortrend - Add MPIO support for iSCSI."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Refactor initialize_connection for iSCSI."},{"line_number":10,"context_line":"bug/1481968 is also solved:"},{"line_number":11,"context_line":"  We now check before creating maps."},{"line_number":12,"context_line":"  If already mapped, return the existing mapping info."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a629dbe_8f6fbb91","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":11},"updated":"2016-11-07 15:01:32.000000000","message":"If this resolves the bug you should have the line:\n\nCloses-bug: #1481968\n\nThat will associate the change to the bug and close it when the patch gets merged.","commit_id":"8d313452a7dc84be7b0e71d5e3a3e7dfd8b734ac"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"4d4db0514155376e9fce04ad5f164e16ab27618d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Infortrend - Add MPIO support for iSCSI."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Refactor initialize_connection for iSCSI."},{"line_number":10,"context_line":"bug/1481968 is also solved:"},{"line_number":11,"context_line":"  We now check before creating maps."},{"line_number":12,"context_line":"  If already mapped, return the existing mapping info."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a629dbe_55ca7ba2","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":11},"in_reply_to":"9a629dbe_8f6fbb91","updated":"2016-11-08 03:22:37.000000000","message":"Done","commit_id":"8d313452a7dc84be7b0e71d5e3a3e7dfd8b734ac"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"b4f9b837bfca1c18e3d619ef01119af1cd3b4ab9","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"iSCSI supports both MPIO and MCS now."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Refactor initialize and terminate connection and fix for Nova live migration."},{"line_number":12,"context_line":"- We now check before creating and deleting maps."},{"line_number":13,"context_line":"- If already mapped, return the existing mapping info."},{"line_number":14,"context_line":"- Delete map for specific host."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5a74a57a_5c9d2c58","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":77},"updated":"2016-11-24 09:12:00.000000000","message":"This line exceeds max length","commit_id":"b584ea189e5803e8d5b489c4e23a0770c4583f31"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"781ef9f063875bc72d8d3fdcaf3229a79771734d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"iSCSI supports both MPIO and MCS now."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Refactor initialize and terminate connection and fix for Nova live migration."},{"line_number":12,"context_line":"- We now check before creating and deleting maps."},{"line_number":13,"context_line":"- If already mapped, return the existing mapping info."},{"line_number":14,"context_line":"- Delete map for specific host."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5a74a57a_3edda40e","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":77},"in_reply_to":"5a74a57a_5c9d2c58","updated":"2016-11-25 03:38:01.000000000","message":"Done","commit_id":"b584ea189e5803e8d5b489c4e23a0770c4583f31"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"eb0cc8c97af5077ed4ba644b9370f931ecc1ad98","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Enhance Infortrend driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Features added:"},{"line_number":10,"context_line":"- Protocol iSCSI supports both MPIO and MCS now."},{"line_number":11,"context_line":"- Improve Infortrend driver performance."},{"line_number":12,"context_line":"- Enhance extraspecs usage and refactor retype."},{"line_number":13,"context_line":"- Support for list manageable volume"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"ff0f0b1f_8904d04b","line":10,"updated":"2017-05-22 07:53:30.000000000","message":"Please, implement each feature and make each bugfix in a separate patch. We can\u0027t do good reviews for patches like this: +3469, -1320","commit_id":"1fe6230ee02877d7f783477c75bfc7fcf88e915d"}],"cinder/volume/drivers/infortrend/infortrend_fc_cli.py":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"b4f9b837bfca1c18e3d619ef01119af1cd3b4ab9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        1.0.0 - Initial driver"},{"line_number":37,"context_line":"        1.0.1 - Support DS4000"},{"line_number":38,"context_line":"        1.0.2 - Support GS Series"},{"line_number":39,"context_line":"        1.0.3 - Add iSCSI MPIO support"},{"line_number":40,"context_line":"        1.0.4 - Fix Nova live migration bugs. #1481968"},{"line_number":41,"context_line":"    \"\"\""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_5c5c4ced","line":39,"range":{"start_line":39,"start_character":7,"end_line":39,"end_character":38},"updated":"2016-11-24 09:12:00.000000000","message":"why add the iSCSI MPIO support in FC driver?","commit_id":"b584ea189e5803e8d5b489c4e23a0770c4583f31"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"781ef9f063875bc72d8d3fdcaf3229a79771734d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        1.0.0 - Initial driver"},{"line_number":37,"context_line":"        1.0.1 - Support DS4000"},{"line_number":38,"context_line":"        1.0.2 - Support GS Series"},{"line_number":39,"context_line":"        1.0.3 - Add iSCSI MPIO support"},{"line_number":40,"context_line":"        1.0.4 - Fix Nova live migration bugs. #1481968"},{"line_number":41,"context_line":"    \"\"\""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_f94c2644","line":39,"range":{"start_line":39,"start_character":7,"end_line":39,"end_character":38},"in_reply_to":"5a74a57a_5c5c4ced","updated":"2016-11-25 03:38:01.000000000","message":"Some common methods(in common_cli.py) used by both protocol are changed. We think it\u0027s easier to manage our driver version, and we also read VERSION from there.","commit_id":"b584ea189e5803e8d5b489c4e23a0770c4583f31"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"623edc2c9efc12be06fe07aa28e1dc2a463b407a","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"@interface.volumedriver"},{"line_number":31,"context_line":"class InfortrendCLIFCDriver(driver.FibreChannelDriver):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":34,"context_line":"    CI_WIKI_NAME \u003d \"Infortrend_Storage_CI\""},{"line_number":35,"context_line":"    VERSION \u003d common_cli.InfortrendCommon.VERSION"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a3905b3_17c3178a","line":32,"updated":"2017-01-23 20:32:08.000000000","message":"Is there a reason you are removing the docstring for the driver? That is generally useful information to have.","commit_id":"2c867f9b2b371a88b594391663b04443b421ce11"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"9eed6bb3b37fed2bf1d271aa690f866df6582e85","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"@interface.volumedriver"},{"line_number":31,"context_line":"class InfortrendCLIFCDriver(driver.FibreChannelDriver):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":34,"context_line":"    CI_WIKI_NAME \u003d \"Infortrend_Storage_CI\""},{"line_number":35,"context_line":"    VERSION \u003d common_cli.InfortrendCommon.VERSION"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a3905b3_2067d9b7","line":32,"in_reply_to":"5a3905b3_17c3178a","updated":"2017-01-24 05:59:51.000000000","message":"Both the fc and iscsi drivers lead to the common_cli, so I think putting the version history only there might be more suitable.\n\nIf isn\u0027t, I can copy them back.","commit_id":"2c867f9b2b371a88b594391663b04443b421ce11"}],"cinder/volume/drivers/infortrend/raidcmd_cli/common_cli.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bd0708d4b3a328602a98fe15f00fae5315c91d9c","unresolved":false,"context_lines":[{"line_number":602,"context_line":"                    rc, out \u003d self._execute(\u0027CreateMap\u0027, *commands)"},{"line_number":603,"context_line":"                    if rc !\u003d 0:"},{"line_number":604,"context_line":"                        msg \u003d _(\u0027Volume [%(part_id)s] create map failed, \u0027"},{"line_number":605,"context_line":"                                \u0027Ch: [%(Ch)s] ID:[%(tid)s] LUN: [%(lun)s].\u0027), {"},{"line_number":606,"context_line":"                                    \u0027part_id\u0027: part_id, \u0027Ch\u0027: channel_id,"},{"line_number":607,"context_line":"                                    \u0027tid\u0027: target_id, \u0027lun\u0027: lun_id}"},{"line_number":608,"context_line":"                        LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_6f7c2721","line":605,"range":{"start_line":605,"start_character":76,"end_line":605,"end_character":77},"updated":"2016-11-07 15:01:32.000000000","message":"Need to use % here to format the string immediately.","commit_id":"8d313452a7dc84be7b0e71d5e3a3e7dfd8b734ac"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"4d4db0514155376e9fce04ad5f164e16ab27618d","unresolved":false,"context_lines":[{"line_number":602,"context_line":"                    rc, out \u003d self._execute(\u0027CreateMap\u0027, *commands)"},{"line_number":603,"context_line":"                    if rc !\u003d 0:"},{"line_number":604,"context_line":"                        msg \u003d _(\u0027Volume [%(part_id)s] create map failed, \u0027"},{"line_number":605,"context_line":"                                \u0027Ch: [%(Ch)s] ID:[%(tid)s] LUN: [%(lun)s].\u0027), {"},{"line_number":606,"context_line":"                                    \u0027part_id\u0027: part_id, \u0027Ch\u0027: channel_id,"},{"line_number":607,"context_line":"                                    \u0027tid\u0027: target_id, \u0027lun\u0027: lun_id}"},{"line_number":608,"context_line":"                        LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_95c41393","line":605,"range":{"start_line":605,"start_character":76,"end_line":605,"end_character":77},"in_reply_to":"9a629dbe_6f7c2721","updated":"2016-11-08 03:22:37.000000000","message":"Done","commit_id":"8d313452a7dc84be7b0e71d5e3a3e7dfd8b734ac"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bd0708d4b3a328602a98fe15f00fae5315c91d9c","unresolved":false,"context_lines":[{"line_number":1470,"context_line":"                            \u0027channel_id\u0027: channel_id, \u0027controller\u0027: slot_name}"},{"line_number":1471,"context_line":"                    LOG.error(msg)"},{"line_number":1472,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":1473,"context_line":"                    return"},{"line_number":1474,"context_line":"                else:"},{"line_number":1475,"context_line":"                    return entry[\u0027IPv4\u0027]"},{"line_number":1476,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_8fa09b92","line":1473,"range":{"start_line":1473,"start_character":20,"end_line":1473,"end_character":26},"updated":"2016-11-07 15:01:32.000000000","message":"This line should be removed.","commit_id":"8d313452a7dc84be7b0e71d5e3a3e7dfd8b734ac"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"4d4db0514155376e9fce04ad5f164e16ab27618d","unresolved":false,"context_lines":[{"line_number":1470,"context_line":"                            \u0027channel_id\u0027: channel_id, \u0027controller\u0027: slot_name}"},{"line_number":1471,"context_line":"                    LOG.error(msg)"},{"line_number":1472,"context_line":"                    raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":1473,"context_line":"                    return"},{"line_number":1474,"context_line":"                else:"},{"line_number":1475,"context_line":"                    return entry[\u0027IPv4\u0027]"},{"line_number":1476,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_b5c11783","line":1473,"range":{"start_line":1473,"start_character":20,"end_line":1473,"end_character":26},"in_reply_to":"9a629dbe_8fa09b92","updated":"2016-11-08 03:22:37.000000000","message":"Done","commit_id":"8d313452a7dc84be7b0e71d5e3a3e7dfd8b734ac"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"9bdf73ff07251145adf9959f103108f863fb5a57","unresolved":false,"context_lines":[{"line_number":1519,"context_line":"                \u0027channel_id\u0027: channel_id, \u0027controller\u0027: slot_name}"},{"line_number":1520,"context_line":"        LOG.error(msg)"},{"line_number":1521,"context_line":"        raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":1522,"context_line":"        return"},{"line_number":1523,"context_line":""},{"line_number":1524,"context_line":"    def _get_wwpn_list(self):"},{"line_number":1525,"context_line":"        rc, wwn_list \u003d self._execute(\u0027ShowWWN\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a77a97e_855c3e7e","line":1522,"updated":"2016-11-18 14:14:31.000000000","message":"The return statement can be removed now.","commit_id":"3a58e686c47d8554e0c2010b28a781f3785f4076"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"c40614563d8b059d1159c085af7ae86752709581","unresolved":false,"context_lines":[{"line_number":1519,"context_line":"                \u0027channel_id\u0027: channel_id, \u0027controller\u0027: slot_name}"},{"line_number":1520,"context_line":"        LOG.error(msg)"},{"line_number":1521,"context_line":"        raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":1522,"context_line":"        return"},{"line_number":1523,"context_line":""},{"line_number":1524,"context_line":"    def _get_wwpn_list(self):"},{"line_number":1525,"context_line":"        rc, wwn_list \u003d self._execute(\u0027ShowWWN\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a77a97e_f6704a42","line":1522,"in_reply_to":"7a77a97e_855c3e7e","updated":"2016-11-18 15:19:55.000000000","message":"Done","commit_id":"3a58e686c47d8554e0c2010b28a781f3785f4076"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"9bdf73ff07251145adf9959f103108f863fb5a57","unresolved":false,"context_lines":[{"line_number":1705,"context_line":"                        temp_ch \u003d entry[\u0027Ch\u0027]"},{"line_number":1706,"context_line":"                        temp_tid \u003d entry[\u0027Target\u0027]"},{"line_number":1707,"context_line":"                        temp_lun \u003d entry[\u0027LUN\u0027]"},{"line_number":1708,"context_line":"        return"},{"line_number":1709,"context_line":""},{"line_number":1710,"context_line":"    def migrate_volume(self, volume, host, new_extraspecs\u003dNone):"},{"line_number":1711,"context_line":"        is_valid, dst_pool_id \u003d ("}],"source_content_type":"text/x-python","patch_set":8,"id":"7a77a97e_e5e412ad","line":1708,"range":{"start_line":1708,"start_character":8,"end_line":1708,"end_character":14},"updated":"2016-11-18 14:14:31.000000000","message":"return not needed here.","commit_id":"3a58e686c47d8554e0c2010b28a781f3785f4076"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"c40614563d8b059d1159c085af7ae86752709581","unresolved":false,"context_lines":[{"line_number":1705,"context_line":"                        temp_ch \u003d entry[\u0027Ch\u0027]"},{"line_number":1706,"context_line":"                        temp_tid \u003d entry[\u0027Target\u0027]"},{"line_number":1707,"context_line":"                        temp_lun \u003d entry[\u0027LUN\u0027]"},{"line_number":1708,"context_line":"        return"},{"line_number":1709,"context_line":""},{"line_number":1710,"context_line":"    def migrate_volume(self, volume, host, new_extraspecs\u003dNone):"},{"line_number":1711,"context_line":"        is_valid, dst_pool_id \u003d ("}],"source_content_type":"text/x-python","patch_set":8,"id":"7a77a97e_96a636ac","line":1708,"range":{"start_line":1708,"start_character":8,"end_line":1708,"end_character":14},"in_reply_to":"7a77a97e_e5e412ad","updated":"2016-11-18 15:19:55.000000000","message":"Done","commit_id":"3a58e686c47d8554e0c2010b28a781f3785f4076"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"623edc2c9efc12be06fe07aa28e1dc2a463b407a","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def _set_raidcmd(self):"},{"line_number":300,"context_line":"        rc, _ \u003d self._execute(\u0027SetIOTimeout\u0027)"},{"line_number":301,"context_line":"        LOG.debug(\u0027Raidcmd timeout is [%s]\u0027 % self._raidcmd_timeout)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _init_raid_connection(self):"},{"line_number":304,"context_line":"        rc, _ \u003d self._execute(\u0027ConnectRaid\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a3905b3_3703b3b9","line":301,"range":{"start_line":301,"start_character":43,"end_line":301,"end_character":45},"updated":"2017-01-23 20:32:08.000000000","message":",","commit_id":"2c867f9b2b371a88b594391663b04443b421ce11"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"9eed6bb3b37fed2bf1d271aa690f866df6582e85","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def _set_raidcmd(self):"},{"line_number":300,"context_line":"        rc, _ \u003d self._execute(\u0027SetIOTimeout\u0027)"},{"line_number":301,"context_line":"        LOG.debug(\u0027Raidcmd timeout is [%s]\u0027 % self._raidcmd_timeout)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _init_raid_connection(self):"},{"line_number":304,"context_line":"        rc, _ \u003d self._execute(\u0027ConnectRaid\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a3905b3_600ba1d6","line":301,"range":{"start_line":301,"start_character":43,"end_line":301,"end_character":45},"in_reply_to":"5a3905b3_3703b3b9","updated":"2017-01-24 05:59:51.000000000","message":"Done","commit_id":"2c867f9b2b371a88b594391663b04443b421ce11"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"623edc2c9efc12be06fe07aa28e1dc2a463b407a","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _init_raid_connection(self):"},{"line_number":304,"context_line":"        rc, _ \u003d self._execute(\u0027ConnectRaid\u0027)"},{"line_number":305,"context_line":"        LOG.info(_LI(\u0027Raid [%s] is connected!\u0027) % self.ip)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def _execute_command(self, cli_type, *args, **kwargs):"},{"line_number":308,"context_line":"        command \u003d getattr(cli, cli_type)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a3905b3_9732a7a5","line":305,"range":{"start_line":305,"start_character":47,"end_line":305,"end_character":49},"updated":"2017-01-23 20:32:08.000000000","message":",","commit_id":"2c867f9b2b371a88b594391663b04443b421ce11"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"9eed6bb3b37fed2bf1d271aa690f866df6582e85","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _init_raid_connection(self):"},{"line_number":304,"context_line":"        rc, _ \u003d self._execute(\u0027ConnectRaid\u0027)"},{"line_number":305,"context_line":"        LOG.info(_LI(\u0027Raid [%s] is connected!\u0027) % self.ip)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def _execute_command(self, cli_type, *args, **kwargs):"},{"line_number":308,"context_line":"        command \u003d getattr(cli, cli_type)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a3905b3_800ecde2","line":305,"range":{"start_line":305,"start_character":47,"end_line":305,"end_character":49},"in_reply_to":"5a3905b3_9732a7a5","updated":"2017-01-24 05:59:51.000000000","message":"Done","commit_id":"2c867f9b2b371a88b594391663b04443b421ce11"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"623edc2c9efc12be06fe07aa28e1dc2a463b407a","unresolved":false,"context_lines":[{"line_number":782,"context_line":"        return extraspecs_set"},{"line_number":783,"context_line":""},{"line_number":784,"context_line":"    def _get_pool_extraspecs(self, pool_name, all_extraspecs):"},{"line_number":785,"context_line":"        LOG.debug(\u0027_Extraspecs_dict: %s\u0027 % all_extraspecs)"},{"line_number":786,"context_line":"        pool_extraspecs \u003d {}"},{"line_number":787,"context_line":"        provisioning \u003d None"},{"line_number":788,"context_line":"        tiering \u003d None"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a3905b3_57c3df56","line":785,"range":{"start_line":785,"start_character":40,"end_line":785,"end_character":42},"updated":"2017-01-23 20:32:08.000000000","message":",","commit_id":"2c867f9b2b371a88b594391663b04443b421ce11"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"9eed6bb3b37fed2bf1d271aa690f866df6582e85","unresolved":false,"context_lines":[{"line_number":782,"context_line":"        return extraspecs_set"},{"line_number":783,"context_line":""},{"line_number":784,"context_line":"    def _get_pool_extraspecs(self, pool_name, all_extraspecs):"},{"line_number":785,"context_line":"        LOG.debug(\u0027_Extraspecs_dict: %s\u0027 % all_extraspecs)"},{"line_number":786,"context_line":"        pool_extraspecs \u003d {}"},{"line_number":787,"context_line":"        provisioning \u003d None"},{"line_number":788,"context_line":"        tiering \u003d None"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a3905b3_e0f791d0","line":785,"range":{"start_line":785,"start_character":40,"end_line":785,"end_character":42},"in_reply_to":"5a3905b3_57c3df56","updated":"2017-01-24 05:59:51.000000000","message":"Done","commit_id":"2c867f9b2b371a88b594391663b04443b421ce11"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"623edc2c9efc12be06fe07aa28e1dc2a463b407a","unresolved":false,"context_lines":[{"line_number":2390,"context_line":"            src_extraspec \u003d new_type[\u0027extra_specs\u0027].copy()"},{"line_number":2391,"context_line":""},{"line_number":2392,"context_line":"            if self.PROVISIONING_KEY in diff[\u0027extra_specs\u0027]:"},{"line_number":2393,"context_line":"                src_extraspec[self.PROVISIONING_KEY] \u003d \\"},{"line_number":2394,"context_line":"                    diff[\u0027extra_specs\u0027][self.PROVISIONING_KEY][0]"},{"line_number":2395,"context_line":"            if self.TIERING_SET_KEY in diff[\u0027extra_specs\u0027]:"},{"line_number":2396,"context_line":"                src_extraspec[self.TIERING_SET_KEY] \u003d \\"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a3905b3_77ca9b1c","line":2393,"range":{"start_line":2393,"start_character":55,"end_line":2393,"end_character":56},"updated":"2017-01-23 20:32:08.000000000","message":"Please refactor to avoid using \\ to span multiple lines.","commit_id":"2c867f9b2b371a88b594391663b04443b421ce11"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"9eed6bb3b37fed2bf1d271aa690f866df6582e85","unresolved":false,"context_lines":[{"line_number":2390,"context_line":"            src_extraspec \u003d new_type[\u0027extra_specs\u0027].copy()"},{"line_number":2391,"context_line":""},{"line_number":2392,"context_line":"            if self.PROVISIONING_KEY in diff[\u0027extra_specs\u0027]:"},{"line_number":2393,"context_line":"                src_extraspec[self.PROVISIONING_KEY] \u003d \\"},{"line_number":2394,"context_line":"                    diff[\u0027extra_specs\u0027][self.PROVISIONING_KEY][0]"},{"line_number":2395,"context_line":"            if self.TIERING_SET_KEY in diff[\u0027extra_specs\u0027]:"},{"line_number":2396,"context_line":"                src_extraspec[self.TIERING_SET_KEY] \u003d \\"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a3905b3_0003bdb8","line":2393,"range":{"start_line":2393,"start_character":55,"end_line":2393,"end_character":56},"in_reply_to":"5a3905b3_77ca9b1c","updated":"2017-01-24 05:59:51.000000000","message":"Done","commit_id":"2c867f9b2b371a88b594391663b04443b421ce11"},{"author":{"_account_id":23602,"name":"Michael Dovgal","email":"dovgalmichael@gmail.com","username":"mdovgal"},"change_message_id":"32d3ba95ff872691f8e86877f7245db81b5ea608","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    cfg.IntOpt(\u0027infortrend_cli_max_retries\u0027,"},{"line_number":47,"context_line":"               default\u003d5,"},{"line_number":48,"context_line":"               help\u003d\u0027The maximum retry times if a command fails.\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027infortrend_cli_timeout\u0027,"},{"line_number":50,"context_line":"               default\u003d60,"},{"line_number":51,"context_line":"               help\u003d\u0027The timeout for CLI in seconds.\u0027),"},{"line_number":52,"context_line":"    cfg.StrOpt(\u0027infortrend_slots_a_channels_id\u0027,"}],"source_content_type":"text/x-python","patch_set":30,"id":"ff0f0b1f_9ce930e4","line":49,"range":{"start_line":49,"start_character":16,"end_line":49,"end_character":38},"updated":"2017-05-25 13:44:14.000000000","message":"On line 220 there is a mark that the value of this parameter should be more than 40. Maybe add this information?","commit_id":"1fe6230ee02877d7f783477c75bfc7fcf88e915d"},{"author":{"_account_id":23602,"name":"Michael Dovgal","email":"dovgalmichael@gmail.com","username":"mdovgal"},"change_message_id":"32d3ba95ff872691f8e86877f7245db81b5ea608","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    Version history:"},{"line_number":166,"context_line":"        1.0.0 - Initial driver"},{"line_number":167,"context_line":"        1.0.1 - Support DS4000"},{"line_number":168,"context_line":"        1.0.2 - Support GS/GSe Family"},{"line_number":169,"context_line":"        1.0.3 - Support MPIO for iSCSI protocol"},{"line_number":170,"context_line":"        1.0.4 - Fix Nova live migration (bug #1481968)"},{"line_number":171,"context_line":"        1.1.0 - Improve driver performance"},{"line_number":172,"context_line":"        1.1.1 - Fix creating volume on a wrong pool"},{"line_number":173,"context_line":"              - Fix manage-existing volume issue"},{"line_number":174,"context_line":"        1.1.2 - Add volume migration check"},{"line_number":175,"context_line":"        2.0.0 - Enhance extraspecs usage and refactor retype"},{"line_number":176,"context_line":"        2.0.1 - Improve speed for deleting volume"},{"line_number":177,"context_line":"        2.0.2 - Remove timeout for replication"},{"line_number":178,"context_line":"        2.0.3 - Use full ID for volume name"},{"line_number":179,"context_line":"        2.1.0 - Support for list manageable volume"},{"line_number":180,"context_line":"              - Support for list/manage/unmanage snapshot"},{"line_number":181,"context_line":"              - Remove unnecessary check in snapshot"},{"line_number":182,"context_line":"    \"\"\""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    VERSION \u003d \u00272.1.0\u0027"}],"source_content_type":"text/x-python","patch_set":30,"id":"ff0f0b1f_bce2b49e","line":181,"range":{"start_line":168,"start_character":0,"end_line":181,"end_character":52},"updated":"2017-05-25 13:44:14.000000000","message":"Maybe it\u0027s better to divide this patch into smallest ones? Not to add 10 microversions at the same time? Because what the sense if I could not revert to, for instance, version 1.1.2?","commit_id":"1fe6230ee02877d7f783477c75bfc7fcf88e915d"},{"author":{"_account_id":23602,"name":"Michael Dovgal","email":"dovgalmichael@gmail.com","username":"mdovgal"},"change_message_id":"32d3ba95ff872691f8e86877f7245db81b5ea608","unresolved":false,"context_lines":[{"line_number":987,"context_line":"                        value \u003d [int(i) for i in value]"},{"line_number":988,"context_line":"                        value \u003d list(set(value))"},{"line_number":989,"context_line":""},{"line_number":990,"context_line":"                        if value[-1] in range(4):"},{"line_number":991,"context_line":"                            extraspecs_set[pool][\u0027tiering\u0027] \u003d value"},{"line_number":992,"context_line":"                        else:"},{"line_number":993,"context_line":"                            extraspecs_set[pool][\u0027tiering\u0027] \u003d \u0027Err:%s\u0027 % value"}],"source_content_type":"text/x-python","patch_set":30,"id":"ff0f0b1f_320dabe7","line":990,"range":{"start_line":990,"start_character":24,"end_line":990,"end_character":49},"updated":"2017-05-25 13:44:14.000000000","message":"Could you get rid from such a code?","commit_id":"1fe6230ee02877d7f783477c75bfc7fcf88e915d"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"0bad54d8f1531a623ecb1776957cd42ae949e556","unresolved":false,"context_lines":[{"line_number":987,"context_line":"                        value \u003d [int(i) for i in value]"},{"line_number":988,"context_line":"                        value \u003d list(set(value))"},{"line_number":989,"context_line":""},{"line_number":990,"context_line":"                        if value[-1] in range(4):"},{"line_number":991,"context_line":"                            extraspecs_set[pool][\u0027tiering\u0027] \u003d value"},{"line_number":992,"context_line":"                        else:"},{"line_number":993,"context_line":"                            extraspecs_set[pool][\u0027tiering\u0027] \u003d \u0027Err:%s\u0027 % value"}],"source_content_type":"text/x-python","patch_set":30,"id":"df140735_5e37bce4","line":990,"range":{"start_line":990,"start_character":24,"end_line":990,"end_character":49},"in_reply_to":"ff0f0b1f_320dabe7","updated":"2017-05-31 09:40:41.000000000","message":"if 0 \u003c\u003d value[-1] \u003c\u003d 3 instead?","commit_id":"1fe6230ee02877d7f783477c75bfc7fcf88e915d"}],"releasenotes/notes/infortrend-iscsi-multipath-support-41dcc4e171cba26c.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"9bdf73ff07251145adf9959f103108f863fb5a57","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add multipath support for iSCSI."},{"line_number":4,"context_line":"fixes:"},{"line_number":5,"context_line":"  - Fix bug 1481968 for Nova live migration."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7a77a97e_8546fe78","line":3,"updated":"2016-11-18 14:14:31.000000000","message":"These won\u0027t make any sense in the release notes. Maybe change to something like:\n\nfeatures:\n  - Added multipath support for Infortrend backend devices.\nfixes:\n  - Fixed an error preventing live migration of volumes hosted on an Infortrend backend.\n\nNot even sure if the bug fix should be referenced, but if you want to make sure your users see it, I\u0027m fine with that.","commit_id":"3a58e686c47d8554e0c2010b28a781f3785f4076"},{"author":{"_account_id":19191,"name":"JohnnyChou","email":"johnny800503.work@gmail.com","username":"JohnnyChou"},"change_message_id":"c40614563d8b059d1159c085af7ae86752709581","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add multipath support for iSCSI."},{"line_number":4,"context_line":"fixes:"},{"line_number":5,"context_line":"  - Fix bug 1481968 for Nova live migration."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7a77a97e_f6a76aa4","line":3,"in_reply_to":"7a77a97e_8546fe78","updated":"2016-11-18 15:19:55.000000000","message":"I see.","commit_id":"3a58e686c47d8554e0c2010b28a781f3785f4076"}]}
