)]}'
{"keystone/common/controller.py":[{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"bed36d92d69c873461b39ce0ed300a50cf8688d2","unresolved":false,"context_lines":[{"line_number":703,"context_line":"    else:"},{"line_number":704,"context_line":"        status \u003d (http_client.OK,"},{"line_number":705,"context_line":"                  http_client.responses[http_client.OK])"},{"line_number":706,"context_line":"    headers \u003d [(\u0027X-Subject-Token\u0027, token_id)]"},{"line_number":707,"context_line":"    return wsgi.render_response(body\u003dtoken_data,"},{"line_number":708,"context_line":"                                status\u003dstatus,"},{"line_number":709,"context_line":"                                headers\u003dheaders)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f013ff3_21e5fda8","line":706,"updated":"2017-05-16 20:55:49.000000000","message":"That one single unit test is failing because [0][1] doesn\u0027t want x-subject-token in the response headers. This differs from the previous behavior of s3, which didn\u0027t include any headers in the response [2]. You should provide an optional parameter whether to include headers or not.\n\n0. https://github.com/openstack/keystone/blob/master/keystone/tests/unit/test_contrib_s3_core.py#L54\n\n1. https://github.com/openstack/keystone/blob/master/keystone/tests/unit/test_v3.py#L557-L558\n\n2. https://github.com/openstack/keystone/blob/master/keystone/contrib/s3/core.py#L135","commit_id":"a8f5aaef4f853691c9eb11c8fdc025bef4d63d48"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"72b6774018d4ea1ca9a55e660087881f2904bb67","unresolved":false,"context_lines":[{"line_number":695,"context_line":"        return ref"},{"line_number":696,"context_line":""},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"def render_token_data_response(token_id, token_data, "},{"line_number":699,"context_line":"                               created\u003dFalse, credentials\u003dNone):"},{"line_number":700,"context_line":"    \"\"\"Render token data HTTP response.\"\"\""},{"line_number":701,"context_line":"    if created:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff0f0b1f_4b5bba2d","line":698,"range":{"start_line":698,"start_character":52,"end_line":698,"end_character":53},"updated":"2017-05-17 17:29:42.000000000","message":"this whitespace here is making pep8 fail.","commit_id":"c56d7fdadd3045befd293593d49b2d6d08dbe22b"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"72b6774018d4ea1ca9a55e660087881f2904bb67","unresolved":false,"context_lines":[{"line_number":696,"context_line":""},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"def render_token_data_response(token_id, token_data, "},{"line_number":699,"context_line":"                               created\u003dFalse, credentials\u003dNone):"},{"line_number":700,"context_line":"    \"\"\"Render token data HTTP response.\"\"\""},{"line_number":701,"context_line":"    if created:"},{"line_number":702,"context_line":"        status \u003d (http_client.CREATED,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff0f0b1f_8b09d2de","line":699,"range":{"start_line":699,"start_character":46,"end_line":699,"end_character":62},"updated":"2017-05-17 17:29:42.000000000","message":"You are not using the passed in credentials and there is no explanation as to how the presence of `credentials` correlates to the presence of x-auth-token and headers. I would rather make this a True/False parameter with a clear defined name such as include_token\u003dTrue.","commit_id":"c56d7fdadd3045befd293593d49b2d6d08dbe22b"},{"author":{"_account_id":25640,"name":"rocky","email":"rocky0722@163.com","username":"xuhaigang"},"change_message_id":"a52ff3b67a7ce3586ccb4f78e198f01f2664aa39","unresolved":false,"context_lines":[{"line_number":696,"context_line":""},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"def render_token_data_response(token_id, token_data, "},{"line_number":699,"context_line":"                               created\u003dFalse, credentials\u003dNone):"},{"line_number":700,"context_line":"    \"\"\"Render token data HTTP response.\"\"\""},{"line_number":701,"context_line":"    if created:"},{"line_number":702,"context_line":"        status \u003d (http_client.CREATED,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff0f0b1f_19c98e77","line":699,"range":{"start_line":699,"start_character":46,"end_line":699,"end_character":62},"in_reply_to":"ff0f0b1f_8b09d2de","updated":"2017-05-18 06:05:29.000000000","message":"But I don\u0027t know how to distinguish EC2Ctroller from S3Ctroller here. Do you have any good suggestion?:)","commit_id":"c56d7fdadd3045befd293593d49b2d6d08dbe22b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"e9a787ae0a519c5c4f7d0c1ed9890946b982c828","unresolved":false,"context_lines":[{"line_number":711,"context_line":"                                    headers\u003dheaders)"},{"line_number":712,"context_line":"    else:"},{"line_number":713,"context_line":"        return wsgi.render_response(body\u003dtoken_data,"},{"line_number":714,"context_line":"                                    status\u003dstatus)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_808873c6","line":714,"updated":"2017-05-18 12:09:45.000000000","message":"for credentials it was returning a response with body, status and headers too","commit_id":"a12b85576143ca81d8a1051856ea0f59816dce4e"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"ce8d765604a3f0813ab6fdf607ec93402ab23a1b","unresolved":false,"context_lines":[{"line_number":711,"context_line":"                                    headers\u003dheaders)"},{"line_number":712,"context_line":"    else:"},{"line_number":713,"context_line":"        return wsgi.render_response(body\u003dtoken_data,"},{"line_number":714,"context_line":"                                    status\u003dstatus)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_e0504f35","line":714,"in_reply_to":"ff0f0b1f_808873c6","updated":"2017-05-18 12:12:29.000000000","message":"maybe you could just remove this second if/else statement and just do:\n\n    headers \u003d [(\u0027X-Subject-Token\u0027, token_id)]\n        return wsgi.render_response(body\u003dtoken_data,\n                                    status\u003dstatus,\n                                    headers\u003dheaders)\n\n\nand leave the method override to s3, which has a different behavior, see comment there","commit_id":"a12b85576143ca81d8a1051856ea0f59816dce4e"}],"keystone/contrib/ec2/controllers.py":[{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"72b6774018d4ea1ca9a55e660087881f2904bb67","unresolved":false,"context_lines":[{"line_number":378,"context_line":"        token_id, token_data \u003d self.token_provider_api.issue_token("},{"line_number":379,"context_line":"            user_ref[\u0027id\u0027], method_names, project_id\u003dproject_ref[\u0027id\u0027])"},{"line_number":380,"context_line":"        return controller.render_token_data_response(token_id, token_data,"},{"line_number":381,"context_line":"                                                     credentials\u003dcredentials)"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    @controller.protected(callback\u003d_check_credential_owner_and_user_id_match)"},{"line_number":384,"context_line":"    def ec2_get_credential(self, request, user_id, credential_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff0f0b1f_6b279e66","line":381,"range":{"start_line":381,"start_character":53,"end_line":381,"end_character":76},"updated":"2017-05-17 17:29:42.000000000","message":"Following up on the comment on the other file, render_token_data_response doesn\u0027t need to know the relationship between the presence of a token and credentials, or the actual credentials. Pass include_token\u003dTrue if credentials is None else False.","commit_id":"c56d7fdadd3045befd293593d49b2d6d08dbe22b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"e9a787ae0a519c5c4f7d0c1ed9890946b982c828","unresolved":false,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        return wsgi.render_response(body\u003dtoken_data,"},{"line_number":268,"context_line":"                                    status\u003dstatus,"},{"line_number":269,"context_line":"                                    headers\u003dheaders)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"@dependency.requires(\u0027policy_api\u0027, \u0027token_provider_api\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_6000bf35","side":"PARENT","line":269,"updated":"2017-05-18 12:09:45.000000000","message":"for credentials it was returning a response with body, status and headers","commit_id":"d01c7f1b962ef75cfacc63d8a5c2f4d5e05017cf"}],"keystone/contrib/s3/core.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"ce8d765604a3f0813ab6fdf607ec93402ab23a1b","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        \"\"\""},{"line_number":133,"context_line":"        status \u003d (http_client.OK,"},{"line_number":134,"context_line":"                  http_client.responses[http_client.OK])"},{"line_number":135,"context_line":"        return wsgi.render_response(body\u003dtoken_data, status\u003dstatus)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_60731fe9","side":"PARENT","line":135,"updated":"2017-05-18 12:12:29.000000000","message":"if this has a different behavior than all the others (not including headers), you might just want to keep this function here so the default behavior is overriden","commit_id":"d01c7f1b962ef75cfacc63d8a5c2f4d5e05017cf"}]}
