)]}'
{"cinder/tests/unit/api/contrib/test_services.py":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"b45fe75c75e28fff282cda8b3756e158470e3bab","unresolved":false,"context_lines":[{"line_number":795,"context_line":"                                              mock.sentinel.backend_id)"},{"line_number":796,"context_line":"        self.assertEqual(202, res.status_code)"},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"    @mock.patch(\u0027cinder.objects.ServiceList.get_all\u0027)"},{"line_number":799,"context_line":"    def test_services_failover_host_not_found(self, mock_get_all_services):"},{"line_number":800,"context_line":"        url \u003d \u0027/v2/%s/os-services/failover_host\u0027 % fake.PROJECT_ID"},{"line_number":801,"context_line":"        req \u003d fakes.HTTPRequest.blank(url)"},{"line_number":802,"context_line":"        mock_get_all_services.return_value \u003d []"},{"line_number":803,"context_line":"        body \u003d {\u0027host\u0027: mock.sentinel.host,"},{"line_number":804,"context_line":"                \u0027backend_id\u0027: mock.sentinel.backend_id}"},{"line_number":805,"context_line":"        msg \u003d \u0027No service found with host\u003d%s\u0027 % mock.sentinel.host"},{"line_number":806,"context_line":"        result \u003d self.assertRaises(exception.InvalidInput,"},{"line_number":807,"context_line":"                                   self.controller.update,"},{"line_number":808,"context_line":"                                   req, \u0027failover_host\u0027, body)"},{"line_number":809,"context_line":"        self.assertEqual(msg, result.msg)"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"    @mock.patch(\u0027cinder.objects.ServiceList.get_all\u0027)"},{"line_number":812,"context_line":"    def test_services_failover_cluster_not_found(self, mock_get_all_services):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_759cb6c0","line":809,"range":{"start_line":798,"start_character":3,"end_line":809,"end_character":41},"updated":"2017-03-02 09:25:33.000000000","message":"These 6 testcases can be wrapped with ddt into two testcases.\n1. test_services_action_host_not_found\n2. test_services_action_cluster_not_found","commit_id":"ca4326a1700a5e44e9e10bd00c4d3c0c5f8d814a"},{"author":{"_account_id":20191,"name":"Dinesh Bhor","email":"bhordinesh07@gmail.com","username":"dineshbhor"},"change_message_id":"bbf5031ab109f5b1f4941d0078d309161cd9fa53","unresolved":false,"context_lines":[{"line_number":795,"context_line":"                                              mock.sentinel.backend_id)"},{"line_number":796,"context_line":"        self.assertEqual(202, res.status_code)"},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"    @mock.patch(\u0027cinder.objects.ServiceList.get_all\u0027)"},{"line_number":799,"context_line":"    def test_services_failover_host_not_found(self, mock_get_all_services):"},{"line_number":800,"context_line":"        url \u003d \u0027/v2/%s/os-services/failover_host\u0027 % fake.PROJECT_ID"},{"line_number":801,"context_line":"        req \u003d fakes.HTTPRequest.blank(url)"},{"line_number":802,"context_line":"        mock_get_all_services.return_value \u003d []"},{"line_number":803,"context_line":"        body \u003d {\u0027host\u0027: mock.sentinel.host,"},{"line_number":804,"context_line":"                \u0027backend_id\u0027: mock.sentinel.backend_id}"},{"line_number":805,"context_line":"        msg \u003d \u0027No service found with host\u003d%s\u0027 % mock.sentinel.host"},{"line_number":806,"context_line":"        result \u003d self.assertRaises(exception.InvalidInput,"},{"line_number":807,"context_line":"                                   self.controller.update,"},{"line_number":808,"context_line":"                                   req, \u0027failover_host\u0027, body)"},{"line_number":809,"context_line":"        self.assertEqual(msg, result.msg)"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"    @mock.patch(\u0027cinder.objects.ServiceList.get_all\u0027)"},{"line_number":812,"context_line":"    def test_services_failover_cluster_not_found(self, mock_get_all_services):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_db155a49","line":809,"range":{"start_line":798,"start_character":3,"end_line":809,"end_character":41},"in_reply_to":"ba2be162_759cb6c0","updated":"2017-03-03 06:37:28.000000000","message":"Done","commit_id":"ca4326a1700a5e44e9e10bd00c4d3c0c5f8d814a"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"2b22fc6651992832e2dc7ef0f6ac0ee362ca0a45","unresolved":false,"context_lines":[{"line_number":810,"context_line":"        result \u003d self.assertRaises(exception.InvalidInput,"},{"line_number":811,"context_line":"                                   self.controller.update,"},{"line_number":812,"context_line":"                                   req, method, body)"},{"line_number":813,"context_line":"        self.assertEqual(msg, result.msg)"},{"line_number":814,"context_line":""},{"line_number":815,"context_line":"    @ddt.data((\u0027failover\u0027, {\u0027cluster\u0027: mock.sentinel.cluster,"},{"line_number":816,"context_line":"                            \u0027backend_id\u0027: mock.sentinel.backend_id}),"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_20fb93c2","line":813,"updated":"2017-03-03 13:52:33.000000000","message":"I would actually prefer we just validate the InvalidInput exception was raised and not assert on the specific text of the exception. This is at least better than validating log messages though.","commit_id":"16082ddfd632d12f604cda628e4515dba0d2c448"}],"cinder/volume/api.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"2b22fc6651992832e2dc7ef0f6ac0ee362ca0a45","unresolved":false,"context_lines":[{"line_number":1718,"context_line":"                           \u0027binary\u0027: constants.VOLUME_BINARY})"},{"line_number":1719,"context_line":""},{"line_number":1720,"context_line":"        if not services:"},{"line_number":1721,"context_line":"            if host:"},{"line_number":1722,"context_line":"                msg \u003d _(\"No service found with host\u003d%s\") % host"},{"line_number":1723,"context_line":"            else:"},{"line_number":1724,"context_line":"                msg \u003d _(\"No service found with cluster\u003d%s\") % cluster_name"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_a02dc347","line":1721,"updated":"2017-03-03 13:52:33.000000000","message":"Thank you, this is much more readable. :)","commit_id":"16082ddfd632d12f604cda628e4515dba0d2c448"}]}
