)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"d41e761a4ba8ee82b3d3aa4be9b1fe6b1a784711","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Deprecating API v2.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Keystone team decided deprecate v2.0 on Mitaka."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"DocImpact: The keystone team recommends using v3 of our Identity API, so we"},{"line_number":12,"context_line":"decided to formally deprecate v2.0 on Mitaka."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a8ffd7b_8e575c59","line":9,"updated":"2015-12-02 18:16:53.000000000","message":"to deprecate*","commit_id":"cb3d08f48dd79950e33ceacfb2ed93bcd58d5d31"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"fa1041e909760fe906a39a8489340a6499e183e5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Deprecating API v2.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Keystone team decided deprecate v2.0 on Mitaka."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"DocImpact: The keystone team recommends using v3 of our Identity API, so we"},{"line_number":12,"context_line":"decided to formally deprecate v2.0 on Mitaka."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a8ffd7b_8c4f3191","line":9,"in_reply_to":"9a8ffd7b_8e575c59","updated":"2015-12-03 14:06:46.000000000","message":"Done","commit_id":"cb3d08f48dd79950e33ceacfb2ed93bcd58d5d31"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"d41e761a4ba8ee82b3d3aa4be9b1fe6b1a784711","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Deprecating API v2.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Keystone team decided deprecate v2.0 on Mitaka."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"DocImpact: The keystone team recommends using v3 of our Identity API, so we"},{"line_number":12,"context_line":"decided to formally deprecate v2.0 on Mitaka."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a8ffd7b_ceefa485","line":10,"updated":"2015-12-02 18:16:53.000000000","message":"You should also mention here that the auth and EC2 routes aren\u0027t going to be removed","commit_id":"cb3d08f48dd79950e33ceacfb2ed93bcd58d5d31"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"fa1041e909760fe906a39a8489340a6499e183e5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Deprecating API v2.0"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Keystone team decided deprecate v2.0 on Mitaka."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"DocImpact: The keystone team recommends using v3 of our Identity API, so we"},{"line_number":12,"context_line":"decided to formally deprecate v2.0 on Mitaka."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a8ffd7b_2f6cf7ce","line":10,"in_reply_to":"9a8ffd7b_ceefa485","updated":"2015-12-03 14:06:46.000000000","message":"Done","commit_id":"cb3d08f48dd79950e33ceacfb2ed93bcd58d5d31"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"158a187c29b506006aff1200e54d365c1c32f87f","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"DocImpact: The keystone team recommends using v3 of our Identity API, so we"},{"line_number":12,"context_line":"decided to formally deprecate API v2.0 on Mitaka. Authentication"},{"line_number":13,"context_line":"routes and EC2 routes will not be deprecated for now, they will sticking"},{"line_number":14,"context_line":"around indefinitely."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Partially implements: bp deprecated-as-of-mitaka"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"ba63e191_5993e15b","line":13,"updated":"2016-01-19 12:52:09.000000000","message":"(nit) they will be kept around indefinitely","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"7372477ea061f79fdc06e273bea92013441e8be2","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"DocImpact: The keystone team recommends using v3 of our Identity API, so we"},{"line_number":12,"context_line":"decided to formally deprecate API v2.0 on Mitaka. Authentication"},{"line_number":13,"context_line":"routes and EC2 routes will not be deprecated for now, they will sticking"},{"line_number":14,"context_line":"around indefinitely."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Partially implements: bp deprecated-as-of-mitaka"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"ba63e191_fc76433d","line":13,"in_reply_to":"ba63e191_5993e15b","updated":"2016-01-19 13:06:23.000000000","message":"Done","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"}],"keystone/assignment/controllers.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"454d77c83da27207ec035c2edd6c410ed460907f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"class TenantAssignment(controller.V2Controller):"},{"line_number":41,"context_line":"    \"\"\"The V2 Project APIs that are processing assignments.\"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @controller.v2_auth_deprecated"},{"line_number":44,"context_line":"    def get_projects_for_token(self, context, **kw):"},{"line_number":45,"context_line":"        \"\"\"Get valid tenants for token based on token used to authenticate."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_93fef669","line":43,"updated":"2015-12-15 21:51:40.000000000","message":"why this is \"v2_auth_deprecated\"?","commit_id":"246234100cbf12107efc3cb5a7d7f826b561203b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"332fd4f0b8d022622f16a0817b1a2fe440c2e287","unresolved":false,"context_lines":[{"line_number":40,"context_line":"class TenantAssignment(controller.V2Controller):"},{"line_number":41,"context_line":"    \"\"\"The V2 Project APIs that are processing assignments.\"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @controller.v2_auth_deprecated"},{"line_number":44,"context_line":"    def get_projects_for_token(self, context, **kw):"},{"line_number":45,"context_line":"        \"\"\"Get valid tenants for token based on token used to authenticate."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_76d7b8bf","line":43,"in_reply_to":"5a710552_93fef669","updated":"2015-12-15 22:33:10.000000000","message":"this one is one of the few APIs that deal with a full auth flow for v2.\n\nfull auth flow -\u003e authenticate using default project, list projects, authenticate again based off that.\n\nthis controller actually maps to /v2.0/tenants --\u003e https://github.com/openstack/keystone/blob/98fce2954087e85b4709341e5509a7c2d8147cf6/keystone/assignment/routers.py#L35-L41\n\nwhich is one of the few non-admin APIs we want to keep alive for end users who have migrated over","commit_id":"246234100cbf12107efc3cb5a7d7f826b561203b"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"454d77c83da27207ec035c2edd6c410ed460907f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        }"},{"line_number":63,"context_line":"        return self.format_project_list(tenant_refs, **params)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @controller.v2_auth_deprecated"},{"line_number":66,"context_line":"    def get_project_users(self, context, tenant_id, **kw):"},{"line_number":67,"context_line":"        self.assert_admin(context)"},{"line_number":68,"context_line":"        user_refs \u003d []"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_33d702ef","line":65,"updated":"2015-12-15 21:51:40.000000000","message":"why this is \"v2_auth_deprecated\"?","commit_id":"246234100cbf12107efc3cb5a7d7f826b561203b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"332fd4f0b8d022622f16a0817b1a2fe440c2e287","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        }"},{"line_number":63,"context_line":"        return self.format_project_list(tenant_refs, **params)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @controller.v2_auth_deprecated"},{"line_number":66,"context_line":"    def get_project_users(self, context, tenant_id, **kw):"},{"line_number":67,"context_line":"        self.assert_admin(context)"},{"line_number":68,"context_line":"        user_refs \u003d []"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_76225803","line":65,"in_reply_to":"5a710552_33d702ef","updated":"2015-12-15 22:33:10.000000000","message":"this can be reverted","commit_id":"246234100cbf12107efc3cb5a7d7f826b561203b"}],"keystone/common/controller.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"79d2c49f7483da7c868767ef208b391f2394f6dc","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    v2_deprecated \u003d versionutils.deprecated("},{"line_number":40,"context_line":"        what\u003d\u0027v2 API\u0027,"},{"line_number":41,"context_line":"        as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":42,"context_line":"        in_favor_of\u003d\u0027v3 API\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    return f"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_f458b78c","line":42,"updated":"2015-11-30 22:27:28.000000000","message":"should also pass in \"remove_in\u003d4+\"","commit_id":"e4bcbb72673491e78e3423c0bebcea667bcae2c8"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"91a13695d92ed344c2a057245460850f646f46af","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    v2_deprecated \u003d versionutils.deprecated("},{"line_number":40,"context_line":"        what\u003d\u0027v2 API\u0027,"},{"line_number":41,"context_line":"        as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":42,"context_line":"        in_favor_of\u003d\u0027v3 API\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    return f"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_14169b55","line":42,"in_reply_to":"9a8ffd7b_f458b78c","updated":"2015-11-30 22:32:49.000000000","message":"Will add this parameter here, and change with a different message in the other files.","commit_id":"e4bcbb72673491e78e3423c0bebcea667bcae2c8"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"294e786c388650129e1c4189e101348f50109ecd","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    @six.wraps(f)"},{"line_number":40,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":41,"context_line":"        x \u003d versionutils.deprecated("},{"line_number":42,"context_line":"            what\u003df.__name__ + \u0027 of the v2 API\u0027,"},{"line_number":43,"context_line":"            as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":44,"context_line":"            in_favor_of\u003d\u0027a similar function in the v3 API\u0027,"},{"line_number":45,"context_line":"            remove_in\u003d+4)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa69d971_1a0e7e3b","line":42,"range":{"start_line":42,"start_character":19,"end_line":42,"end_character":27},"updated":"2016-01-04 17:32:41.000000000","message":"Would the use of oslo.utils reflection module help to extract the class name?  It looks like it helps with some py3 compatibility as well. http://docs.openstack.org/developer/oslo.utils/api/reflection.html#oslo_utils.reflection.get_class_name\n\nhere is a change that is using it:\nhttps://review.openstack.org/#/c/241494/","commit_id":"5fbf40ee19da9d4274a2d4ef1e0cb787d2227739"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"7631a7f1237252cd9aeaf9f351e8533c312ffee6","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    @six.wraps(f)"},{"line_number":40,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":41,"context_line":"        x \u003d versionutils.deprecated("},{"line_number":42,"context_line":"            what\u003df.__name__ + \u0027 of the v2 API\u0027,"},{"line_number":43,"context_line":"            as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":44,"context_line":"            in_favor_of\u003d\u0027a similar function in the v3 API\u0027,"},{"line_number":45,"context_line":"            remove_in\u003d+4)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa69d971_eb7dd71c","line":42,"range":{"start_line":42,"start_character":19,"end_line":42,"end_character":27},"in_reply_to":"fa69d971_1a0e7e3b","updated":"2016-01-04 17:36:40.000000000","message":"I\u0027ll try to do this. thanks","commit_id":"5fbf40ee19da9d4274a2d4ef1e0cb787d2227739"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"703d7a4d140c75d2b3e270f9c609059c47c8b54c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    @six.wraps(f)"},{"line_number":40,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":41,"context_line":"        x \u003d versionutils.deprecated("},{"line_number":42,"context_line":"            what\u003df.__name__ + \u0027 of the v2 API\u0027,"},{"line_number":43,"context_line":"            as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":44,"context_line":"            in_favor_of\u003d\u0027a similar function in the v3 API\u0027,"},{"line_number":45,"context_line":"            remove_in\u003d+4)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa69d971_bc4ac4aa","line":42,"range":{"start_line":42,"start_character":19,"end_line":42,"end_character":27},"in_reply_to":"fa69d971_eb7dd71c","updated":"2016-01-04 19:56:11.000000000","message":"As we discussed on IRC, we decided to keep on this way, since it looks like reflections doesn\u0027t have the exact method we are looking for. ( get_callable_name with fully_qualified\u003dFalse) http://docs.openstack.org/developer/oslo.utils/api/reflection.html#oslo_utils.reflection.get_callable_name\n\nWe can update this later.","commit_id":"5fbf40ee19da9d4274a2d4ef1e0cb787d2227739"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"158a187c29b506006aff1200e54d365c1c32f87f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"def v2_deprecated(f):"},{"line_number":39,"context_line":"    @six.wraps(f)"},{"line_number":40,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":41,"context_line":"        x \u003d versionutils.deprecated("},{"line_number":42,"context_line":"            what\u003df.__name__ + \u0027 of the v2 API\u0027,"},{"line_number":43,"context_line":"            as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":44,"context_line":"            in_favor_of\u003d\u0027a similar function in the v3 API\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba63e191_19748933","line":41,"updated":"2016-01-19 12:52:09.000000000","message":"(nit) x is a terrible name, suggest deprecated.","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"7372477ea061f79fdc06e273bea92013441e8be2","unresolved":false,"context_lines":[{"line_number":38,"context_line":"def v2_deprecated(f):"},{"line_number":39,"context_line":"    @six.wraps(f)"},{"line_number":40,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":41,"context_line":"        x \u003d versionutils.deprecated("},{"line_number":42,"context_line":"            what\u003df.__name__ + \u0027 of the v2 API\u0027,"},{"line_number":43,"context_line":"            as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":44,"context_line":"            in_favor_of\u003d\u0027a similar function in the v3 API\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba63e191_dc949f38","line":41,"in_reply_to":"ba63e191_19748933","updated":"2016-01-19 13:06:23.000000000","message":"Done","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"158a187c29b506006aff1200e54d365c1c32f87f","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            what\u003df.__name__ + \u0027 of the v2 EC2 APIs\u0027,"},{"line_number":55,"context_line":"            as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":56,"context_line":"            in_favor_of\u003d(\u0027a similar function in the v3 Credential APIs, \u0027"},{"line_number":57,"context_line":"                         \u0027there is no timeline for removal.\u0027),"},{"line_number":58,"context_line":"            remove_in\u003d0)"},{"line_number":59,"context_line":"        return x(f)"},{"line_number":60,"context_line":"    return wrapper()"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba63e191_3cb05b43","line":57,"updated":"2016-01-19 12:52:09.000000000","message":"Do we need to say that it\u0027s not being removed?","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"7372477ea061f79fdc06e273bea92013441e8be2","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            what\u003df.__name__ + \u0027 of the v2 EC2 APIs\u0027,"},{"line_number":55,"context_line":"            as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":56,"context_line":"            in_favor_of\u003d(\u0027a similar function in the v3 Credential APIs, \u0027"},{"line_number":57,"context_line":"                         \u0027there is no timeline for removal.\u0027),"},{"line_number":58,"context_line":"            remove_in\u003d0)"},{"line_number":59,"context_line":"        return x(f)"},{"line_number":60,"context_line":"    return wrapper()"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba63e191_dfa011f7","line":57,"in_reply_to":"ba63e191_3cb05b43","updated":"2016-01-19 13:06:23.000000000","message":"I think we need to say that since it will have a different behavior.","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"2ec066b1782b11f2024fa05e0549b905047903aa","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            what\u003df.__name__ + \u0027 of the v2 EC2 APIs\u0027,"},{"line_number":55,"context_line":"            as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":56,"context_line":"            in_favor_of\u003d(\u0027a similar function in the v3 Credential APIs, \u0027"},{"line_number":57,"context_line":"                         \u0027there is no timeline for removal.\u0027),"},{"line_number":58,"context_line":"            remove_in\u003d0)"},{"line_number":59,"context_line":"        return x(f)"},{"line_number":60,"context_line":"    return wrapper()"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba63e191_aa8f1d22","line":57,"in_reply_to":"ba63e191_7f9fa503","updated":"2016-01-19 13:27:05.000000000","message":"I verified the returned message and I agree that we don\u0027t need repeat the message here. https://github.com/openstack/oslo.log/blob/master/oslo_log/versionutils.py#L135\n\nI\u0027ll fix it in the next patch.","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"5075488445317e924140744bb3dbd9036f110d5c","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            what\u003df.__name__ + \u0027 of the v2 EC2 APIs\u0027,"},{"line_number":55,"context_line":"            as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":56,"context_line":"            in_favor_of\u003d(\u0027a similar function in the v3 Credential APIs, \u0027"},{"line_number":57,"context_line":"                         \u0027there is no timeline for removal.\u0027),"},{"line_number":58,"context_line":"            remove_in\u003d0)"},{"line_number":59,"context_line":"        return x(f)"},{"line_number":60,"context_line":"    return wrapper()"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba63e191_7f9fa503","line":57,"in_reply_to":"ba63e191_dfa011f7","updated":"2016-01-19 13:15:14.000000000","message":"versionutils uses a different message for this case so if you think that\u0027s not sufficient we should fix it there.","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"43fdaa20d1b9c876f23b9c99b60b3f5b1c2e9944","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":56,"context_line":"            in_favor_of\u003d(\u0027a similar function in the v3 Credential APIs, \u0027"},{"line_number":57,"context_line":"                         \u0027there is no timeline for removal.\u0027),"},{"line_number":58,"context_line":"            remove_in\u003d0)"},{"line_number":59,"context_line":"        return x(f)"},{"line_number":60,"context_line":"    return wrapper()"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa69d971_f6059479","line":58,"range":{"start_line":58,"start_character":12,"end_line":58,"end_character":24},"updated":"2016-01-05 14:17:46.000000000","message":"Isn\u0027t \"None\" the correct to pass here? https://github.com/openstack/oslo.log/blob/master/oslo_log/versionutils.py#L81","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"158a187c29b506006aff1200e54d365c1c32f87f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":56,"context_line":"            in_favor_of\u003d(\u0027a similar function in the v3 Credential APIs, \u0027"},{"line_number":57,"context_line":"                         \u0027there is no timeline for removal.\u0027),"},{"line_number":58,"context_line":"            remove_in\u003d0)"},{"line_number":59,"context_line":"        return x(f)"},{"line_number":60,"context_line":"    return wrapper()"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba63e191_19e329a5","line":58,"range":{"start_line":58,"start_character":12,"end_line":58,"end_character":24},"in_reply_to":"fa69d971_f6059479","updated":"2016-01-19 12:52:09.000000000","message":"I actually like the 0 better. The version utils code check for None and converts it to a 0, so both work fine.","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"}],"keystone/contrib/ec2/controllers.py":[{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"c2608573ea7f22fa35e77172c8015f7e51f9e13c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":56,"context_line":"        in_favor_of\u003d(\u0027v3 API, v2.0 EC2 routes potentially sticking around \u0027"},{"line_number":57,"context_line":"                     \u0027indefinitely.\u0027),"},{"line_number":58,"context_line":"        remove_in\u003d0)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    return f"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_0ec28c34","line":58,"updated":"2015-12-02 18:14:53.000000000","message":"you should pass None here: https://github.com/openstack/oslo.log/blob/master/oslo_log/versionutils.py#L79","commit_id":"cb3d08f48dd79950e33ceacfb2ed93bcd58d5d31"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"fa1041e909760fe906a39a8489340a6499e183e5","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":56,"context_line":"        in_favor_of\u003d(\u0027v3 API, v2.0 EC2 routes potentially sticking around \u0027"},{"line_number":57,"context_line":"                     \u0027indefinitely.\u0027),"},{"line_number":58,"context_line":"        remove_in\u003d0)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    return f"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_4f6ffbc3","line":58,"in_reply_to":"9a8ffd7b_0ec28c34","updated":"2015-12-03 14:06:46.000000000","message":"Done","commit_id":"cb3d08f48dd79950e33ceacfb2ed93bcd58d5d31"}],"keystone/identity/controllers.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"332fd4f0b8d022622f16a0817b1a2fe440c2e287","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    def set_user_enabled(self, context, user_id, user):"},{"line_number":176,"context_line":"        return self.update_user(context, user_id, user)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    @controller.v2_auth_deprecated"},{"line_number":179,"context_line":"    def set_user_password(self, context, user_id, user):"},{"line_number":180,"context_line":"        user \u003d self._normalize_OSKSADM_password_on_request(user)"},{"line_number":181,"context_line":"        return self.update_user(context, user_id, user)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_598aedc0","line":178,"updated":"2015-12-15 22:33:10.000000000","message":"i think i\u0027ll revert this as well","commit_id":"246234100cbf12107efc3cb5a7d7f826b561203b"}],"keystone/token/controllers.py":[{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"c2608573ea7f22fa35e77172c8015f7e51f9e13c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":44,"context_line":"        in_favor_of\u003d(\u0027v3 API, v2.0 authentication routes potentially sticking \u0027"},{"line_number":45,"context_line":"                     \u0027around indefinitely.\u0027),"},{"line_number":46,"context_line":"        remove_in\u003d0)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    return f"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_2ebf50ab","line":46,"updated":"2015-12-02 18:14:53.000000000","message":"ditto","commit_id":"cb3d08f48dd79950e33ceacfb2ed93bcd58d5d31"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"fa1041e909760fe906a39a8489340a6499e183e5","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        as_of\u003dversionutils.deprecated.MITAKA,"},{"line_number":44,"context_line":"        in_favor_of\u003d(\u0027v3 API, v2.0 authentication routes potentially sticking \u0027"},{"line_number":45,"context_line":"                     \u0027around indefinitely.\u0027),"},{"line_number":46,"context_line":"        remove_in\u003d0)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    return f"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_cf89ab70","line":46,"in_reply_to":"9a8ffd7b_2ebf50ab","updated":"2015-12-03 14:06:46.000000000","message":"Done","commit_id":"cb3d08f48dd79950e33ceacfb2ed93bcd58d5d31"}],"releasenotes/notes/deprecate-v2-apis-894284c17be881d2.yaml":[{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"294e786c388650129e1c4189e101348f50109ecd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    [`blueprint deprecated-as-of-mitaka \u003chttps://blueprints.launchpad.net/keystone/+spec/deprecated-as-of-mitaka\u003e`_]"},{"line_number":5,"context_line":"    Deprecated all v2.0 APIs. The keystone team recommends using v3 APIs instead."},{"line_number":6,"context_line":"    Most v2.0 APIs will be removed in the \u0027Q\u0027 release. However, the authentication"},{"line_number":7,"context_line":"    APIs and EC2 APIs are indefinitely deprecated and will not be removed for at"},{"line_number":8,"context_line":"    least 4 releases as well."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"fa69d971_c291d89a","line":8,"range":{"start_line":7,"start_character":50,"end_line":8,"end_character":28},"updated":"2016-01-04 17:32:41.000000000","message":"This part of the sentence is a little confusing. Instead maybe\n\n\u0027and will not be removed in \u0027Q\u0027","commit_id":"5fbf40ee19da9d4274a2d4ef1e0cb787d2227739"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"7631a7f1237252cd9aeaf9f351e8533c312ffee6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    [`blueprint deprecated-as-of-mitaka \u003chttps://blueprints.launchpad.net/keystone/+spec/deprecated-as-of-mitaka\u003e`_]"},{"line_number":5,"context_line":"    Deprecated all v2.0 APIs. The keystone team recommends using v3 APIs instead."},{"line_number":6,"context_line":"    Most v2.0 APIs will be removed in the \u0027Q\u0027 release. However, the authentication"},{"line_number":7,"context_line":"    APIs and EC2 APIs are indefinitely deprecated and will not be removed for at"},{"line_number":8,"context_line":"    least 4 releases as well."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"fa69d971_8ba53bb6","line":8,"range":{"start_line":7,"start_character":50,"end_line":8,"end_character":28},"in_reply_to":"fa69d971_c291d89a","updated":"2016-01-04 17:36:40.000000000","message":"I\u0027ll add something like that.","commit_id":"5fbf40ee19da9d4274a2d4ef1e0cb787d2227739"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"158a187c29b506006aff1200e54d365c1c32f87f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    Deprecated all v2.0 APIs. The keystone team recommends using v3 APIs instead."},{"line_number":6,"context_line":"    Most v2.0 APIs will be removed in the \u0027Q\u0027 release. However, the authentication"},{"line_number":7,"context_line":"    APIs and EC2 APIs are indefinitely deprecated and will not be removed in"},{"line_number":8,"context_line":"    the \u0027Q\u0027 release as well."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"ba63e191_bcd0cb54","line":8,"updated":"2016-01-19 12:52:09.000000000","message":"remove \u0027as well\u0027","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"7372477ea061f79fdc06e273bea92013441e8be2","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    Deprecated all v2.0 APIs. The keystone team recommends using v3 APIs instead."},{"line_number":6,"context_line":"    Most v2.0 APIs will be removed in the \u0027Q\u0027 release. However, the authentication"},{"line_number":7,"context_line":"    APIs and EC2 APIs are indefinitely deprecated and will not be removed in"},{"line_number":8,"context_line":"    the \u0027Q\u0027 release as well."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"ba63e191_7f7c8572","line":8,"in_reply_to":"ba63e191_bcd0cb54","updated":"2016-01-19 13:06:23.000000000","message":"Done","commit_id":"25e4a56cc8700a8040c00159726102fa97fed296"}]}
