)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"18d44791a8e89cf792fe261211e3400235e7b9d3","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"api: handle NotImplementedError for console output"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Some drivers do not implement getting console output.  Catch this"},{"line_number":10,"context_line":"exception at the API layer and return a 501 from the API in this case."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I144850f4431a7588430da298ba348039bed25403"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"AAAATn%2F9Pmw%3D","line":9,"updated":"2013-12-13 15:28:56.000000000","message":"Could you be more specific here?  From looking at the dependent patch, vmware and hyper-v don\u0027t return console logs, but they return a string basically saying they don\u0027t implement that (empty string for hyperv), but they don\u0027t raise NotImplementedError.","commit_id":"fc8e0d5e1d9212eef9af9e9c9cc4b0fd16d22efb"}],"nova/api/openstack/compute/contrib/console_output.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1e36148d1b6184afcce4cca2e4c350d57106f102","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":72,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":73,"context_line":"        except NotImplementedError:"},{"line_number":74,"context_line":"            msg \u003d _(\"Unable to get console log, functionality not implemented\")"},{"line_number":75,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        # XML output is not correctly escaped, so remove invalid characters"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F9VfA%3D","line":74,"updated":"2013-12-12 14:52:54.000000000","message":"maybe consider saying - not supported instead of not implemented","commit_id":"3fc4c8e73becaae66a41ea532f6567c984a92424"}],"nova/api/openstack/compute/plugins/v3/console_output.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1e36148d1b6184afcce4cca2e4c350d57106f102","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":71,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":72,"context_line":"        except NotImplementedError:"},{"line_number":73,"context_line":"            msg \u003d _(\"Unable to get console log, functionality not implemented\")"},{"line_number":74,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # XML output is not correctly escaped, so remove invalid characters"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F9Ve4%3D","line":73,"updated":"2013-12-12 14:52:54.000000000","message":"ditto","commit_id":"3fc4c8e73becaae66a41ea532f6567c984a92424"}],"nova/tests/api/openstack/compute/plugins/v3/test_console_output.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"84047c6c00288c4b5a9a4723af5b1f68fe21def6","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import string"},{"line_number":17,"context_line":"import webob"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FTqY%3D","side":"PARENT","line":15,"updated":"2013-11-11 09:50:51.000000000","message":"nit, we shouldn\u0027t touch extra thing.","commit_id":"fc516c0a45436bb25a7a8e3d943239fe3b225955"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"08b1cc3797110b89c5d4616460a611a1bc31f7c6","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import string"},{"line_number":17,"context_line":"import webob"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FTk0%3D","side":"PARENT","line":15,"in_reply_to":"AAAATn%2F%2FTqY%3D","updated":"2013-11-11 10:18:37.000000000","message":"oops, not on purpose ...","commit_id":"fc516c0a45436bb25a7a8e3d943239fe3b225955"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2679187d46bef98e42d10a1c349119116342f7be","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        res \u003d req.get_response(self.app)"},{"line_number":139,"context_line":"        self.assertEqual(res.status_int, 400)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def test_get_console_output_with_lenght_as_float(self):"},{"line_number":142,"context_line":"        self.stubs.Set(compute_api.API, \u0027get_console_output\u0027,"},{"line_number":143,"context_line":"                       fakes.fake_not_implemented)"},{"line_number":144,"context_line":"        req \u003d self._create_request()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2BS5s%3D","line":141,"updated":"2013-11-27 18:42:43.000000000","message":"Isn\u0027t this the same method name as above? With the same typo in it? :)","commit_id":"b556fc60ad36210bdd94c0e0b552d43b72be905c"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"747b8bcead41e82508c33ba9ab9d950c09413ec5","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        res \u003d req.get_response(self.app)"},{"line_number":139,"context_line":"        self.assertEqual(res.status_int, 400)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def test_get_console_output_with_lenght_as_float(self):"},{"line_number":142,"context_line":"        self.stubs.Set(compute_api.API, \u0027get_console_output\u0027,"},{"line_number":143,"context_line":"                       fakes.fake_not_implemented)"},{"line_number":144,"context_line":"        req \u003d self._create_request()"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BDnw%3D","line":141,"updated":"2013-12-03 00:33:20.000000000","message":"Looks like Dan\u0027s comment about this function needing a new name still needs fixing.","commit_id":"6375320ff25c219cbae412ae289aeddfe0d7859a"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"686eb70eb4d989f15e013ba9241add620aa8de4a","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        res \u003d req.get_response(self.app)"},{"line_number":139,"context_line":"        self.assertEqual(res.status_int, 400)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def test_get_console_output_with_lenght_as_float(self):"},{"line_number":142,"context_line":"        self.stubs.Set(compute_api.API, \u0027get_console_output\u0027,"},{"line_number":143,"context_line":"                       fakes.fake_not_implemented)"},{"line_number":144,"context_line":"        req \u003d self._create_request()"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BDSU%3D","line":141,"in_reply_to":"AAAATn%2F%2BDnw%3D","updated":"2013-12-03 02:30:19.000000000","message":"Done","commit_id":"6375320ff25c219cbae412ae289aeddfe0d7859a"}]}
