)]}'
{"keystone/controllers.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"5a48096742c57b99b4d0dc561c429575e3f3bc06","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            ]"},{"line_number":124,"context_line":"        }"},{"line_number":125,"context_line":"        versions[\u0027v3\u0027] \u003d {"},{"line_number":126,"context_line":"            \u0027id\u0027: \u0027v3\u0027,"},{"line_number":127,"context_line":"            \u0027status\u0027: \u0027beta\u0027,"},{"line_number":128,"context_line":"            \u0027updated\u0027: \u00272013-03-06T00:00:00Z\u0027,"},{"line_number":129,"context_line":"            \u0027links\u0027: ["}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F628%3D","line":126,"updated":"2013-03-06 14:01:19.000000000","message":"the version id here should actually indicate \u0027v3.0\u0027\n\nA client should be able to find that the server support v3 by seeing the \u0027v3\u0027 key, and then be able to check which iteration of v3 is supported by checking the minor version\n\ne.g. havana should rev this to v3.1","commit_id":"fc49958dd523c55c2bf2a40f6a7c1cd35fe54551"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"99a69a21c484b75bb8eabe1a15999cc0e96d8c6f","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            ]"},{"line_number":124,"context_line":"        }"},{"line_number":125,"context_line":"        versions[\u0027v3\u0027] \u003d {"},{"line_number":126,"context_line":"            \u0027id\u0027: \u0027v3\u0027,"},{"line_number":127,"context_line":"            \u0027status\u0027: \u0027beta\u0027,"},{"line_number":128,"context_line":"            \u0027updated\u0027: \u00272013-03-06T00:00:00Z\u0027,"},{"line_number":129,"context_line":"            \u0027links\u0027: ["}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F5%2FQ%3D","line":126,"in_reply_to":"AAAAN3%2F%2F628%3D","updated":"2013-03-06 23:08:04.000000000","message":"Done","commit_id":"fc49958dd523c55c2bf2a40f6a7c1cd35fe54551"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b28e2d7a09dae951d0e2987651a5f4632b37b3f9","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                    \u0027rel\u0027: \u0027describedby\u0027,"},{"line_number":135,"context_line":"                    \u0027type\u0027: \u0027text/html\u0027,"},{"line_number":136,"context_line":"                    \u0027href\u0027: \u0027http://docs.openstack.org/api/openstack-\u0027"},{"line_number":137,"context_line":"                            \u0027identity-service/3/content/\u0027"},{"line_number":138,"context_line":"                }, {"},{"line_number":139,"context_line":"                    \u0027rel\u0027: \u0027describedby\u0027,"},{"line_number":140,"context_line":"                    \u0027type\u0027: \u0027application/pdf\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F6kw%3D","line":137,"updated":"2013-03-06 16:53:11.000000000","message":"remove this -- it doesn\u0027t exist","commit_id":"fc49958dd523c55c2bf2a40f6a7c1cd35fe54551"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"99a69a21c484b75bb8eabe1a15999cc0e96d8c6f","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                    \u0027rel\u0027: \u0027describedby\u0027,"},{"line_number":135,"context_line":"                    \u0027type\u0027: \u0027text/html\u0027,"},{"line_number":136,"context_line":"                    \u0027href\u0027: \u0027http://docs.openstack.org/api/openstack-\u0027"},{"line_number":137,"context_line":"                            \u0027identity-service/3/content/\u0027"},{"line_number":138,"context_line":"                }, {"},{"line_number":139,"context_line":"                    \u0027rel\u0027: \u0027describedby\u0027,"},{"line_number":140,"context_line":"                    \u0027type\u0027: \u0027application/pdf\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F5%2FM%3D","line":137,"in_reply_to":"AAAAN3%2F%2F6kw%3D","updated":"2013-03-06 23:08:04.000000000","message":"Done","commit_id":"fc49958dd523c55c2bf2a40f6a7c1cd35fe54551"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b28e2d7a09dae951d0e2987651a5f4632b37b3f9","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                    \u0027href\u0027: \u0027http://docs.openstack.org/api/openstack-\u0027"},{"line_number":142,"context_line":"                            \u0027identity-service/3/identity-dev-guide-\u0027"},{"line_number":143,"context_line":"                            \u00273.pdf\u0027"},{"line_number":144,"context_line":"                }"},{"line_number":145,"context_line":"            ],"},{"line_number":146,"context_line":"            \u0027media-types\u0027: ["},{"line_number":147,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F6k0%3D","line":144,"updated":"2013-03-06 16:53:11.000000000","message":"remove this -- it doesn\u0027t exist","commit_id":"fc49958dd523c55c2bf2a40f6a7c1cd35fe54551"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"99a69a21c484b75bb8eabe1a15999cc0e96d8c6f","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                    \u0027href\u0027: \u0027http://docs.openstack.org/api/openstack-\u0027"},{"line_number":142,"context_line":"                            \u0027identity-service/3/identity-dev-guide-\u0027"},{"line_number":143,"context_line":"                            \u00273.pdf\u0027"},{"line_number":144,"context_line":"                }"},{"line_number":145,"context_line":"            ],"},{"line_number":146,"context_line":"            \u0027media-types\u0027: ["},{"line_number":147,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F5%2FI%3D","line":144,"in_reply_to":"AAAAN3%2F%2F6k0%3D","updated":"2013-03-06 23:08:04.000000000","message":"Done","commit_id":"fc49958dd523c55c2bf2a40f6a7c1cd35fe54551"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"5a48096742c57b99b4d0dc561c429575e3f3bc06","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    def get_version(self, context):"},{"line_number":170,"context_line":"        versions \u003d self._get_versions_list(context)"},{"line_number":171,"context_line":"        return wsgi.render_response(body\u003d{"},{"line_number":172,"context_line":"            \u0027version\u0027: versions[\u0027v3\u0027]"},{"line_number":173,"context_line":"        })"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F62w%3D","line":172,"updated":"2013-03-06 14:01:19.000000000","message":"this will return a v3 response on:\n\n  GET /v2.0/\n\nwhich is broken","commit_id":"fc49958dd523c55c2bf2a40f6a7c1cd35fe54551"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"99a69a21c484b75bb8eabe1a15999cc0e96d8c6f","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    def get_version(self, context):"},{"line_number":170,"context_line":"        versions \u003d self._get_versions_list(context)"},{"line_number":171,"context_line":"        return wsgi.render_response(body\u003d{"},{"line_number":172,"context_line":"            \u0027version\u0027: versions[\u0027v3\u0027]"},{"line_number":173,"context_line":"        })"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F5%2FE%3D","line":172,"in_reply_to":"AAAAN3%2F%2F62w%3D","updated":"2013-03-06 23:08:04.000000000","message":"Done","commit_id":"fc49958dd523c55c2bf2a40f6a7c1cd35fe54551"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"63d5619c148370740ab7443e5ff21da382e2fa24","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    \u0027href\u0027: self._get_identity_url(version\u003d\u0027v3\u0027),"},{"line_number":133,"context_line":"                }"},{"line_number":134,"context_line":"            ],"},{"line_number":135,"context_line":"            \u0027media-types\u0027: ["},{"line_number":136,"context_line":"                {"},{"line_number":137,"context_line":"                    \u0027base\u0027: \u0027application/json\u0027,"},{"line_number":138,"context_line":"                    \u0027type\u0027: \u0027application/vnd.openstack.identity-v3\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F320%3D","line":135,"updated":"2013-03-08 01:16:37.000000000","message":"Pull out the common code instead of duplicating it.","commit_id":"06ccb1646eee68f6427087d5496c0cff63811373"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"b1327f5d6f3934b351800063551bc0ed4bd9894c","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    \u0027href\u0027: self._get_identity_url(version\u003d\u0027v3\u0027),"},{"line_number":133,"context_line":"                }"},{"line_number":134,"context_line":"            ],"},{"line_number":135,"context_line":"            \u0027media-types\u0027: ["},{"line_number":136,"context_line":"                {"},{"line_number":137,"context_line":"                    \u0027base\u0027: \u0027application/json\u0027,"},{"line_number":138,"context_line":"                    \u0027type\u0027: \u0027application/vnd.openstack.identity-v3\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F174%3D","line":135,"in_reply_to":"AAAAN3%2F%2F320%3D","updated":"2013-03-09 20:15:06.000000000","message":"Done","commit_id":"06ccb1646eee68f6427087d5496c0cff63811373"}],"keystone/service.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"6f729fda5ff11c10245e625b1c53c5e4d002184b","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    # Add in the v3 version api"},{"line_number":89,"context_line":"    v3routers.append(routers.VersionV3(\u0027admin\u0027))"},{"line_number":90,"context_line":"    v3routers.append(routers.VersionV3(\u0027public\u0027))"},{"line_number":91,"context_line":"    # TODO(ayoung): put token routes here"},{"line_number":92,"context_line":"    return wsgi.ComposingRouter(mapper, v3routers)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAN3%2F%2F1vc%3D","line":91,"updated":"2013-03-09 21:58:32.000000000","message":"If there are more go-rounds on this, please remove this comment as well.","commit_id":"2dd6481a2005df7de0fed1fd630b8d2fbe38b775"}],"tests/test_versions.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"63d5619c148370740ab7443e5ff21da382e2fa24","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            \"versions\": {"},{"line_number":43,"context_line":"                \"values\": ["},{"line_number":44,"context_line":"                    {"},{"line_number":45,"context_line":"                        \"id\": \"v3.0\","},{"line_number":46,"context_line":"                        \"status\": \"stable\","},{"line_number":47,"context_line":"                        \"updated\": \"2013-03-06T00:00:00Z\","},{"line_number":48,"context_line":"                        \"links\": ["}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F32w%3D","line":45,"updated":"2013-03-08 01:16:37.000000000","message":"reduce the amount of duplicated code.","commit_id":"06ccb1646eee68f6427087d5496c0cff63811373"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"b1327f5d6f3934b351800063551bc0ed4bd9894c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            \"versions\": {"},{"line_number":43,"context_line":"                \"values\": ["},{"line_number":44,"context_line":"                    {"},{"line_number":45,"context_line":"                        \"id\": \"v3.0\","},{"line_number":46,"context_line":"                        \"status\": \"stable\","},{"line_number":47,"context_line":"                        \"updated\": \"2013-03-06T00:00:00Z\","},{"line_number":48,"context_line":"                        \"links\": ["}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F170%3D","line":45,"in_reply_to":"AAAAN3%2F%2F32w%3D","updated":"2013-03-09 20:15:06.000000000","message":"Done","commit_id":"06ccb1646eee68f6427087d5496c0cff63811373"}]}
