)]}'
{"keystone/contrib/federation/controllers.py":[{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"1647efa98749c92e2e7364facd091d7733192c70","unresolved":false,"context_lines":[{"line_number":320,"context_line":"        host \u003d self._get_sso_origin_host(context)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        # NOTE(lbragstad): Validate the Identity Provider exists"},{"line_number":323,"context_line":"        self.federation_api.get_idp(idp_id)"},{"line_number":324,"context_line":"        res \u003d self.federated_authentication(context, idp_id, protocol_id)"},{"line_number":325,"context_line":"        token_id \u003d res.headers[\u0027X-Subject-Token\u0027]"},{"line_number":326,"context_line":"        return self.render_html_response(host, token_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_26499fb7","line":323,"updated":"2015-08-20 09:34:07.000000000","message":"we don\u0027t check it in the federated_authentication() method.\nIdp is being checked somewhere deeper :\n\nhttps://github.com/openstack/keystone/blob/master/keystone/auth/plugins/mapped.py#L184","commit_id":"2359a1f86a840152084f7bd76bebbbccdc56d1ac"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1b300c3e89d4a2f603914b26fefe8c81e0fa4981","unresolved":false,"context_lines":[{"line_number":320,"context_line":"        host \u003d self._get_sso_origin_host(context)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        # NOTE(lbragstad): Validate the Identity Provider exists"},{"line_number":323,"context_line":"        self.federation_api.get_idp(idp_id)"},{"line_number":324,"context_line":"        res \u003d self.federated_authentication(context, idp_id, protocol_id)"},{"line_number":325,"context_line":"        token_id \u003d res.headers[\u0027X-Subject-Token\u0027]"},{"line_number":326,"context_line":"        return self.render_html_response(host, token_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_ee6b75b7","line":323,"in_reply_to":"fa1b9901_26499fb7","updated":"2015-08-20 13:27:57.000000000","message":"ah, gotcha, I can remove this and add a note.","commit_id":"2359a1f86a840152084f7bd76bebbbccdc56d1ac"}],"keystone/contrib/federation/routers.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"bf5bee041130ec589b4d6b3cdf19bc9d32faef24","unresolved":false,"context_lines":[{"line_number":84,"context_line":"             ?origin\u003dhttps%3A//horizon.example.com"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        GET /auth/OS-FEDERATION/websso/identity_providers/"},{"line_number":87,"context_line":"            {identity_provider}/protocols/{protocol_id}"},{"line_number":88,"context_line":"            ?origin\u003dhttps%3A//horizon.example.com"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_d801bfb0","line":87,"updated":"2015-08-19 20:00:06.000000000","message":"idp_id","commit_id":"127c9b27afdd42c16ad0b6cb8c9a741692a9f263"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a78bcb9f58224f2f7059af20ba5f454f54f8d77c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"             ?origin\u003dhttps%3A//horizon.example.com"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        GET /auth/OS-FEDERATION/websso/identity_providers/"},{"line_number":87,"context_line":"            {identity_provider}/protocols/{protocol_id}"},{"line_number":88,"context_line":"            ?origin\u003dhttps%3A//horizon.example.com"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_f8f7e356","line":87,"in_reply_to":"fa1b9901_d801bfb0","updated":"2015-08-19 20:11:50.000000000","message":"Done","commit_id":"127c9b27afdd42c16ad0b6cb8c9a741692a9f263"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"bf5bee041130ec589b4d6b3cdf19bc9d32faef24","unresolved":false,"context_lines":[{"line_number":235,"context_line":"            get_post_action\u003d\u0027federated_idp_specific_sso_auth\u0027,"},{"line_number":236,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027websso\u0027),"},{"line_number":237,"context_line":"            path_vars\u003d{"},{"line_number":238,"context_line":"                \u0027identity_provider\u0027: IDP_ID_PARAMETER_RELATION,"},{"line_number":239,"context_line":"                \u0027protocol_id\u0027: PROTOCOL_ID_PARAMETER_RELATION,"},{"line_number":240,"context_line":"            })"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_9807c7c9","line":238,"updated":"2015-08-19 20:00:06.000000000","message":"call this idp id","commit_id":"127c9b27afdd42c16ad0b6cb8c9a741692a9f263"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a78bcb9f58224f2f7059af20ba5f454f54f8d77c","unresolved":false,"context_lines":[{"line_number":235,"context_line":"            get_post_action\u003d\u0027federated_idp_specific_sso_auth\u0027,"},{"line_number":236,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027websso\u0027),"},{"line_number":237,"context_line":"            path_vars\u003d{"},{"line_number":238,"context_line":"                \u0027identity_provider\u0027: IDP_ID_PARAMETER_RELATION,"},{"line_number":239,"context_line":"                \u0027protocol_id\u0027: PROTOCOL_ID_PARAMETER_RELATION,"},{"line_number":240,"context_line":"            })"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_b89c0b10","line":238,"in_reply_to":"fa1b9901_9807c7c9","updated":"2015-08-19 20:11:50.000000000","message":"Done","commit_id":"127c9b27afdd42c16ad0b6cb8c9a741692a9f263"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"460071b9896b5cf0c71f7bdc2a1ae3ca2dc695bf","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        GET /auth/OS-FEDERATION/websso/identity_providers/"},{"line_number":87,"context_line":"            {idp_id}/protocols/{protocol_id}"},{"line_number":88,"context_line":"            ?origin\u003dhttps%3A//horizon.example.com"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    \"\"\""},{"line_number":91,"context_line":"    def _construct_url(self, suffix):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_8dbc5fdd","line":88,"updated":"2015-08-19 23:03:06.000000000","message":"My intent had initially been to put this at GET /OS-FEDERATION/identity_providers/{identity_provider}/protocols/{protocol}/websso because that way when you configure apache you can use the same \u003cLocation\u003e tag for the CLI (/auth) and /websso cases. \n\nI don\u0027t know which one of these is more practical as it could be that you want to only support the /auth or /websso case. I\u0027d be happy to try out both but just giving you an early response.","commit_id":"f409a65a03858817356967cc9e5705d32dd1239e"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"48261aeadcbe2080c7958007ce31b6402b4053e7","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        self._add_resource("},{"line_number":230,"context_line":"            mapper, auth_controller,"},{"line_number":231,"context_line":"            path\u003d\u0027/auth\u0027 + self._construct_url(\u0027identity_providers/{idp_id}\u0027"},{"line_number":232,"context_line":"                                               \u0027/protocols/{protocol}/websso\u0027),"},{"line_number":233,"context_line":"            get_post_action\u003d\u0027federated_idp_specific_sso_auth\u0027,"},{"line_number":234,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027identity_providers\u0027),"},{"line_number":235,"context_line":"            path_vars\u003d{"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_05f8ecc1","line":232,"updated":"2015-08-31 17:54:55.000000000","message":"{protocol} should this be {protocol_id} ? to also match line: 237","commit_id":"2c80f26c78d3d2c49090fe0df702cd911b72c6c2"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"6e6aa0bee30cda666e8e013fb56b626998192af8","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        self._add_resource("},{"line_number":230,"context_line":"            mapper, auth_controller,"},{"line_number":231,"context_line":"            path\u003d\u0027/auth\u0027 + self._construct_url(\u0027identity_providers/{idp_id}\u0027"},{"line_number":232,"context_line":"                                               \u0027/protocols/{protocol}/websso\u0027),"},{"line_number":233,"context_line":"            get_post_action\u003d\u0027federated_idp_specific_sso_auth\u0027,"},{"line_number":234,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027identity_providers\u0027),"},{"line_number":235,"context_line":"            path_vars\u003d{"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_45b6e4f9","line":232,"in_reply_to":"da20952f_05f8ecc1","updated":"2015-08-31 17:57:01.000000000","message":"i think the `protocol_id` part corresponds to the `protocol_id` of the method signature.","commit_id":"2c80f26c78d3d2c49090fe0df702cd911b72c6c2"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"50e844b371212337d852aed42842662251f2664b","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        self._add_resource("},{"line_number":230,"context_line":"            mapper, auth_controller,"},{"line_number":231,"context_line":"            path\u003d\u0027/auth\u0027 + self._construct_url(\u0027identity_providers/{idp_id}\u0027"},{"line_number":232,"context_line":"                                               \u0027/protocols/{protocol}/websso\u0027),"},{"line_number":233,"context_line":"            get_post_action\u003d\u0027federated_idp_specific_sso_auth\u0027,"},{"line_number":234,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027identity_providers\u0027),"},{"line_number":235,"context_line":"            path_vars\u003d{"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_514d0fc3","line":232,"in_reply_to":"da20952f_12126757","updated":"2015-09-01 17:45:00.000000000","message":"this doesn\u0027t work, I got an error while running:\n\n{\"error\": {\"message\": \"federated_idp_specific_sso_auth() got an unexpected keyword argument \u0027protocol\u0027\", \"code\": 400, \"title\": \"Bad Request\"}}","commit_id":"2c80f26c78d3d2c49090fe0df702cd911b72c6c2"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"624392c25db8d5a20e4842117b683122409d48b5","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        self._add_resource("},{"line_number":230,"context_line":"            mapper, auth_controller,"},{"line_number":231,"context_line":"            path\u003d\u0027/auth\u0027 + self._construct_url(\u0027identity_providers/{idp_id}\u0027"},{"line_number":232,"context_line":"                                               \u0027/protocols/{protocol}/websso\u0027),"},{"line_number":233,"context_line":"            get_post_action\u003d\u0027federated_idp_specific_sso_auth\u0027,"},{"line_number":234,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027identity_providers\u0027),"},{"line_number":235,"context_line":"            path_vars\u003d{"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_12126757","line":232,"in_reply_to":"da20952f_45b6e4f9","updated":"2015-08-31 22:45:25.000000000","message":"Okay, its kinda weird.  I thought this should be {protocol_id} to match the path_vards.  I\u0027ll test this out.","commit_id":"2c80f26c78d3d2c49090fe0df702cd911b72c6c2"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4805cadfbd1fb9351067daddd355e21cfe2dbe34","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        self._add_resource("},{"line_number":230,"context_line":"            mapper, auth_controller,"},{"line_number":231,"context_line":"            path\u003d\u0027/auth\u0027 + self._construct_url(\u0027identity_providers/{idp_id}\u0027"},{"line_number":232,"context_line":"                                               \u0027/protocols/{protocol}/websso\u0027),"},{"line_number":233,"context_line":"            get_post_action\u003d\u0027federated_idp_specific_sso_auth\u0027,"},{"line_number":234,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027identity_providers\u0027),"},{"line_number":235,"context_line":"            path_vars\u003d{"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_4c61f2d2","line":232,"in_reply_to":"da20952f_514d0fc3","updated":"2015-09-01 17:53:39.000000000","message":"ah interesting, thanks for testing that out, not sure why that didn\u0027t work through the tests?","commit_id":"2c80f26c78d3d2c49090fe0df702cd911b72c6c2"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4cf5e7a4b0183ea09ebdb36646d448686b8f7928","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        self._add_resource("},{"line_number":230,"context_line":"            mapper, auth_controller,"},{"line_number":231,"context_line":"            path\u003d\u0027/auth\u0027 + self._construct_url("},{"line_number":232,"context_line":"                \u0027identity_providers/{idp_id}/protocols/{protocol_id}/websso\u0027),"},{"line_number":233,"context_line":"            get_post_action\u003d\u0027federated_idp_specific_sso_auth\u0027,"},{"line_number":234,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027identity_providers\u0027),"},{"line_number":235,"context_line":"            path_vars\u003d{"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_acc0ce7d","line":232,"updated":"2015-09-01 17:54:55.000000000","message":"this should be intended one more space, i think","commit_id":"29e751eae5908ecbefe57ad6dc4e308177c72a6a"}],"keystone/tests/unit/test_versions.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"9058cc6485a1444f47d85672293e85dbbe44692d","unresolved":false,"context_lines":[{"line_number":171,"context_line":"FEDERATED_AUTH_URL \u003d (\u0027/OS-FEDERATION/identity_providers/{identity_provider}\u0027"},{"line_number":172,"context_line":"                      \u0027/protocols/{protocol}/auth\u0027)"},{"line_number":173,"context_line":"FEDERATED_IDP_SPECIFIC_WEBSSO \u003d (\u0027/auth/OS-FEDERATION/identity_providers/\u0027"},{"line_number":174,"context_line":"                                 \u0027{idp_id}/protocols/{protocol_id}/websso\u0027)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"V3_JSON_HOME_RESOURCES_INHERIT_DISABLED \u003d {"},{"line_number":177,"context_line":"    json_home.build_v3_resource_relation(\u0027auth_tokens\u0027): {"}],"source_content_type":"text/x-python","patch_set":8,"id":"da20952f_9c53b36c","line":174,"updated":"2015-09-01 21:14:09.000000000","message":"oops I missed updating this one. Thanks!","commit_id":"0c4e8ec554e75219b6f5b392fd07c1da9b5b2bc7"}]}
