)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f1b8849836712b49052e6e0543131c77bf043ff","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Edwin Wang \u003cedwin.wang@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-25 12:26:52 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Split FC driver code into Common and FC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The patch is to split original FC driver code into common class and"},{"line_number":10,"context_line":"FC driver for IBM FlashSystem. iSCSI driver has been merged in L-1."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa32b979_3a6ac781","line":7,"updated":"2015-06-25 13:41:10.000000000","message":"This is a little misleading in that the refactoring is actually for both the iSCSI and FC drivers. Might be more clear to state something like \"Refactor FlashSystem drivers common code\" or something along those lines.","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"a92c3d1864a763061bbe6aa62df24ccaf731e262","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Edwin Wang \u003cedwin.wang@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-25 12:26:52 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Split FC driver code into Common and FC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The patch is to split original FC driver code into common class and"},{"line_number":10,"context_line":"FC driver for IBM FlashSystem. iSCSI driver has been merged in L-1."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa32b979_ce9f5900","line":7,"in_reply_to":"fa32b979_3a6ac781","updated":"2015-06-25 15:14:09.000000000","message":"Has changed some. Would you help to check it again? Thanks in advance.","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5b612ac59bd93a19ce8290bd43cc56b1d6245ded","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The patch is to split original FC driver code into common code and"},{"line_number":10,"context_line":"FC driver for IBM FlashSystem. iSCSI driver merged in L-1 has been"},{"line_number":11,"context_line":"inherited from original FC driver for common functions already. In"},{"line_number":12,"context_line":"this patch common function _get_node_data in SCSI driver is moved"},{"line_number":13,"context_line":"into common code."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implements: blueprint ibm-flashsystem-split-fc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa32b979_90759933","line":12,"updated":"2015-06-28 03:10:37.000000000","message":"/SCSI/iSCSI/","commit_id":"48888baf6bc0e7f5f9715ffbe494a9f5cedb263c"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"dfeb2d5b400b00ba5860e2ed5535ad1cac11fc8a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The patch is to split original FC driver code into common code and"},{"line_number":10,"context_line":"FC driver for IBM FlashSystem. iSCSI driver merged in L-1 has been"},{"line_number":11,"context_line":"inherited from original FC driver for common functions already. In"},{"line_number":12,"context_line":"this patch common function _get_node_data in SCSI driver is moved"},{"line_number":13,"context_line":"into common code."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implements: blueprint ibm-flashsystem-split-fc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa32b979_303daddd","line":12,"in_reply_to":"fa32b979_90759933","updated":"2015-06-28 05:14:06.000000000","message":"Thanks, will address in next commit.","commit_id":"48888baf6bc0e7f5f9715ffbe494a9f5cedb263c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":12,"context_line":"already."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"In this patch,"},{"line_number":15,"context_line":"* Speparate FC driver into new driver and common code."},{"line_number":16,"context_line":"* Modify iSCSI driver to inherite the common code."},{"line_number":17,"context_line":"* Common function _get_node_data in iSCSI driver is moved into"},{"line_number":18,"context_line":"common code."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"ba3cc151_c6f736f4","line":15,"updated":"2015-06-29 01:25:17.000000000","message":"s/Speparate/Separate","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"In this patch,"},{"line_number":15,"context_line":"* Speparate FC driver into new driver and common code."},{"line_number":16,"context_line":"* Modify iSCSI driver to inherite the common code."},{"line_number":17,"context_line":"* Common function _get_node_data in iSCSI driver is moved into"},{"line_number":18,"context_line":"common code."},{"line_number":19,"context_line":"* Add locks in initialize_connection and terminate_connection"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"ba3cc151_86da8e77","line":16,"updated":"2015-06-29 01:25:17.000000000","message":"inherite from","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"}],"cinder/volume/drivers/ibm/flashsystem_common.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f1b8849836712b49052e6e0543131c77bf043ff","unresolved":false,"context_lines":[{"line_number":50,"context_line":"flashsystem_opts \u003d ["},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027flashsystem_connection_protocol\u0027,"},{"line_number":52,"context_line":"               default\u003d\u0027FC\u0027,"},{"line_number":53,"context_line":"               help\u003d\u0027Connection protocol should be FC.\u0027"},{"line_number":54,"context_line":"                    \u0027(Default is FC.)\u0027),"},{"line_number":55,"context_line":"    cfg.BoolOpt(\u0027flashsystem_multihostmap_enabled\u0027,"},{"line_number":56,"context_line":"                default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_774148a8","line":53,"updated":"2015-06-25 13:41:10.000000000","message":"Needs trailing space so the resulting string doesn\u0027t run together.","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"a92c3d1864a763061bbe6aa62df24ccaf731e262","unresolved":false,"context_lines":[{"line_number":50,"context_line":"flashsystem_opts \u003d ["},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027flashsystem_connection_protocol\u0027,"},{"line_number":52,"context_line":"               default\u003d\u0027FC\u0027,"},{"line_number":53,"context_line":"               help\u003d\u0027Connection protocol should be FC.\u0027"},{"line_number":54,"context_line":"                    \u0027(Default is FC.)\u0027),"},{"line_number":55,"context_line":"    cfg.BoolOpt(\u0027flashsystem_multihostmap_enabled\u0027,"},{"line_number":56,"context_line":"                default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_8e74f1ce","line":53,"in_reply_to":"fa32b979_774148a8","updated":"2015-06-25 15:14:09.000000000","message":"Done. Sorry for this carelessness.","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f1b8849836712b49052e6e0543131c77bf043ff","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                    \u0027(Default is FC.)\u0027),"},{"line_number":55,"context_line":"    cfg.BoolOpt(\u0027flashsystem_multihostmap_enabled\u0027,"},{"line_number":56,"context_line":"                default\u003dTrue,"},{"line_number":57,"context_line":"                help\u003d\u0027Allows vdisk to multi host mapping.\u0027"},{"line_number":58,"context_line":"                     \u0027(Default is True)\u0027)"},{"line_number":59,"context_line":"]"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_973c0c30","line":57,"updated":"2015-06-25 13:41:10.000000000","message":"Same.","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"a92c3d1864a763061bbe6aa62df24ccaf731e262","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                    \u0027(Default is FC.)\u0027),"},{"line_number":55,"context_line":"    cfg.BoolOpt(\u0027flashsystem_multihostmap_enabled\u0027,"},{"line_number":56,"context_line":"                default\u003dTrue,"},{"line_number":57,"context_line":"                help\u003d\u0027Allows vdisk to multi host mapping.\u0027"},{"line_number":58,"context_line":"                     \u0027(Default is True)\u0027)"},{"line_number":59,"context_line":"]"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_ae41b564","line":57,"in_reply_to":"fa32b979_973c0c30","updated":"2015-06-25 15:14:09.000000000","message":"Done","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f1b8849836712b49052e6e0543131c77bf043ff","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            out, err \u003d self._ssh(ssh_cmd)"},{"line_number":349,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":350,"context_line":"            LOG.warning(_LW(\u0027Failed to run command: \u0027"},{"line_number":351,"context_line":"                            \u0027%s.\u0027), six.text_type(ssh_cmd))"},{"line_number":352,"context_line":"            # Does not raise exception when command encounters error."},{"line_number":353,"context_line":"            # Only return and the upper logic decides what to do."},{"line_number":354,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_97516c64","line":351,"updated":"2015-06-25 13:41:10.000000000","message":"six.text_type not needed here. Since it\u0027s being passed in as an argument to the logger call, the logger will take care of any necessary conversion.","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"a92c3d1864a763061bbe6aa62df24ccaf731e262","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            out, err \u003d self._ssh(ssh_cmd)"},{"line_number":349,"context_line":"        except processutils.ProcessExecutionError:"},{"line_number":350,"context_line":"            LOG.warning(_LW(\u0027Failed to run command: \u0027"},{"line_number":351,"context_line":"                            \u0027%s.\u0027), six.text_type(ssh_cmd))"},{"line_number":352,"context_line":"            # Does not raise exception when command encounters error."},{"line_number":353,"context_line":"            # Only return and the upper logic decides what to do."},{"line_number":354,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_ee325d0f","line":351,"in_reply_to":"fa32b979_97516c64","updated":"2015-06-25 15:14:09.000000000","message":"Done","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f1b8849836712b49052e6e0543131c77bf043ff","unresolved":false,"context_lines":[{"line_number":469,"context_line":"        attributes \u003d self._execute_command_and_parse_attributes(ssh_cmd)"},{"line_number":470,"context_line":"        if not attributes:"},{"line_number":471,"context_line":"            LOG.debug(\u0027_get_node_data: lssystem attributes:\u0027, attributes)"},{"line_number":472,"context_line":"            msg \u003d _(\u0027Unable to parse attributes\u0027)"},{"line_number":473,"context_line":"            LOG.error(msg)"},{"line_number":474,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":475,"context_line":"        if not (\u0027status\u0027 in attributes) or ("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_17f31c74","line":472,"updated":"2015-06-25 13:41:10.000000000","message":"Would prefer a period at the end.","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"a92c3d1864a763061bbe6aa62df24ccaf731e262","unresolved":false,"context_lines":[{"line_number":469,"context_line":"        attributes \u003d self._execute_command_and_parse_attributes(ssh_cmd)"},{"line_number":470,"context_line":"        if not attributes:"},{"line_number":471,"context_line":"            LOG.debug(\u0027_get_node_data: lssystem attributes:\u0027, attributes)"},{"line_number":472,"context_line":"            msg \u003d _(\u0027Unable to parse attributes\u0027)"},{"line_number":473,"context_line":"            LOG.error(msg)"},{"line_number":474,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":475,"context_line":"        if not (\u0027status\u0027 in attributes) or ("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_ce3bd9e8","line":472,"in_reply_to":"fa32b979_17f31c74","updated":"2015-06-25 15:14:09.000000000","message":"Done","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                invalid_ch_in_host, \u0027-\u0027 * len(invalid_ch_in_host))"},{"line_number":160,"context_line":"            host_name \u003d host_name.translate(string_host_name_filter)"},{"line_number":161,"context_line":"        else:"},{"line_number":162,"context_line":"            msg \u003d _(\u0027_create_host: Can not clean host name. Host name \u0027"},{"line_number":163,"context_line":"                    \u0027is not unicode or string.\u0027)"},{"line_number":164,"context_line":"            LOG.error(msg)"},{"line_number":165,"context_line":"            raise exception.NoValidHost(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_86c12e83","line":162,"updated":"2015-06-29 01:25:17.000000000","message":"\"clean\" sounds odd here.\n\nSuggest: clean -\u003e translate","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                invalid_ch_in_host, \u0027-\u0027 * len(invalid_ch_in_host))"},{"line_number":160,"context_line":"            host_name \u003d host_name.translate(string_host_name_filter)"},{"line_number":161,"context_line":"        else:"},{"line_number":162,"context_line":"            msg \u003d _(\u0027_create_host: Can not clean host name. Host name \u0027"},{"line_number":163,"context_line":"                    \u0027is not unicode or string.\u0027)"},{"line_number":164,"context_line":"            LOG.error(msg)"},{"line_number":165,"context_line":"            raise exception.NoValidHost(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_e936cdb3","line":162,"in_reply_to":"ba3cc151_86c12e83","updated":"2015-06-29 10:29:04.000000000","message":"Done","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":443,"context_line":"    def _get_node_data(self):"},{"line_number":444,"context_line":"        \"\"\"Get and verify node configuration.\"\"\""},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        LOG.debug(\u0027enter: _get_node_data\u0027)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"        # Get storage system name and id"},{"line_number":449,"context_line":"        ssh_cmd \u003d [\u0027svcinfo\u0027, \u0027lssystem\u0027, \u0027-delim\u0027, \u0027!\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_2655c2c5","line":446,"updated":"2015-06-29 01:25:17.000000000","message":"We are asked to remove this kind of entering/exiting debug message.","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":443,"context_line":"    def _get_node_data(self):"},{"line_number":444,"context_line":"        \"\"\"Get and verify node configuration.\"\"\""},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        LOG.debug(\u0027enter: _get_node_data\u0027)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"        # Get storage system name and id"},{"line_number":449,"context_line":"        ssh_cmd \u003d [\u0027svcinfo\u0027, \u0027lssystem\u0027, \u0027-delim\u0027, \u0027!\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_c9450918","line":446,"in_reply_to":"ba3cc151_2655c2c5","updated":"2015-06-29 10:29:04.000000000","message":"Done","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":468,"context_line":"        ssh_cmd \u003d [\u0027svcinfo\u0027, \u0027lsmdiskgrp\u0027, \u0027-bytes\u0027, \u0027-delim\u0027, \u0027!\u0027, pool]"},{"line_number":469,"context_line":"        attributes \u003d self._execute_command_and_parse_attributes(ssh_cmd)"},{"line_number":470,"context_line":"        if not attributes:"},{"line_number":471,"context_line":"            LOG.debug(\u0027_get_node_data: lssystem attributes:\u0027, attributes)"},{"line_number":472,"context_line":"            msg \u003d _(\u0027Unable to parse attributes.\u0027)"},{"line_number":473,"context_line":"            LOG.error(msg)"},{"line_number":474,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_e65d9aed","line":471,"updated":"2015-06-29 01:25:17.000000000","message":"This should not have attributes at the end as it is None.  You also don\u0027t have %s there to insert any string even if it is not None.","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":468,"context_line":"        ssh_cmd \u003d [\u0027svcinfo\u0027, \u0027lsmdiskgrp\u0027, \u0027-bytes\u0027, \u0027-delim\u0027, \u0027!\u0027, pool]"},{"line_number":469,"context_line":"        attributes \u003d self._execute_command_and_parse_attributes(ssh_cmd)"},{"line_number":470,"context_line":"        if not attributes:"},{"line_number":471,"context_line":"            LOG.debug(\u0027_get_node_data: lssystem attributes:\u0027, attributes)"},{"line_number":472,"context_line":"            msg \u003d _(\u0027Unable to parse attributes.\u0027)"},{"line_number":473,"context_line":"            LOG.error(msg)"},{"line_number":474,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_a90e85e3","line":471,"in_reply_to":"ba3cc151_e65d9aed","updated":"2015-06-29 10:29:04.000000000","message":"Removed","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":512,"context_line":"                }"},{"line_number":513,"context_line":"                if node[\u0027status\u0027] \u003d\u003d \u0027online\u0027:"},{"line_number":514,"context_line":"                    self._storage_nodes[node[\u0027id\u0027]] \u003d node"},{"line_number":515,"context_line":"            except KeyError:"},{"line_number":516,"context_line":"                self._handle_keyerror(\u0027lsnode\u0027, header)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"        LOG.debug(\u0027leave: _get_node_data\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_a60eb2e3","line":515,"updated":"2015-06-29 01:25:17.000000000","message":"Can you log a warning message here?","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":512,"context_line":"                }"},{"line_number":513,"context_line":"                if node[\u0027status\u0027] \u003d\u003d \u0027online\u0027:"},{"line_number":514,"context_line":"                    self._storage_nodes[node[\u0027id\u0027]] \u003d node"},{"line_number":515,"context_line":"            except KeyError:"},{"line_number":516,"context_line":"                self._handle_keyerror(\u0027lsnode\u0027, header)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"        LOG.debug(\u0027leave: _get_node_data\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_49c57959","line":515,"in_reply_to":"ba3cc151_a60eb2e3","updated":"2015-06-29 10:29:04.000000000","message":"LOG.error exists in _handle_keyerror.","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":515,"context_line":"            except KeyError:"},{"line_number":516,"context_line":"                self._handle_keyerror(\u0027lsnode\u0027, header)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"        LOG.debug(\u0027leave: _get_node_data\u0027)"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"    def _get_vdisk_attributes(self, vdisk_name):"},{"line_number":521,"context_line":"        \"\"\"Return vdisk attributes"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_465246df","line":518,"updated":"2015-06-29 01:25:17.000000000","message":"Same here","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":515,"context_line":"            except KeyError:"},{"line_number":516,"context_line":"                self._handle_keyerror(\u0027lsnode\u0027, header)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"        LOG.debug(\u0027leave: _get_node_data\u0027)"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"    def _get_vdisk_attributes(self, vdisk_name):"},{"line_number":521,"context_line":"        \"\"\"Return vdisk attributes"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_e9a00da8","line":518,"in_reply_to":"ba3cc151_465246df","updated":"2015-06-29 10:29:04.000000000","message":"Done","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":697,"context_line":"            ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvdiskhostmap\u0027, \u0027-host\u0027, host_name,"},{"line_number":698,"context_line":"                       \u0027-scsi\u0027, six.text_type(result_lun), vdisk_name]"},{"line_number":699,"context_line":"            out, err \u003d self._ssh(ssh_cmd, check_exit_code\u003dFalse)"},{"line_number":700,"context_line":"            if err and err.startswith(\u0027CMMVC6071E\u0027):"},{"line_number":701,"context_line":"                if not self.configuration.flashsystem_multihostmap_enabled:"},{"line_number":702,"context_line":"                    msg \u003d _(\u0027flashsystem_multihostmap_enabled is set \u0027"},{"line_number":703,"context_line":"                            \u0027to False, not allow multi host mapping. \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_6620aa4a","line":700,"updated":"2015-06-29 01:25:17.000000000","message":"I think you should create a constant for this one: \u0027CMMVC6071E\u0027.  It is referenced in the below message too.","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":697,"context_line":"            ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvdiskhostmap\u0027, \u0027-host\u0027, host_name,"},{"line_number":698,"context_line":"                       \u0027-scsi\u0027, six.text_type(result_lun), vdisk_name]"},{"line_number":699,"context_line":"            out, err \u003d self._ssh(ssh_cmd, check_exit_code\u003dFalse)"},{"line_number":700,"context_line":"            if err and err.startswith(\u0027CMMVC6071E\u0027):"},{"line_number":701,"context_line":"                if not self.configuration.flashsystem_multihostmap_enabled:"},{"line_number":702,"context_line":"                    msg \u003d _(\u0027flashsystem_multihostmap_enabled is set \u0027"},{"line_number":703,"context_line":"                            \u0027to False, not allow multi host mapping. \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_09653144","line":700,"in_reply_to":"ba3cc151_6620aa4a","updated":"2015-06-29 10:29:04.000000000","message":"The single string \u0027CMMVC6071E\u0027 is used here twice. If I create a constant at here for startswitch(), I still need to join the constant with a quite long string. IMO current way can make the code simple and clear. What do you think?","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"}],"cinder/volume/drivers/ibm/flashsystem_fc.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f1b8849836712b49052e6e0543131c77bf043ff","unresolved":false,"context_lines":[{"line_number":243,"context_line":"    @fczm_utils.AddFCZone"},{"line_number":244,"context_line":"    @utils.synchronized(\u0027flashsystem-init-conn\u0027, external\u003dTrue)"},{"line_number":245,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":246,"context_line":"        \"\"\"Perform the necessary work so that a FC connection can"},{"line_number":247,"context_line":"        be made."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        To be able to create a FC connection from a given host to a"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_d7129460","line":246,"updated":"2015-06-25 13:41:10.000000000","message":"Shorten docstring summary line to be \u003c 80 characters.\n\nhttp://docs.openstack.org/developer/hacking/#docstrings","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"a92c3d1864a763061bbe6aa62df24ccaf731e262","unresolved":false,"context_lines":[{"line_number":243,"context_line":"    @fczm_utils.AddFCZone"},{"line_number":244,"context_line":"    @utils.synchronized(\u0027flashsystem-init-conn\u0027, external\u003dTrue)"},{"line_number":245,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":246,"context_line":"        \"\"\"Perform the necessary work so that a FC connection can"},{"line_number":247,"context_line":"        be made."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        To be able to create a FC connection from a given host to a"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_6e0e4d3c","line":246,"in_reply_to":"fa32b979_d7129460","updated":"2015-06-25 15:14:09.000000000","message":"Done","commit_id":"38a363e082c2536d547cf1494c1e3a2a3d5349eb"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"9a9416cc19e146779408889da7549b0476310b24","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        vdisk_id \u003d volume[\u0027id\u0027]"},{"line_number":264,"context_line":"        vdisk_params \u003d self._get_vdisk_params(volume[\u0027volume_type_id\u0027])"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        self._wait_vdisk_copy_completed(vdisk_name)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        self._driver_assert("},{"line_number":269,"context_line":"            self._is_vdisk_defined(vdisk_name),"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_80a275fa","line":266,"updated":"2015-06-25 17:45:02.000000000","message":"Every time initialize_connection is called, do you create a new vdisk copy?","commit_id":"60310dc2cb0100d43d5061f9f41383f1def0e71f"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"284337c7451aa63f8884d10a4887480d8a9f88fa","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        vdisk_id \u003d volume[\u0027id\u0027]"},{"line_number":264,"context_line":"        vdisk_params \u003d self._get_vdisk_params(volume[\u0027volume_type_id\u0027])"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        self._wait_vdisk_copy_completed(vdisk_name)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        self._driver_assert("},{"line_number":269,"context_line":"            self._is_vdisk_defined(vdisk_name),"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_538e7b7a","line":266,"in_reply_to":"fa32b979_80a275fa","updated":"2015-06-26 01:26:27.000000000","message":"No vdisk copy creation here. But as the firmware limitation, at present hardware didn\u0027t support running host-vdisk mapping while vdisk copy is in progress. Thus, I added the check statement. I will add a #TODO here for further development. What you think?","commit_id":"60310dc2cb0100d43d5061f9f41383f1def0e71f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5b612ac59bd93a19ce8290bd43cc56b1d6245ded","unresolved":false,"context_lines":[{"line_number":328,"context_line":""},{"line_number":329,"context_line":"        return {"},{"line_number":330,"context_line":"            \u0027driver_volume_type\u0027: \u0027fibre_channel\u0027,"},{"line_number":331,"context_line":"            \u0027data\u0027: properties"},{"line_number":332,"context_line":"        }"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    def do_setup(self, ctxt):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_90acb98d","line":331,"updated":"2015-06-28 03:10:37.000000000","message":"This is how the code was before, but you may want to validate this. From my understanding, you don\u0027t want to return the data dict with initiator_target_map unless there are no other volumes mapped to this initiator, otherwise the FC zone manager will remove the zoning between target and initiator.","commit_id":"48888baf6bc0e7f5f9715ffbe494a9f5cedb263c"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"dfeb2d5b400b00ba5860e2ed5535ad1cac11fc8a","unresolved":false,"context_lines":[{"line_number":328,"context_line":""},{"line_number":329,"context_line":"        return {"},{"line_number":330,"context_line":"            \u0027driver_volume_type\u0027: \u0027fibre_channel\u0027,"},{"line_number":331,"context_line":"            \u0027data\u0027: properties"},{"line_number":332,"context_line":"        }"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    def do_setup(self, ctxt):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_b0521d34","line":331,"in_reply_to":"fa32b979_90acb98d","updated":"2015-06-28 05:14:06.000000000","message":"Thanks for pointing out this. I will add #TODO here. Then, fix it by bug/new patchset later.","commit_id":"48888baf6bc0e7f5f9715ffbe494a9f5cedb263c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            try:"},{"line_number":159,"context_line":"                if port_data[\u0027status\u0027] \u003d\u003d \u0027active\u0027:"},{"line_number":160,"context_line":"                    wwpns.append(port_data[\u0027WWPN\u0027])"},{"line_number":161,"context_line":"            except KeyError:"},{"line_number":162,"context_line":"                self._handle_keyerror(\u0027lsportfc\u0027, header)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        return wwpns"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_06a67ec1","line":161,"updated":"2015-06-29 01:25:17.000000000","message":"Can you log a warning?","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            try:"},{"line_number":159,"context_line":"                if port_data[\u0027status\u0027] \u003d\u003d \u0027active\u0027:"},{"line_number":160,"context_line":"                    wwpns.append(port_data[\u0027WWPN\u0027])"},{"line_number":161,"context_line":"            except KeyError:"},{"line_number":162,"context_line":"                self._handle_keyerror(\u0027lsportfc\u0027, header)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        return wwpns"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_6954fd53","line":161,"in_reply_to":"ba3cc151_06a67ec1","updated":"2015-06-29 10:29:04.000000000","message":"See my comment in flashsystem_common.py.","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":243,"context_line":"    @fczm_utils.AddFCZone"},{"line_number":244,"context_line":"    @utils.synchronized(\u0027flashsystem-init-conn\u0027, external\u003dTrue)"},{"line_number":245,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":246,"context_line":"        \"\"\"Perform work so that an iSCSI connection can be made."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        To be able to create a FC connection from a given host to a"},{"line_number":249,"context_line":"        volume, we must:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_a681d2fd","line":246,"updated":"2015-06-29 01:25:17.000000000","message":"iSCSI -\u003e FC","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":243,"context_line":"    @fczm_utils.AddFCZone"},{"line_number":244,"context_line":"    @utils.synchronized(\u0027flashsystem-init-conn\u0027, external\u003dTrue)"},{"line_number":245,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":246,"context_line":"        \"\"\"Perform work so that an iSCSI connection can be made."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        To be able to create a FC connection from a given host to a"},{"line_number":249,"context_line":"        volume, we must:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_294ef5c1","line":246,"in_reply_to":"ba3cc151_a681d2fd","updated":"2015-06-29 10:29:04.000000000","message":"Done","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        vdisk_params \u003d self._get_vdisk_params(volume[\u0027volume_type_id\u0027])"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        # TODO(edwin): might fix it after vdisk copy function is"},{"line_number":267,"context_line":"        # ready in FlashSystem thin-provision layer"},{"line_number":268,"context_line":"        self._wait_vdisk_copy_completed(vdisk_name)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        self._driver_assert("}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_86792e32","line":267,"updated":"2015-06-29 01:25:17.000000000","message":"What is the problem you are going to fix? It is not clear in this comment.","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        vdisk_params \u003d self._get_vdisk_params(volume[\u0027volume_type_id\u0027])"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        # TODO(edwin): might fix it after vdisk copy function is"},{"line_number":267,"context_line":"        # ready in FlashSystem thin-provision layer"},{"line_number":268,"context_line":"        self._wait_vdisk_copy_completed(vdisk_name)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        self._driver_assert("}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_c97189e2","line":267,"in_reply_to":"ba3cc151_86792e32","updated":"2015-06-29 10:29:04.000000000","message":"Done","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":321,"context_line":"        properties[\u0027target_wwn\u0027] \u003d conn_wwpns"},{"line_number":322,"context_line":"        # TODO(edwin): add judgement here. No initiator_target_map within"},{"line_number":323,"context_line":"        # properties need if no more I/T connection. Otherwise the FCZone"},{"line_number":324,"context_line":"        # manager will remove the zoning between I/T."},{"line_number":325,"context_line":"        properties[\u0027initiator_target_map\u0027] \u003d self._build_initiator_target_map("},{"line_number":326,"context_line":"            connector[\u0027wwpns\u0027], conn_wwpns)"},{"line_number":327,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_26adc288","line":324,"updated":"2015-06-29 01:25:17.000000000","message":"When are you going to add this check?  If this won\u0027t be fixed in this patch, can you open a bug to indicate it will be fixed later?","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":321,"context_line":"        properties[\u0027target_wwn\u0027] \u003d conn_wwpns"},{"line_number":322,"context_line":"        # TODO(edwin): add judgement here. No initiator_target_map within"},{"line_number":323,"context_line":"        # properties need if no more I/T connection. Otherwise the FCZone"},{"line_number":324,"context_line":"        # manager will remove the zoning between I/T."},{"line_number":325,"context_line":"        properties[\u0027initiator_target_map\u0027] \u003d self._build_initiator_target_map("},{"line_number":326,"context_line":"            connector[\u0027wwpns\u0027], conn_wwpns)"},{"line_number":327,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_497ed9af","line":324,"in_reply_to":"ba3cc151_26adc288","updated":"2015-06-29 10:29:04.000000000","message":"Sure. https://bugs.launchpad.net/cinder/+bug/1469581","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    def do_setup(self, ctxt):"},{"line_number":338,"context_line":"        \"\"\"Check that we have all configuration details from the storage.\"\"\""},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        LOG.debug(\u0027enter: do_setup\u0027)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        self._context \u003d ctxt"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_06bbdec5","line":340,"updated":"2015-06-29 01:25:17.000000000","message":"This message should be removed. It is not adding much information.","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    def do_setup(self, ctxt):"},{"line_number":338,"context_line":"        \"\"\"Check that we have all configuration details from the storage.\"\"\""},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        LOG.debug(\u0027enter: do_setup\u0027)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        self._context \u003d ctxt"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_094f7193","line":340,"in_reply_to":"ba3cc151_06bbdec5","updated":"2015-06-29 10:29:04.000000000","message":"Done","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        self._vdisk_copy_lock \u003d threading.Lock()"},{"line_number":369,"context_line":"        self._check_lock_interval \u003d 5"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        LOG.debug(\u0027leave: do_setup\u0027)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    def validate_connector(self, connector):"},{"line_number":374,"context_line":"        \"\"\"Check connector.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_66caea51","line":371,"updated":"2015-06-29 01:25:17.000000000","message":"Same here","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        self._vdisk_copy_lock \u003d threading.Lock()"},{"line_number":369,"context_line":"        self._check_lock_interval \u003d 5"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        LOG.debug(\u0027leave: do_setup\u0027)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    def validate_connector(self, connector):"},{"line_number":374,"context_line":"        \"\"\"Check connector.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_a943e56b","line":371,"in_reply_to":"ba3cc151_66caea51","updated":"2015-06-29 10:29:04.000000000","message":"Done","commit_id":"4a4d0339a7ad94b3aa40efe155e5625959e81fe0"}],"cinder/volume/drivers/ibm/flashsystem_iscsi.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5b612ac59bd93a19ce8290bd43cc56b1d6245ded","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        return {\u0027driver_volume_type\u0027: type_str, \u0027data\u0027: properties}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    @utils.synchronized(\u0027flashsystem-init-conn\u0027, external\u003dTrue)"},{"line_number":207,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":208,"context_line":"        \"\"\"Perform work so that an iSCSI connection can be made."},{"line_number":209,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_50b5d1cd","line":206,"updated":"2015-06-28 03:10:37.000000000","message":"Is locking really needed?\n\nThis isn\u0027t related to the refactoring. If needed, the commit message should be updated to note this addition.","commit_id":"48888baf6bc0e7f5f9715ffbe494a9f5cedb263c"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"dfeb2d5b400b00ba5860e2ed5535ad1cac11fc8a","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        return {\u0027driver_volume_type\u0027: type_str, \u0027data\u0027: properties}"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    @utils.synchronized(\u0027flashsystem-init-conn\u0027, external\u003dTrue)"},{"line_number":207,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":208,"context_line":"        \"\"\"Perform work so that an iSCSI connection can be made."},{"line_number":209,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_70333514","line":206,"in_reply_to":"fa32b979_50b5d1cd","updated":"2015-06-28 05:14:06.000000000","message":"Got it and thanks. I will add note in commit message.","commit_id":"48888baf6bc0e7f5f9715ffbe494a9f5cedb263c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e979d184ec32ff9100592e92eb3ab2db7f5791dd","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        if protocol.lower() \u003d\u003d \u0027iscsi\u0027:"},{"line_number":433,"context_line":"            protocol \u003d \u0027iSCSI\u0027"},{"line_number":434,"context_line":"        return {\u0027protocol\u0027: protocol,"},{"line_number":435,"context_line":"                \u0027multipath\u0027: self.configuration.flashsystem_multipath_enabled,"},{"line_number":436,"context_line":"                \u0027iscsi_ip\u0027: self.configuration.iscsi_ip_address,"},{"line_number":437,"context_line":"                \u0027iscsi_port\u0027: self.configuration.iscsi_port,"},{"line_number":438,"context_line":"                \u0027iscsi_ported\u0027: self.configuration.flashsystem_iscsi_portid}"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_a6e6b2e6","side":"PARENT","line":435,"updated":"2015-06-29 01:25:17.000000000","message":"Why is this removed?  Is there any change on multipath support in this patch?  If so, it should be indicated in the commit message.","commit_id":"1b75a9fcbb8937f52424434756fc53d7ba0b0f03"},{"author":{"_account_id":12516,"name":"Edwin Wang","email":"edwin.wang@cn.ibm.com","username":"edwin.wang"},"change_message_id":"eedc8681aa60a71bfa80d9d9d6188216fb6c233e","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        if protocol.lower() \u003d\u003d \u0027iscsi\u0027:"},{"line_number":433,"context_line":"            protocol \u003d \u0027iSCSI\u0027"},{"line_number":434,"context_line":"        return {\u0027protocol\u0027: protocol,"},{"line_number":435,"context_line":"                \u0027multipath\u0027: self.configuration.flashsystem_multipath_enabled,"},{"line_number":436,"context_line":"                \u0027iscsi_ip\u0027: self.configuration.iscsi_ip_address,"},{"line_number":437,"context_line":"                \u0027iscsi_port\u0027: self.configuration.iscsi_port,"},{"line_number":438,"context_line":"                \u0027iscsi_ported\u0027: self.configuration.flashsystem_iscsi_portid}"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_89094134","side":"PARENT","line":435,"in_reply_to":"ba3cc151_a6e6b2e6","updated":"2015-06-29 10:29:04.000000000","message":"Cinder iSCSI will cover iSCSI multipath. So I removed this parameter here. Will add this point in commit message. Thanks!","commit_id":"1b75a9fcbb8937f52424434756fc53d7ba0b0f03"}]}
