)]}'
{"nova/api/openstack/compute/contrib/hosts.py":[{"author":{"_account_id":191,"name":"Trey Morris","email":"trey.morris@rackspace.com","username":"tr3buchet"},"change_message_id":"dbb451ca73b998e7f2541789f5aaa8fc7d304eeb","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            msg \u003d _(\"Virt driver does not implement host power management.\")"},{"line_number":237,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":238,"context_line":"        except exception.NotFound as e:"},{"line_number":239,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003de.message)"},{"line_number":240,"context_line":"        return {\"host\": host_name, \"power_action\": result}"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    @wsgi.serializers(xml\u003dHostActionTemplate)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2FyGY%3D","line":239,"updated":"2013-03-12 18:13:11.000000000","message":"why leave this one out?","commit_id":"ea31dce64ce4166e52e9e2b75af22b3a24f972ab"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"b44607946a2cbd6337ad06e472173c10ee2415a9","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            msg \u003d _(\"Virt driver does not implement host power management.\")"},{"line_number":237,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":238,"context_line":"        except exception.NotFound as e:"},{"line_number":239,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003de.message)"},{"line_number":240,"context_line":"        return {\"host\": host_name, \"power_action\": result}"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    @wsgi.serializers(xml\u003dHostActionTemplate)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2Fx%2F0%3D","line":239,"in_reply_to":"AAAAN3%2F%2FyGY%3D","updated":"2013-03-12 18:54:17.000000000","message":"missed that one.","commit_id":"ea31dce64ce4166e52e9e2b75af22b3a24f972ab"},{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"1821c86871757ead1cdf0bd459f8398e65ddf60b","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            msg \u003d _(\"Virt driver does not implement host maintenance mode.\")"},{"line_number":201,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":202,"context_line":"        except exception.NotFound as e:"},{"line_number":203,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dstr(e))"},{"line_number":204,"context_line":"        if result not in (\"on_maintenance\", \"off_maintenance\"):"},{"line_number":205,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dresult)"},{"line_number":206,"context_line":"        return result"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fuoo%3D","line":203,"updated":"2013-03-14 19:13:43.000000000","message":"oh man, I\u0027m so sorry. I need to reverse my previous comments.\n\nIt should indeed have been unicode, not str.\n\nper this new bug: https://bugs.launchpad.net/nova/+bug/1155280\n\nI\u0027ll have to -1 now, as str() may raise an exception..","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"6af1dd39af89cff14bc7f4e83cb8b4bb8d448616","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            msg \u003d _(\"Virt driver does not implement host maintenance mode.\")"},{"line_number":201,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":202,"context_line":"        except exception.NotFound as e:"},{"line_number":203,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dstr(e))"},{"line_number":204,"context_line":"        if result not in (\"on_maintenance\", \"off_maintenance\"):"},{"line_number":205,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dresult)"},{"line_number":206,"context_line":"        return result"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fuj0%3D","line":203,"in_reply_to":"AAAAN3%2F%2Fuoo%3D","updated":"2013-03-14 20:13:02.000000000","message":"Done","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"1821c86871757ead1cdf0bd459f8398e65ddf60b","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            msg \u003d _(\"Virt driver does not implement host disabled status.\")"},{"line_number":221,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":222,"context_line":"        except exception.NotFound as e:"},{"line_number":223,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dstr(e))"},{"line_number":224,"context_line":"        if result not in (\"enabled\", \"disabled\"):"},{"line_number":225,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dresult)"},{"line_number":226,"context_line":"        return result"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fuok%3D","line":223,"updated":"2013-03-14 19:13:43.000000000","message":"ditto","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"6af1dd39af89cff14bc7f4e83cb8b4bb8d448616","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            msg \u003d _(\"Virt driver does not implement host disabled status.\")"},{"line_number":221,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":222,"context_line":"        except exception.NotFound as e:"},{"line_number":223,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dstr(e))"},{"line_number":224,"context_line":"        if result not in (\"enabled\", \"disabled\"):"},{"line_number":225,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dresult)"},{"line_number":226,"context_line":"        return result"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fujw%3D","line":223,"in_reply_to":"AAAAN3%2F%2Fuok%3D","updated":"2013-03-14 20:13:02.000000000","message":"Done","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"1821c86871757ead1cdf0bd459f8398e65ddf60b","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            msg \u003d _(\"Virt driver does not implement host power management.\")"},{"line_number":237,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":238,"context_line":"        except exception.NotFound as e:"},{"line_number":239,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dstr(e))"},{"line_number":240,"context_line":"        return {\"host\": host_name, \"power_action\": result}"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    @wsgi.serializers(xml\u003dHostActionTemplate)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fuog%3D","line":239,"updated":"2013-03-14 19:13:43.000000000","message":"ditto","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"6af1dd39af89cff14bc7f4e83cb8b4bb8d448616","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            msg \u003d _(\"Virt driver does not implement host power management.\")"},{"line_number":237,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":238,"context_line":"        except exception.NotFound as e:"},{"line_number":239,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dstr(e))"},{"line_number":240,"context_line":"        return {\"host\": host_name, \"power_action\": result}"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    @wsgi.serializers(xml\u003dHostActionTemplate)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fujs%3D","line":239,"in_reply_to":"AAAAN3%2F%2Fuog%3D","updated":"2013-03-14 20:13:02.000000000","message":"Done","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"1821c86871757ead1cdf0bd459f8398e65ddf60b","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        try:"},{"line_number":318,"context_line":"            service \u003d self.api.service_get_by_compute_host(context, host_name)"},{"line_number":319,"context_line":"        except exception.NotFound as e:"},{"line_number":320,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dstr(e))"},{"line_number":321,"context_line":"        except exception.AdminRequired:"},{"line_number":322,"context_line":"            msg \u003d _(\"Describe-resource is admin only functionality\")"},{"line_number":323,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fuoc%3D","line":320,"updated":"2013-03-14 19:13:43.000000000","message":"ditto","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"6af1dd39af89cff14bc7f4e83cb8b4bb8d448616","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        try:"},{"line_number":318,"context_line":"            service \u003d self.api.service_get_by_compute_host(context, host_name)"},{"line_number":319,"context_line":"        except exception.NotFound as e:"},{"line_number":320,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dstr(e))"},{"line_number":321,"context_line":"        except exception.AdminRequired:"},{"line_number":322,"context_line":"            msg \u003d _(\"Describe-resource is admin only functionality\")"},{"line_number":323,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fujo%3D","line":320,"in_reply_to":"AAAAN3%2F%2Fuoc%3D","updated":"2013-03-14 20:13:02.000000000","message":"Done","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"}],"nova/tests/api/openstack/compute/contrib/test_hosts.py":[{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"1821c86871757ead1cdf0bd459f8398e65ddf60b","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        self._test_host_power_action_notimpl(self.controller.reboot)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def test_host_status_bad_host(self):"},{"line_number":234,"context_line":"        # A host given as an argument does not exists."},{"line_number":235,"context_line":"        self.req.environ[\"nova.context\"].is_admin \u003d True"},{"line_number":236,"context_line":"        dest \u003d \u0027dummydest\u0027"},{"line_number":237,"context_line":"        with testtools.ExpectedException(webob.exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FuoQ%3D","line":234,"updated":"2013-03-14 19:13:43.000000000","message":"exists should read \u0027exist\u0027","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"6af1dd39af89cff14bc7f4e83cb8b4bb8d448616","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        self._test_host_power_action_notimpl(self.controller.reboot)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def test_host_status_bad_host(self):"},{"line_number":234,"context_line":"        # A host given as an argument does not exists."},{"line_number":235,"context_line":"        self.req.environ[\"nova.context\"].is_admin \u003d True"},{"line_number":236,"context_line":"        dest \u003d \u0027dummydest\u0027"},{"line_number":237,"context_line":"        with testtools.ExpectedException(webob.exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fuj8%3D","line":234,"in_reply_to":"AAAAN3%2F%2FuoQ%3D","updated":"2013-03-14 20:13:02.000000000","message":"Done","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"1821c86871757ead1cdf0bd459f8398e65ddf60b","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            self.controller.update(self.req, dest, body\u003d{\u0027status\u0027: \u0027enable\u0027})"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    def test_host_maintenance_bad_host(self):"},{"line_number":242,"context_line":"        # A host given as an argument does not exists."},{"line_number":243,"context_line":"        self.req.environ[\"nova.context\"].is_admin \u003d True"},{"line_number":244,"context_line":"        dest \u003d \u0027dummydest\u0027"},{"line_number":245,"context_line":"        with testtools.ExpectedException(webob.exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FuoA%3D","line":242,"updated":"2013-03-14 19:13:43.000000000","message":"ditto","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"6af1dd39af89cff14bc7f4e83cb8b4bb8d448616","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            self.controller.update(self.req, dest, body\u003d{\u0027status\u0027: \u0027enable\u0027})"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    def test_host_maintenance_bad_host(self):"},{"line_number":242,"context_line":"        # A host given as an argument does not exists."},{"line_number":243,"context_line":"        self.req.environ[\"nova.context\"].is_admin \u003d True"},{"line_number":244,"context_line":"        dest \u003d \u0027dummydest\u0027"},{"line_number":245,"context_line":"        with testtools.ExpectedException(webob.exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FukA%3D","line":242,"in_reply_to":"AAAAN3%2F%2FuoA%3D","updated":"2013-03-14 20:13:02.000000000","message":"Done","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"1821c86871757ead1cdf0bd459f8398e65ddf60b","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                                   body\u003d{\u0027maintenance_mode\u0027: \u0027enable\u0027})"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    def test_host_power_action_bad_host(self):"},{"line_number":251,"context_line":"        # A host given as an argument does not exists."},{"line_number":252,"context_line":"        self.req.environ[\"nova.context\"].is_admin \u003d True"},{"line_number":253,"context_line":"        dest \u003d \u0027dummydest\u0027"},{"line_number":254,"context_line":"        with testtools.ExpectedException(webob.exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fun8%3D","line":251,"updated":"2013-03-14 19:13:43.000000000","message":"ditto","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"6af1dd39af89cff14bc7f4e83cb8b4bb8d448616","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                                   body\u003d{\u0027maintenance_mode\u0027: \u0027enable\u0027})"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    def test_host_power_action_bad_host(self):"},{"line_number":251,"context_line":"        # A host given as an argument does not exists."},{"line_number":252,"context_line":"        self.req.environ[\"nova.context\"].is_admin \u003d True"},{"line_number":253,"context_line":"        dest \u003d \u0027dummydest\u0027"},{"line_number":254,"context_line":"        with testtools.ExpectedException(webob.exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FukE%3D","line":251,"in_reply_to":"AAAAN3%2F%2Fun8%3D","updated":"2013-03-14 20:13:02.000000000","message":"Done","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"6af1dd39af89cff14bc7f4e83cb8b4bb8d448616","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        self.req.environ[\"nova.context\"].is_admin \u003d True"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def test_show_host_not_exist(self):"},{"line_number":292,"context_line":"        # A host given as an argument does not exists."},{"line_number":293,"context_line":"        self.req.environ[\"nova.context\"].is_admin \u003d True"},{"line_number":294,"context_line":"        dest \u003d \u0027dummydest\u0027"},{"line_number":295,"context_line":"        with testtools.ExpectedException(webob.exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fuj4%3D","line":292,"updated":"2013-03-14 20:13:02.000000000","message":"Fixed the original one that I copied from as well ;-)","commit_id":"95ca2692e0b1607e9852fd9514b6e13a6ba7a454"}]}
