)]}'
{"nova/api/openstack/compute/plugins/v3/versions.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"ec6acccf378bde2fda2b3f567bd2e4b2a811617e","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class VersionsController(object):"},{"line_number":25,"context_line":"    @extensions.expected_errors(())"},{"line_number":26,"context_line":"    def show(self, req, id\u003dNone):"},{"line_number":27,"context_line":"        builder \u003d views_versions.get_view_builder(req)"},{"line_number":28,"context_line":"        return builder.build_version(versions.VERSIONS[\u0027v3.0\u0027])"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAU3%2F%2F%2BvI%3D","line":26,"updated":"2014-02-23 05:07:12.000000000","message":"So I\u0027m wondering if we should be returning HTTPNotFound unless id matches a valid version? (eg someing in version.VERSIONS?","commit_id":"e9b1aa726b48570dcc36237e993935c3a211cf3e"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"4374c45347f797d16f153f2a27e0ee82880e7263","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class VersionsController(object):"},{"line_number":25,"context_line":"    @extensions.expected_errors(())"},{"line_number":26,"context_line":"    def show(self, req, id\u003dNone):"},{"line_number":27,"context_line":"        builder \u003d views_versions.get_view_builder(req)"},{"line_number":28,"context_line":"        return builder.build_version(versions.VERSIONS[\u0027v3.0\u0027])"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAU3%2F%2F7Gs%3D","line":26,"in_reply_to":"AAAAU3%2F%2F%2BvI%3D","updated":"2014-02-24 02:44:04.000000000","message":"Done","commit_id":"e9b1aa726b48570dcc36237e993935c3a211cf3e"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"e0a6d82e211c7eb97b0747850546f961d7775d9f","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    @extensions.expected_errors((404))"},{"line_number":28,"context_line":"    def show(self, req, id\u003dNone):"},{"line_number":29,"context_line":"        builder \u003d views_versions.get_view_builder(req)"},{"line_number":30,"context_line":"        if id and not id in [version for version in versions.VERSIONS]:"},{"line_number":31,"context_line":"            raise webob.exc.HTTPNotFound"},{"line_number":32,"context_line":"        return builder.build_version(versions.VERSIONS[\u0027v3.0\u0027])"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2F6pE%3D","line":30,"updated":"2014-02-24 04:10:08.000000000","message":"I think its simpler just to do:\n\nif id and id not in version.VERSIONS:","commit_id":"54b3fd8e2a7518eacf3c77c457558fa8b41ac3a9"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"bbccf894e0de3dd70a4b9afda4d4012fa2eda6b4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    @extensions.expected_errors((404))"},{"line_number":28,"context_line":"    def show(self, req, id\u003dNone):"},{"line_number":29,"context_line":"        builder \u003d views_versions.get_view_builder(req)"},{"line_number":30,"context_line":"        if id and not id in [version for version in versions.VERSIONS]:"},{"line_number":31,"context_line":"            raise webob.exc.HTTPNotFound"},{"line_number":32,"context_line":"        return builder.build_version(versions.VERSIONS[\u0027v3.0\u0027])"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2F6To%3D","line":30,"in_reply_to":"AAAAU3%2F%2F6pE%3D","updated":"2014-02-24 05:17:09.000000000","message":"Done","commit_id":"54b3fd8e2a7518eacf3c77c457558fa8b41ac3a9"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"e0a6d82e211c7eb97b0747850546f961d7775d9f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    def show(self, req, id\u003dNone):"},{"line_number":29,"context_line":"        builder \u003d views_versions.get_view_builder(req)"},{"line_number":30,"context_line":"        if id and not id in [version for version in versions.VERSIONS]:"},{"line_number":31,"context_line":"            raise webob.exc.HTTPNotFound"},{"line_number":32,"context_line":"        return builder.build_version(versions.VERSIONS[\u0027v3.0\u0027])"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2F6p4%3D","line":31,"updated":"2014-02-24 04:10:08.000000000","message":"doesn\u0027t that need to be webob.exc.HTTPNotFound() ?","commit_id":"54b3fd8e2a7518eacf3c77c457558fa8b41ac3a9"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"bbccf894e0de3dd70a4b9afda4d4012fa2eda6b4","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    def show(self, req, id\u003dNone):"},{"line_number":29,"context_line":"        builder \u003d views_versions.get_view_builder(req)"},{"line_number":30,"context_line":"        if id and not id in [version for version in versions.VERSIONS]:"},{"line_number":31,"context_line":"            raise webob.exc.HTTPNotFound"},{"line_number":32,"context_line":"        return builder.build_version(versions.VERSIONS[\u0027v3.0\u0027])"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2F6Tk%3D","line":31,"in_reply_to":"AAAAU3%2F%2F6p4%3D","updated":"2014-02-24 05:17:09.000000000","message":"Done","commit_id":"54b3fd8e2a7518eacf3c77c457558fa8b41ac3a9"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"e0a6d82e211c7eb97b0747850546f961d7775d9f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        builder \u003d views_versions.get_view_builder(req)"},{"line_number":30,"context_line":"        if id and not id in [version for version in versions.VERSIONS]:"},{"line_number":31,"context_line":"            raise webob.exc.HTTPNotFound"},{"line_number":32,"context_line":"        return builder.build_version(versions.VERSIONS[\u0027v3.0\u0027])"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class Versions(extensions.V3APIExtensionBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2F6os%3D","line":32,"updated":"2014-02-24 04:10:08.000000000","message":"should change this to VERSIONS[id]\n\nI think if they explicitly ask for version information about v2.0 we should give it to them even through the v3 path.","commit_id":"54b3fd8e2a7518eacf3c77c457558fa8b41ac3a9"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"bbccf894e0de3dd70a4b9afda4d4012fa2eda6b4","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        builder \u003d views_versions.get_view_builder(req)"},{"line_number":30,"context_line":"        if id and not id in [version for version in versions.VERSIONS]:"},{"line_number":31,"context_line":"            raise webob.exc.HTTPNotFound"},{"line_number":32,"context_line":"        return builder.build_version(versions.VERSIONS[\u0027v3.0\u0027])"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class Versions(extensions.V3APIExtensionBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2F6Tg%3D","line":32,"in_reply_to":"AAAAU3%2F%2F6os%3D","updated":"2014-02-24 05:17:09.000000000","message":"Done","commit_id":"54b3fd8e2a7518eacf3c77c457558fa8b41ac3a9"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"c12c0907b393c5ba689d07f0ab42f7394b0cfc09","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class VersionsController(object):"},{"line_number":27,"context_line":"    @extensions.expected_errors((404))"},{"line_number":28,"context_line":"    def show(self, req, id\u003d\u0027v3.0\u0027):"},{"line_number":29,"context_line":"        builder \u003d views_versions.get_view_builder(req)"},{"line_number":30,"context_line":"        if id not in versions.VERSIONS:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2FZG4%3D","line":27,"updated":"2014-03-18 06:50:21.000000000","message":"sorry to be nitpicky - but don\u0027t need ((404)) - just (404) will work as the decorator accepts the latter if only a single exception is required.","commit_id":"ef9c700f9d37aa5d379bbc34565e45b4f9621be2"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"0d9fa84831c42ea2b41ef4284f7f64dcd315765b","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class VersionsController(object):"},{"line_number":27,"context_line":"    @extensions.expected_errors((404))"},{"line_number":28,"context_line":"    def show(self, req, id\u003d\u0027v3.0\u0027):"},{"line_number":29,"context_line":"        builder \u003d views_versions.get_view_builder(req)"},{"line_number":30,"context_line":"        if id not in versions.VERSIONS:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2FYjw%3D","line":27,"in_reply_to":"AAAAWH%2F%2FZG4%3D","updated":"2014-03-18 08:33:36.000000000","message":"Done","commit_id":"ef9c700f9d37aa5d379bbc34565e45b4f9621be2"}]}
