)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"d1fc77c392cf5f17488c1128520e8b00889cbc32","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Handle initialize_connection() exception in volume manager"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Due to the fact that several drivers require back-end communication to fetech"},{"line_number":10,"context_line":"connection information for a volume, it\u0027s possile that these driver throw"},{"line_number":11,"context_line":"exceptions while doing that.  Currently exceptions can bubble up to volume"},{"line_number":12,"context_line":"API and still no handled.  This patch logs exception in volume manager and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2BFfY%3D","line":9,"updated":"2013-12-02 17:54:04.000000000","message":"change back-end-\u003ebackend and fetech-\u003efetch.","commit_id":"b5b13e4b3d109f96139d1d79ccbc908ee4c23af9"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"d1fc77c392cf5f17488c1128520e8b00889cbc32","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Due to the fact that several drivers require back-end communication to fetech"},{"line_number":10,"context_line":"connection information for a volume, it\u0027s possile that these driver throw"},{"line_number":11,"context_line":"exceptions while doing that.  Currently exceptions can bubble up to volume"},{"line_number":12,"context_line":"API and still no handled.  This patch logs exception in volume manager and"},{"line_number":13,"context_line":"then raise VolumeBackendAPIException to caller."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ib3cc152e04ba029dd835a64b0cfb0a77b8a6828e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F%2BFe4%3D","line":12,"updated":"2013-12-02 17:54:04.000000000","message":"Recommend reword to \u0027API without being handled.\u0027","commit_id":"b5b13e4b3d109f96139d1d79ccbc908ee4c23af9"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"786323a3d04828f6aaf24bbb40a8d0287537cae0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"connection information for a volume, it\u0027s possile that these driver throw"},{"line_number":11,"context_line":"exceptions while doing that.  Currently exceptions can bubble up to volume"},{"line_number":12,"context_line":"API and still no handled.  This patch logs exception in volume manager and"},{"line_number":13,"context_line":"then raise VolumeBackendAPIException to caller."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ib3cc152e04ba029dd835a64b0cfb0a77b8a6828e"},{"line_number":16,"context_line":"Closes-bug: 1256804"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F975A%3D","line":13,"updated":"2013-12-04 09:25:22.000000000","message":"raise -\u003e raises","commit_id":"b5b13e4b3d109f96139d1d79ccbc908ee4c23af9"},{"author":{"_account_id":8874,"name":"ling-yun","email":"YunlingZeng@hotmail.com","username":"ling-yun"},"change_message_id":"e5adc39f566665eb835e71c27ac03d5018d58773","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Handle initialize_connection() exception in volume manager"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Due to the fact that several drivers require backend communication to fetch"},{"line_number":10,"context_line":"connection information for a volume, it\u0027s possile that these driver throw"},{"line_number":11,"context_line":"exceptions while doing that.  Currently exceptions can bubble up to volume"},{"line_number":12,"context_line":"API not being handled.  This patch logs exception in volume manager and"},{"line_number":13,"context_line":"then raises VolumeBackendAPIException to caller."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAATn%2F8oNw%3D","line":10,"updated":"2013-12-24 03:16:42.000000000","message":"Minor spelling error.\nUse \u0027drivers\u0027 instead of \u0027driver\u0027","commit_id":"17e556acf5c33583dcb6ed34bfd5a5fd9c148c9e"}],"cinder/api/contrib/volume_actions.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"3f878cc9f8b7b522fec94d2f7dda7ed562726a8b","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            info \u003d self.volume_api.initialize_connection(context,"},{"line_number":193,"context_line":"                                                         volume,"},{"line_number":194,"context_line":"                                                         connector)"},{"line_number":195,"context_line":"        except excpetion.VolumeBackendAPIException as error:"},{"line_number":196,"context_line":"            msg \u003d _(\"Unable to fetch connection information from back-end.\")"},{"line_number":197,"context_line":"            raise webob.exe.HTTPInternalServerError(msg)"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F98Ss%3D","line":195,"updated":"2013-12-04 09:08:48.000000000","message":"excpetion -\u003e exception","commit_id":"b5b13e4b3d109f96139d1d79ccbc908ee4c23af9"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"d1fc77c392cf5f17488c1128520e8b00889cbc32","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                                                         volume,"},{"line_number":194,"context_line":"                                                         connector)"},{"line_number":195,"context_line":"        except excpetion.VolumeBackendAPIException as error:"},{"line_number":196,"context_line":"            msg \u003d _(\"Unable to fetch connection information from back-end.\")"},{"line_number":197,"context_line":"            raise webob.exe.HTTPInternalServerError(msg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        return {\u0027connection_info\u0027: info}"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BFgk%3D","line":196,"updated":"2013-12-02 17:54:04.000000000","message":"Recommend changing this to \u0027backend\u0027 rather than \u0027back-end\u0027 .  This appears to be how backends are referred to in most cases.","commit_id":"b5b13e4b3d109f96139d1d79ccbc908ee4c23af9"},{"author":{"_account_id":7236,"name":"Kiyohiro Adachi","email":"kiy-adachi@vx.jp.nec.com","username":"kadachi"},"change_message_id":"50e4696b640d2b6107419fe697eed592d9df68cf","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            info \u003d self.volume_api.initialize_connection(context,"},{"line_number":193,"context_line":"                                                         volume,"},{"line_number":194,"context_line":"                                                         connector)"},{"line_number":195,"context_line":"        except exception.VolumeBackendAPIException as error:"},{"line_number":196,"context_line":"            msg \u003d _(\"Unable to fetch connection information from backend.\")"},{"line_number":197,"context_line":"            raise webob.exe.HTTPInternalServerError(msg)"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F85TM%3D","line":195,"updated":"2013-12-19 02:59:06.000000000","message":"It is a simple question of me.\nWhy not use the \u0027error.msg\u0027?\nMessage is too redundant?\nThanks.","commit_id":"04cfda1bd8f5b6a1aa076e6764de75d0f1f15ed5"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"5b6f1e3974297825e3d75c1277def5914ee186ef","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            info \u003d self.volume_api.initialize_connection(context,"},{"line_number":193,"context_line":"                                                         volume,"},{"line_number":194,"context_line":"                                                         connector)"},{"line_number":195,"context_line":"        except exception.VolumeBackendAPIException as error:"},{"line_number":196,"context_line":"            msg \u003d _(\"Unable to fetch connection information from backend.\")"},{"line_number":197,"context_line":"            raise webob.exe.HTTPInternalServerError(msg)"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F85HY%3D","line":195,"in_reply_to":"AAAATn%2F85TM%3D","updated":"2013-12-19 04:04:13.000000000","message":"\u0027cos error.msg contains internal information (why initialize_connection() failed at driver level, for example) I\u0027d like to keep away from end users.","commit_id":"04cfda1bd8f5b6a1aa076e6764de75d0f1f15ed5"},{"author":{"_account_id":7236,"name":"Kiyohiro Adachi","email":"kiy-adachi@vx.jp.nec.com","username":"kadachi"},"change_message_id":"50e4696b640d2b6107419fe697eed592d9df68cf","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                                                         connector)"},{"line_number":195,"context_line":"        except exception.VolumeBackendAPIException as error:"},{"line_number":196,"context_line":"            msg \u003d _(\"Unable to fetch connection information from backend.\")"},{"line_number":197,"context_line":"            raise webob.exe.HTTPInternalServerError(msg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        return {\u0027connection_info\u0027: info}"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F85SQ%3D","line":197,"updated":"2013-12-19 02:59:06.000000000","message":"exe? exc!","commit_id":"04cfda1bd8f5b6a1aa076e6764de75d0f1f15ed5"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"5b6f1e3974297825e3d75c1277def5914ee186ef","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                                                         connector)"},{"line_number":195,"context_line":"        except exception.VolumeBackendAPIException as error:"},{"line_number":196,"context_line":"            msg \u003d _(\"Unable to fetch connection information from backend.\")"},{"line_number":197,"context_line":"            raise webob.exe.HTTPInternalServerError(msg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        return {\u0027connection_info\u0027: info}"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F85HU%3D","line":197,"in_reply_to":"AAAATn%2F85SQ%3D","updated":"2013-12-19 04:04:13.000000000","message":"Done","commit_id":"04cfda1bd8f5b6a1aa076e6764de75d0f1f15ed5"}],"cinder/tests/api/contrib/test_volume_actions.py":[{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"ccc8caba2dba89f9103925274350fbbae7777004","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            self.assertEqual(res.status_int, 202)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def test_initialize_connection(self):"},{"line_number":69,"context_line":"        volume.API.initialize_connection \u003d mock.Mock(return_value\u003d{})"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        body \u003d {\u0027os-initialize_connection\u0027: {\u0027connector\u0027: \u0027fake\u0027}}"},{"line_number":72,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/1/action\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Xyg%3D","line":69,"updated":"2013-12-12 05:57:07.000000000","message":"From my little experience with mock, mocking functions out this way will leak the changes into other tests.  I suggest using the @mock.patch.object decorator here instead.","commit_id":"4550f1841df4ceb592ff932f19bebad055045fe0"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"ccc8caba2dba89f9103925274350fbbae7777004","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.assertEqual(res.status_int, 200)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def test_initialize_connection_without_connector(self):"},{"line_number":81,"context_line":"        volume.API.initialize_connection \u003d mock.Mock(return_value\u003d{})"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        body \u003d {\u0027os-initialize_connection\u0027: {}}"},{"line_number":84,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/1/action\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Xyc%3D","line":81,"updated":"2013-12-12 05:57:07.000000000","message":"Ditto.","commit_id":"4550f1841df4ceb592ff932f19bebad055045fe0"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"ccc8caba2dba89f9103925274350fbbae7777004","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.assertEqual(res.status_int, 400)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_initialize_connection_exception(self):"},{"line_number":93,"context_line":"        volume.API.initialize_connection \u003d mock.Mock()"},{"line_number":94,"context_line":"        volume.API.initialize_connection.side_effect \u003d \\"},{"line_number":95,"context_line":"            exception.VolumeBackendAPIException(data\u003dNone)"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9XyY%3D","line":93,"updated":"2013-12-12 05:57:07.000000000","message":"Ditto.","commit_id":"4550f1841df4ceb592ff932f19bebad055045fe0"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"75f3521a67b6ad5e298612b66b4e5617d6eb6ee2","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import datetime"},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"from mock import patch"},{"line_number":20,"context_line":"import uuid"},{"line_number":21,"context_line":"import webob"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9DzA%3D","line":19,"updated":"2013-12-17 07:25:44.000000000","message":"patch is an object.\n\nhttp://docs.openstack.org/developer/hacking/#imports","commit_id":"8be1f31739d6543a19eac41cf66bee4b7a8908a3"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"f433f4a562cf2f19553734de5880e889bea8bd0e","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import datetime"},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"import mock"},{"line_number":20,"context_line":"import uuid"},{"line_number":21,"context_line":"import webob"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F8rQY%3D","line":19,"updated":"2013-12-23 11:37:35.000000000","message":"mock is third party imports but not standard libraries","commit_id":"cc965adac9e1a8677c6177a0b896a65638ff6620"}],"cinder/volume/manager.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"d1fc77c392cf5f17488c1128520e8b00889cbc32","unresolved":false,"context_lines":[{"line_number":625,"context_line":"        try:"},{"line_number":626,"context_line":"            conn_info \u003d self.driver.initialize_connection(volume, connector)"},{"line_number":627,"context_line":"        except Exception:"},{"line_number":628,"context_line":"            err_msg \u003d (_(\u0027Unable to fetch connection information from back-end.\u0027))"},{"line_number":629,"context_line":"            LOG.error(err_msg)"},{"line_number":630,"context_line":"            raise excpetion.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":631,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BFgQ%3D","line":628,"updated":"2013-12-02 17:54:04.000000000","message":"Same comment here.","commit_id":"b5b13e4b3d109f96139d1d79ccbc908ee4c23af9"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"3f878cc9f8b7b522fec94d2f7dda7ed562726a8b","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        except Exception:"},{"line_number":628,"context_line":"            err_msg \u003d (_(\u0027Unable to fetch connection information from back-end.\u0027))"},{"line_number":629,"context_line":"            LOG.error(err_msg)"},{"line_number":630,"context_line":"            raise excpetion.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"        # Add qos_specs to connection info"},{"line_number":633,"context_line":"        typeid \u003d volume[\u0027volume_type_id\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F98SY%3D","line":630,"updated":"2013-12-04 09:08:48.000000000","message":"excpetion -\u003e exception","commit_id":"b5b13e4b3d109f96139d1d79ccbc908ee4c23af9"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"ba431c19ea189374c8465d1c26e7b6aed0348666","unresolved":false,"context_lines":[{"line_number":639,"context_line":"        try:"},{"line_number":640,"context_line":"            conn_info \u003d self.driver.initialize_connection(volume, connector)"},{"line_number":641,"context_line":"        except Exception:"},{"line_number":642,"context_line":"            err_msg \u003d (_(\u0027Unable to fetch connection information from backend.\u0027))"},{"line_number":643,"context_line":"            LOG.error(err_msg)"},{"line_number":644,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":645,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F97Zw%3D","line":642,"updated":"2013-12-04 11:20:42.000000000","message":"Do we need to retain the original message?","commit_id":"47edb858554e2bb9061005b6afd0e63f8c0ab7d5"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0fd1ef2dfec222aacaf2f6a616c249f2f63e12a5","unresolved":false,"context_lines":[{"line_number":639,"context_line":"        try:"},{"line_number":640,"context_line":"            conn_info \u003d self.driver.initialize_connection(volume, connector)"},{"line_number":641,"context_line":"        except Exception:"},{"line_number":642,"context_line":"            err_msg \u003d (_(\u0027Unable to fetch connection information from backend.\u0027))"},{"line_number":643,"context_line":"            LOG.error(err_msg)"},{"line_number":644,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":645,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F93NE%3D","line":642,"in_reply_to":"AAAATn%2F97Zw%3D","updated":"2013-12-05 05:19:59.000000000","message":"Yeah we should.  Will fix that.","commit_id":"47edb858554e2bb9061005b6afd0e63f8c0ab7d5"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"49d921dfc297f8f7f081f60fad8a4d9500f4e161","unresolved":false,"context_lines":[{"line_number":640,"context_line":"            conn_info \u003d self.driver.initialize_connection(volume, connector)"},{"line_number":641,"context_line":"        except Exception:"},{"line_number":642,"context_line":"            err_msg \u003d (_(\u0027Unable to fetch connection information from backend.\u0027))"},{"line_number":643,"context_line":"            LOG.error(err_msg)"},{"line_number":644,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"        # Add qos_specs to connection info"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F94Zc%3D","line":643,"updated":"2013-12-04 22:28:28.000000000","message":"Agree that keeping the original error message is a good idea.","commit_id":"47edb858554e2bb9061005b6afd0e63f8c0ab7d5"}]}
