)]}'
{"cinder/tests/unit/volume/drivers/test_rbd.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":1581,"context_line":"            mock_driver._connect_to_rados.assert_not_called()"},{"line_number":1582,"context_line":"            mock_driver._disconnect_from_rados.assert_not_called()"},{"line_number":1583,"context_line":""},{"line_number":1584,"context_line":"        mock_driver.reset_mock()"},{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"    def test_rbd_volume_proxy_external_conn_no_iocxt(self):"},{"line_number":1587,"context_line":"        mock_driver \u003d mock.Mock(name\u003d\u0027driver\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_77decd3e","line":1584,"updated":"2017-09-08 09:58:02.000000000","message":"-1: This is unnecessary","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":1588,"context_line":"        mock_driver._connect_to_rados.return_value \u003d (None, None)"},{"line_number":1589,"context_line":"        with driver.RBDVolumeProxy(mock_driver, self.volume_a.name,"},{"line_number":1590,"context_line":"                                   cluster\u003d\u0027fake_cl\u0027):"},{"line_number":1591,"context_line":"            self.assertEqual(1, mock_driver._connect_to_rados.call_count)"},{"line_number":1592,"context_line":""},{"line_number":1593,"context_line":"        self.assertEqual(1, mock_driver._disconnect_from_rados.call_count)"},{"line_number":1594,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_97b25905","line":1591,"updated":"2017-09-08 09:58:02.000000000","message":"nit: verify call parameters","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":1590,"context_line":"                                   cluster\u003d\u0027fake_cl\u0027):"},{"line_number":1591,"context_line":"            self.assertEqual(1, mock_driver._connect_to_rados.call_count)"},{"line_number":1592,"context_line":""},{"line_number":1593,"context_line":"        self.assertEqual(1, mock_driver._disconnect_from_rados.call_count)"},{"line_number":1594,"context_line":""},{"line_number":1595,"context_line":"        mock_driver.reset_mock()"},{"line_number":1596,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_17c66969","line":1593,"updated":"2017-09-08 09:58:02.000000000","message":"nit: verify call parameters","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":1592,"context_line":""},{"line_number":1593,"context_line":"        self.assertEqual(1, mock_driver._disconnect_from_rados.call_count)"},{"line_number":1594,"context_line":""},{"line_number":1595,"context_line":"        mock_driver.reset_mock()"},{"line_number":1596,"context_line":""},{"line_number":1597,"context_line":"    def test_rbd_volume_proxy_external_conn_error(self):"},{"line_number":1598,"context_line":"        mock_driver \u003d mock.Mock(name\u003d\u0027driver\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_17ed49ef","line":1595,"updated":"2017-09-08 09:58:02.000000000","message":"-1: This is unnecessary","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":1594,"context_line":""},{"line_number":1595,"context_line":"        mock_driver.reset_mock()"},{"line_number":1596,"context_line":""},{"line_number":1597,"context_line":"    def test_rbd_volume_proxy_external_conn_error(self):"},{"line_number":1598,"context_line":"        mock_driver \u003d mock.Mock(name\u003d\u0027driver\u0027)"},{"line_number":1599,"context_line":"        mock_driver._connect_to_rados.return_value \u003d (None, None)"},{"line_number":1600,"context_line":"        exc \u003d mock_driver.rbd.Error.return_value"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_d7b8e1c8","line":1597,"updated":"2017-09-08 09:58:02.000000000","message":"-1: This test is wrong, it\u0027s not actually testing a connection error, it\u0027s testing the same thing as test_rbd_volume_proxy_external_conn.","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":1602,"context_line":""},{"line_number":1603,"context_line":"        with driver.RBDVolumeProxy(mock_driver, self.volume_a.name,"},{"line_number":1604,"context_line":"                                   cluster\u003d\u0027fake_cl\u0027, iocontext\u003d\u0027fake_io\u0027):"},{"line_number":1605,"context_line":"            mock_driver._connect_to_rados.assert_not_called()"},{"line_number":1606,"context_line":"        mock_driver._disconnect_from_rados.assert_not_called()"},{"line_number":1607,"context_line":""},{"line_number":1608,"context_line":"        mock_driver.reset_mock()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_f7c2bd52","line":1605,"updated":"2017-09-08 09:58:02.000000000","message":"nit: verify call parameters","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":1603,"context_line":"        with driver.RBDVolumeProxy(mock_driver, self.volume_a.name,"},{"line_number":1604,"context_line":"                                   cluster\u003d\u0027fake_cl\u0027, iocontext\u003d\u0027fake_io\u0027):"},{"line_number":1605,"context_line":"            mock_driver._connect_to_rados.assert_not_called()"},{"line_number":1606,"context_line":"        mock_driver._disconnect_from_rados.assert_not_called()"},{"line_number":1607,"context_line":""},{"line_number":1608,"context_line":"        mock_driver.reset_mock()"},{"line_number":1609,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_d7a101ab","line":1606,"updated":"2017-09-08 09:58:02.000000000","message":"nit: verify call parameters","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":1605,"context_line":"            mock_driver._connect_to_rados.assert_not_called()"},{"line_number":1606,"context_line":"        mock_driver._disconnect_from_rados.assert_not_called()"},{"line_number":1607,"context_line":""},{"line_number":1608,"context_line":"        mock_driver.reset_mock()"},{"line_number":1609,"context_line":""},{"line_number":1610,"context_line":"    @common_mocks"},{"line_number":1611,"context_line":"    def test_connect_to_rados(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_179b0973","line":1608,"updated":"2017-09-08 09:58:02.000000000","message":"-1: This is unnecessary","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"}],"cinder/volume/drivers/rbd.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"60c2a5bd87353158e25c6a1b008086807fd39854","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                    try:"},{"line_number":380,"context_line":"                        with RBDVolumeProxy(self, t, read_only\u003dTrue,"},{"line_number":381,"context_line":"                                            cluster\u003dclient.cluster,"},{"line_number":382,"context_line":"                                            iocontext\u003dclient.ioctx) as v:"},{"line_number":383,"context_line":"                            v.diff_iterate(0, v.size(), None, self._iterate_cb)"},{"line_number":384,"context_line":"                    except self.rbd.ImageNotFound:"},{"line_number":385,"context_line":"                        LOG.debug(\"Image %s is not found.\", t)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_fe59d85a","line":382,"updated":"2017-09-05 14:35:48.000000000","message":"I like this idea. But will it leave open connection or close it at the end of \u0027for\u0027 cycle?","commit_id":"298e39f7ca5b9204141133bd789ec9154ce8a11e"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"295c5509948598667072e5dedb777fd5a67d5dbc","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                    try:"},{"line_number":380,"context_line":"                        with RBDVolumeProxy(self, t, read_only\u003dTrue,"},{"line_number":381,"context_line":"                                            cluster\u003dclient.cluster,"},{"line_number":382,"context_line":"                                            iocontext\u003dclient.ioctx) as v:"},{"line_number":383,"context_line":"                            v.diff_iterate(0, v.size(), None, self._iterate_cb)"},{"line_number":384,"context_line":"                    except self.rbd.ImageNotFound:"},{"line_number":385,"context_line":"                        LOG.debug(\"Image %s is not found.\", t)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_3e1627f3","line":382,"in_reply_to":"7f287b81_fe59d85a","updated":"2017-09-06 10:10:37.000000000","message":"RADOSClient context manager, which opens connection, will take care about it, line 160","commit_id":"298e39f7ca5b9204141133bd789ec9154ce8a11e"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    \"\"\""},{"line_number":117,"context_line":"    def __init__(self, driver, name, pool\u003dNone, snapshot\u003dNone,"},{"line_number":118,"context_line":"                 read_only\u003dFalse, remote\u003dNone, timeout\u003dNone,"},{"line_number":119,"context_line":"                 cluster\u003dNone, iocontext\u003dNone):"},{"line_number":120,"context_line":"        client, ioctx \u003d (driver._connect_to_rados(pool, remote, timeout) if"},{"line_number":121,"context_line":"                         not (cluster and iocontext) else (cluster, iocontext))"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_d776a1a4","line":119,"updated":"2017-09-08 09:58:02.000000000","message":"-1: This needs to be documented, because when you pass cluster and iocontext some parameters will not be used (which is OK).\n\nWe also need to document that when reusing a connection the caller must handle things like ConnectionShutdown because next call will not automatically create a new connection.","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    \"\"\""},{"line_number":117,"context_line":"    def __init__(self, driver, name, pool\u003dNone, snapshot\u003dNone,"},{"line_number":118,"context_line":"                 read_only\u003dFalse, remote\u003dNone, timeout\u003dNone,"},{"line_number":119,"context_line":"                 cluster\u003dNone, iocontext\u003dNone):"},{"line_number":120,"context_line":"        client, ioctx \u003d (driver._connect_to_rados(pool, remote, timeout) if"},{"line_number":121,"context_line":"                         not (cluster and iocontext) else (cluster, iocontext))"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_17ff89ab","line":119,"range":{"start_line":119,"start_character":17,"end_line":119,"end_character":24},"updated":"2017-09-08 09:58:02.000000000","message":"-1: cluster doesn\u0027t seem like the right name, client seems more appropriate.","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"efe3710541879d9e6daa3d9951e2c8da1d8205ab","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    \"\"\""},{"line_number":117,"context_line":"    def __init__(self, driver, name, pool\u003dNone, snapshot\u003dNone,"},{"line_number":118,"context_line":"                 read_only\u003dFalse, remote\u003dNone, timeout\u003dNone,"},{"line_number":119,"context_line":"                 cluster\u003dNone, iocontext\u003dNone):"},{"line_number":120,"context_line":"        client, ioctx \u003d (driver._connect_to_rados(pool, remote, timeout) if"},{"line_number":121,"context_line":"                         not (cluster and iocontext) else (cluster, iocontext))"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_3095eb87","line":119,"in_reply_to":"7f287b81_d776a1a4","updated":"2017-09-08 14:01:55.000000000","message":"It is how it\u0027s called in Rados client, I\u0027ll rename","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        client, ioctx \u003d (driver._connect_to_rados(pool, remote, timeout) if"},{"line_number":121,"context_line":"                         not (cluster and iocontext) else (cluster, iocontext))"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        self.driver \u003d driver"},{"line_number":124,"context_line":"        self.client \u003d client"},{"line_number":125,"context_line":"        self.ioctx \u003d ioctx"},{"line_number":126,"context_line":"        self._close_conn \u003d not (cluster and iocontext)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        if snapshot is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_77424d11","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":26},"updated":"2017-09-08 09:58:02.000000000","message":"?: Why did we move this here?","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"efe3710541879d9e6daa3d9951e2c8da1d8205ab","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        client, ioctx \u003d (driver._connect_to_rados(pool, remote, timeout) if"},{"line_number":121,"context_line":"                         not (cluster and iocontext) else (cluster, iocontext))"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        self.driver \u003d driver"},{"line_number":124,"context_line":"        self.client \u003d client"},{"line_number":125,"context_line":"        self.ioctx \u003d ioctx"},{"line_number":126,"context_line":"        self._close_conn \u003d not (cluster and iocontext)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        if snapshot is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_f08ac361","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":26},"in_reply_to":"7f287b81_77424d11","updated":"2017-09-08 14:01:55.000000000","message":"I\u0027ve moved them to keep in one place, I\u0027ll move back","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        self.driver \u003d driver"},{"line_number":124,"context_line":"        self.client \u003d client"},{"line_number":125,"context_line":"        self.ioctx \u003d ioctx"},{"line_number":126,"context_line":"        self._close_conn \u003d not (cluster and iocontext)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        if snapshot is not None:"},{"line_number":129,"context_line":"            self.snapshot \u003d utils.convert_str(snapshot)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_b7a0b5f5","line":126,"updated":"2017-09-08 09:58:02.000000000","message":"-1: If we move this before L120 we don\u0027t have to have the same logic on L121","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"efe3710541879d9e6daa3d9951e2c8da1d8205ab","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        self.driver \u003d driver"},{"line_number":124,"context_line":"        self.client \u003d client"},{"line_number":125,"context_line":"        self.ioctx \u003d ioctx"},{"line_number":126,"context_line":"        self._close_conn \u003d not (cluster and iocontext)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        if snapshot is not None:"},{"line_number":129,"context_line":"            self.snapshot \u003d utils.convert_str(snapshot)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_70f493f1","line":126,"in_reply_to":"7f287b81_b7a0b5f5","updated":"2017-09-08 14:01:55.000000000","message":"make sense","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        self._close_conn \u003d not (cluster and iocontext)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        if snapshot is not None:"},{"line_number":129,"context_line":"            self.snapshot \u003d utils.convert_str(snapshot)"},{"line_number":130,"context_line":"        try:"},{"line_number":131,"context_line":"            self.volume \u003d driver.rbd.Image(ioctx,"},{"line_number":132,"context_line":"                                           utils.convert_str(name),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_3795e587","line":129,"updated":"2017-09-08 09:58:02.000000000","message":"-1: Why do we store this on the instance?  We don\u0027t do it for the volume name and it doesn\u0027t seem to be of any use","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df577732975ea51c8eba7a68521ae44851782b84","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        except driver.rbd.Error:"},{"line_number":137,"context_line":"            LOG.exception(\"error opening rbd image %s\", name)"},{"line_number":138,"context_line":"            if self._close_conn:"},{"line_number":139,"context_line":"                self.driver._disconnect_from_rados(self.client, self.ioctx)"},{"line_number":140,"context_line":"            raise"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def __enter__(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_37c3a58b","line":139,"updated":"2017-09-08 09:58:02.000000000","message":"-1: This change is not necessary and makes it harder to read","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"efe3710541879d9e6daa3d9951e2c8da1d8205ab","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        except driver.rbd.Error:"},{"line_number":137,"context_line":"            LOG.exception(\"error opening rbd image %s\", name)"},{"line_number":138,"context_line":"            if self._close_conn:"},{"line_number":139,"context_line":"                self.driver._disconnect_from_rados(self.client, self.ioctx)"},{"line_number":140,"context_line":"            raise"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def __enter__(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_70cdb3b5","line":139,"in_reply_to":"7f287b81_37c3a58b","updated":"2017-09-08 14:01:55.000000000","message":"Why? imo we shouldn\u0027t close connection in case rbd.Error and external conn is used","commit_id":"9a2453cff2fd9044e0c4ed49b76c569d55374ff5"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"8d705c76dd8c19d8410ba20ef76464fce31baad8","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        except driver.rbd.Error:"},{"line_number":137,"context_line":"            LOG.exception(\"error opening rbd image %s\", name)"},{"line_number":138,"context_line":"            if self._close_conn:"},{"line_number":139,"context_line":"                self.driver._disconnect_from_rados(rados_client, rados_ioctx)"},{"line_number":140,"context_line":"            raise"},{"line_number":141,"context_line":"        self.driver \u003d driver"},{"line_number":142,"context_line":"        self.client \u003d rados_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f2577a7_d32ad1e5","line":139,"updated":"2017-09-11 03:40:24.000000000","message":"self.driver hasn\u0027t been assigned, Line 141 must be move ahead of this try:except block for this to work.","commit_id":"f2270e0ac7703bb94b6a66fd66dfd060741735ad"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"0bd05c8c5097e433e9d1b1d678b2bab274435aa5","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        except driver.rbd.Error:"},{"line_number":137,"context_line":"            LOG.exception(\"error opening rbd image %s\", name)"},{"line_number":138,"context_line":"            if self._close_conn:"},{"line_number":139,"context_line":"                self.driver._disconnect_from_rados(rados_client, rados_ioctx)"},{"line_number":140,"context_line":"            raise"},{"line_number":141,"context_line":"        self.driver \u003d driver"},{"line_number":142,"context_line":"        self.client \u003d rados_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f2577a7_4bbba171","line":139,"in_reply_to":"5f2577a7_d32ad1e5","updated":"2017-09-12 16:05:49.000000000","message":"yep, missed from prev patch, thanks","commit_id":"f2270e0ac7703bb94b6a66fd66dfd060741735ad"}]}
