)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f10adec3a5ec15d6ffb8bdb9478f1463d27d3159","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add secondary sshpool for san storage drivers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In order to implement volume replication, should add a secondary"},{"line_number":10,"context_line":"ssh connection to communication with the replica storage."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"By default, the parameters of the connection such as \u0027san_ssh_port\u0027"},{"line_number":13,"context_line":"are the same between secondary and primary storage."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a930d6b_908f9f29","line":10,"updated":"2015-01-26 19:08:22.000000000","message":"to communication -\u003e for communication","commit_id":"5aba17cadc2a9807596be639213d090fb622fe3d"},{"author":{"_account_id":8587,"name":"Li Min Liu","email":"liulm@certusnet.com.cn","username":"LarryLiu"},"change_message_id":"e1ba041a468db675ac47c598fb5899fa4f483b6b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add secondary sshpool for san storage drivers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In order to implement volume replication, should add a secondary"},{"line_number":10,"context_line":"ssh connection to communication with the replica storage."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"By default, the parameters of the connection such as \u0027san_ssh_port\u0027"},{"line_number":13,"context_line":"are the same between secondary and primary storage."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a930d6b_88c20b83","line":10,"in_reply_to":"1a930d6b_908f9f29","updated":"2015-01-27 01:16:08.000000000","message":"will update next patch","commit_id":"5aba17cadc2a9807596be639213d090fb622fe3d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f10adec3a5ec15d6ffb8bdb9478f1463d27d3159","unresolved":false,"context_lines":[{"line_number":10,"context_line":"ssh connection to communication with the replica storage."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"By default, the parameters of the connection such as \u0027san_ssh_port\u0027"},{"line_number":13,"context_line":"are the same between secondary and primary storage."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia19a1cb47019c6a3a4156e81c86592d3e0cb1535"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a930d6b_7006b387","line":13,"updated":"2015-01-26 19:08:22.000000000","message":"Is this true?  Where is this happening in code?","commit_id":"5aba17cadc2a9807596be639213d090fb622fe3d"},{"author":{"_account_id":8587,"name":"Li Min Liu","email":"liulm@certusnet.com.cn","username":"LarryLiu"},"change_message_id":"e1ba041a468db675ac47c598fb5899fa4f483b6b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"ssh connection to communication with the replica storage."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"By default, the parameters of the connection such as \u0027san_ssh_port\u0027"},{"line_number":13,"context_line":"are the same between secondary and primary storage."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia19a1cb47019c6a3a4156e81c86592d3e0cb1535"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a930d6b_485bc3f5","line":13,"in_reply_to":"1a930d6b_7006b387","updated":"2015-01-27 01:16:08.000000000","message":"line 229-232, for the replica connection, we get default parameters of ssh connection the same as primary.","commit_id":"5aba17cadc2a9807596be639213d090fb622fe3d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f10adec3a5ec15d6ffb8bdb9478f1463d27d3159","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"By default, the parameters of the connection such as \u0027san_ssh_port\u0027"},{"line_number":13,"context_line":"are the same between secondary and primary storage."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia19a1cb47019c6a3a4156e81c86592d3e0cb1535"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a930d6b_50729711","line":14,"updated":"2015-01-26 19:08:22.000000000","message":"Need to add DocImpact tag please.","commit_id":"5aba17cadc2a9807596be639213d090fb622fe3d"},{"author":{"_account_id":8587,"name":"Li Min Liu","email":"liulm@certusnet.com.cn","username":"LarryLiu"},"change_message_id":"e1ba041a468db675ac47c598fb5899fa4f483b6b","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"By default, the parameters of the connection such as \u0027san_ssh_port\u0027"},{"line_number":13,"context_line":"are the same between secondary and primary storage."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia19a1cb47019c6a3a4156e81c86592d3e0cb1535"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a930d6b_a86b4783","line":14,"in_reply_to":"1a930d6b_50729711","updated":"2015-01-27 01:16:08.000000000","message":"Thanks,will update","commit_id":"5aba17cadc2a9807596be639213d090fb622fe3d"}],"cinder/tests/volume/drivers/test_san_driver.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"16804de6bd4fa3d598704f15fea06234aa8b5c8d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"            configuration\u003dconf.Configuration(None))"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def tearDown(self):"},{"line_number":31,"context_line":"        pass"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _set_flag(self, flag, value):"},{"line_number":34,"context_line":"        group \u003d self.driver.configuration.config_group"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_3c7f9d67","line":31,"updated":"2015-01-26 22:59:31.000000000","message":"No need to add empty tearDown method","commit_id":"5aba17cadc2a9807596be639213d090fb622fe3d"},{"author":{"_account_id":8587,"name":"Li Min Liu","email":"liulm@certusnet.com.cn","username":"LarryLiu"},"change_message_id":"e1ba041a468db675ac47c598fb5899fa4f483b6b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"            configuration\u003dconf.Configuration(None))"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def tearDown(self):"},{"line_number":31,"context_line":"        pass"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _set_flag(self, flag, value):"},{"line_number":34,"context_line":"        group \u003d self.driver.configuration.config_group"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_4812e309","line":31,"in_reply_to":"1a930d6b_3c7f9d67","updated":"2015-01-27 01:16:08.000000000","message":"thanks, will remove.","commit_id":"5aba17cadc2a9807596be639213d090fb622fe3d"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"16804de6bd4fa3d598704f15fea06234aa8b5c8d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        group \u003d self.driver.configuration.config_group"},{"line_number":35,"context_line":"        self.driver.configuration.set_override(flag, value, group)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _reset_flags(self):"},{"line_number":38,"context_line":"        self.driver.configuration.local_conf.reset()"},{"line_number":39,"context_line":"        for k, v in self._def_flags.iteritems():"},{"line_number":40,"context_line":"            self._set_flag(k, v)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_fcefd51b","line":37,"updated":"2015-01-26 22:59:31.000000000","message":"Is it used anywhere?","commit_id":"5aba17cadc2a9807596be639213d090fb622fe3d"},{"author":{"_account_id":8587,"name":"Li Min Liu","email":"liulm@certusnet.com.cn","username":"LarryLiu"},"change_message_id":"e1ba041a468db675ac47c598fb5899fa4f483b6b","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        group \u003d self.driver.configuration.config_group"},{"line_number":35,"context_line":"        self.driver.configuration.set_override(flag, value, group)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _reset_flags(self):"},{"line_number":38,"context_line":"        self.driver.configuration.local_conf.reset()"},{"line_number":39,"context_line":"        for k, v in self._def_flags.iteritems():"},{"line_number":40,"context_line":"            self._set_flag(k, v)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_c8fdf3b2","line":37,"in_reply_to":"1a930d6b_fcefd51b","updated":"2015-01-27 01:16:08.000000000","message":"will remove, thanks.","commit_id":"5aba17cadc2a9807596be639213d090fb622fe3d"}],"cinder/volume/drivers/san/san.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"809daab91f905cf8be1eebfb60f518451ea0493b","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"class SanReplicationDriver(SanDriver):"},{"line_number":216,"context_line":"    \"\"\"Base class for SAN-style storage volumes implemented replication"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    \"\"\""},{"line_number":219,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":220,"context_line":"        super(SanReplicationDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa81d914_43bf91fb","line":217,"updated":"2015-01-29 02:22:58.000000000","message":"I guess you can keep the comment in one line like:\n\"\"\"Base class for SAN-style storage volumes implemented replication.\"\"\nThen leave a blank line.\nContinue the code def __init__(self, *args, **kwargs):\n...","commit_id":"377b18080f5b84e252eaa23bb84e43ae3da3ce23"},{"author":{"_account_id":8587,"name":"Li Min Liu","email":"liulm@certusnet.com.cn","username":"LarryLiu"},"change_message_id":"dedae2352edc38eb3d86d8328e88c5c79c2c3cb9","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"class SanReplicationDriver(SanDriver):"},{"line_number":216,"context_line":"    \"\"\"Base class for SAN-style storage volumes implemented replication"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    \"\"\""},{"line_number":219,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":220,"context_line":"        super(SanReplicationDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa81d914_a95e6b43","line":217,"in_reply_to":"fa81d914_43bf91fb","updated":"2015-01-29 05:29:25.000000000","message":"Vincent Hou,thanks your comments, will update next patch.","commit_id":"377b18080f5b84e252eaa23bb84e43ae3da3ce23"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"809daab91f905cf8be1eebfb60f518451ea0493b","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        super(SanReplicationDriver, self).check_for_setup_error()"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        if not self.configuration.replica_san_ip:"},{"line_number":251,"context_line":"            raise exception.InvalidInput(reason\u003d_(\"replica_san_ip must be \""},{"line_number":252,"context_line":"                                                  \"set\"))"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        if not (self.configuration.replica_san_password or"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa81d914_632bb594","line":251,"updated":"2015-01-29 02:22:58.000000000","message":"Shall we localize the exception message with _LE before it?","commit_id":"377b18080f5b84e252eaa23bb84e43ae3da3ce23"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a32a0463907417a28dc66d7544a10846273a1b32","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        super(SanReplicationDriver, self).check_for_setup_error()"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        if not self.configuration.replica_san_ip:"},{"line_number":251,"context_line":"            raise exception.InvalidInput(reason\u003d_(\"replica_san_ip must be \""},{"line_number":252,"context_line":"                                                  \"set\"))"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        if not (self.configuration.replica_san_password or"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa81d914_23a29aae","line":251,"in_reply_to":"fa81d914_632bb594","updated":"2015-01-29 03:44:37.000000000","message":"Exception messages should use _(), not _LE().","commit_id":"377b18080f5b84e252eaa23bb84e43ae3da3ce23"},{"author":{"_account_id":8587,"name":"Li Min Liu","email":"liulm@certusnet.com.cn","username":"LarryLiu"},"change_message_id":"dedae2352edc38eb3d86d8328e88c5c79c2c3cb9","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        super(SanReplicationDriver, self).check_for_setup_error()"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        if not self.configuration.replica_san_ip:"},{"line_number":251,"context_line":"            raise exception.InvalidInput(reason\u003d_(\"replica_san_ip must be \""},{"line_number":252,"context_line":"                                                  \"set\"))"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        if not (self.configuration.replica_san_password or"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa81d914_f4183a77","line":251,"in_reply_to":"fa81d914_632bb594","updated":"2015-01-29 05:29:25.000000000","message":"I refer the following doc, \nhttp://docs.openstack.org/developer/oslo.i18n/guidelines.html\n\nand I think it should use _(), not _LE()\n\nthanks.","commit_id":"377b18080f5b84e252eaa23bb84e43ae3da3ce23"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"809daab91f905cf8be1eebfb60f518451ea0493b","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        if not (self.configuration.replica_san_password or"},{"line_number":255,"context_line":"                self.configuration.replica_san_private_key):"},{"line_number":256,"context_line":"            raise exception.InvalidInput("},{"line_number":257,"context_line":"                reason\u003d_(\u0027Specify replica_san_password or \u0027"},{"line_number":258,"context_line":"                         \u0027replica_san_private_key\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa81d914_8319898a","line":257,"updated":"2015-01-29 02:22:58.000000000","message":"Shall we localize the exception message with _LE before it?","commit_id":"377b18080f5b84e252eaa23bb84e43ae3da3ce23"}]}
