)]}'
{"keystone/contrib/ec2/controllers.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2e74b84cc11b8754e7af8f1e1f0eec704fa40ab4","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # FIXME(ja): validate that a service token was used!"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        # NOTE(termie): backwards compat hack"},{"line_number":104,"context_line":"        if not credentials and ec2credentials:"},{"line_number":105,"context_line":"            credentials \u003d ec2credentials"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2F6mY%3D","line":103,"updated":"2014-04-17 22:58:50.000000000","message":"This logic is now duplicated.","commit_id":"f025ab31e26a53de3bac48bb6bd0957bf0f6d9ab"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"1cef48c9ac1b366d273a6e7d56ad21b1678726c2","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # FIXME(ja): validate that a service token was used!"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        # NOTE(termie): backwards compat hack"},{"line_number":104,"context_line":"        if not credentials and ec2credentials:"},{"line_number":105,"context_line":"            credentials \u003d ec2credentials"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2Ftqs%3D","line":103,"in_reply_to":"AAAAXH%2F%2F6mY%3D","updated":"2014-04-18 01:02:23.000000000","message":"This logic is for line 109.","commit_id":"f025ab31e26a53de3bac48bb6bd0957bf0f6d9ab"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2e74b84cc11b8754e7af8f1e1f0eec704fa40ab4","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            raise exception.Unauthorized(message\u003d\u0027EC2 access key not found.\u0027)"},{"line_number":235,"context_line":"        return self._convert_v3_to_ec2_credential(creds)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    def _get_credential_id(self, credentials\u003dNone, ec2credentials\u003dNone):"},{"line_number":238,"context_line":"        # NOTE(termie): backwards compat hack"},{"line_number":239,"context_line":"        if not credentials and ec2credentials:"},{"line_number":240,"context_line":"            credentials \u003d ec2credentials"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2F66A%3D","line":237,"updated":"2014-04-17 22:58:50.000000000","message":"I think you should make credentials required. Maybe drop the need for ec2credentials because it\u0027s already handled in one caller and it would be easy to call this with:\n\n  _get_credential_id(credentials or ec2credentials)","commit_id":"f025ab31e26a53de3bac48bb6bd0957bf0f6d9ab"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2e74b84cc11b8754e7af8f1e1f0eec704fa40ab4","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    def _get_credential_id(self, credentials\u003dNone, ec2credentials\u003dNone):"},{"line_number":238,"context_line":"        # NOTE(termie): backwards compat hack"},{"line_number":239,"context_line":"        if not credentials and ec2credentials:"},{"line_number":240,"context_line":"            credentials \u003d ec2credentials"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        if \u0027access\u0027 not in credentials:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2F65o%3D","line":239,"updated":"2014-04-17 22:58:50.000000000","message":"This logic is already handled in one of the callers.","commit_id":"f025ab31e26a53de3bac48bb6bd0957bf0f6d9ab"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"1cef48c9ac1b366d273a6e7d56ad21b1678726c2","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    def _get_credential_id(self, credentials\u003dNone, ec2credentials\u003dNone):"},{"line_number":238,"context_line":"        # NOTE(termie): backwards compat hack"},{"line_number":239,"context_line":"        if not credentials and ec2credentials:"},{"line_number":240,"context_line":"            credentials \u003d ec2credentials"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        if \u0027access\u0027 not in credentials:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2FtqU%3D","line":239,"in_reply_to":"AAAAXH%2F%2F65o%3D","updated":"2014-04-18 01:02:23.000000000","message":"Actually, the line 375 will call _get_credential_id too. So, we need this logic too.","commit_id":"f025ab31e26a53de3bac48bb6bd0957bf0f6d9ab"}],"keystone/token/backends/kvs.py":[{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"0cc455243f0883019f0d5b7d588525174d3481dc","unresolved":false,"context_lines":[{"line_number":349,"context_line":"                        continue"},{"line_number":350,"context_line":"                if credential_id is not None:"},{"line_number":351,"context_line":"                    if not self._token_match_credential(token_ref,"},{"line_number":352,"context_line":"                                                        credential_id):"},{"line_number":353,"context_line":"                        continue"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"                tokens.append(token_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FTno%3D","line":352,"updated":"2014-04-15 13:21:57.000000000","message":"Why we need double \u0027if\u0027 here? May be it\u0027s be better use:\n\n if credential_id is not None and not self._token_match_credential(...):\n     continue","commit_id":"bd2e9ef9e0aaf51af47856cbfa9c7fad19845943"}],"keystone/token/backends/sql.py":[{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"0cc455243f0883019f0d5b7d588525174d3481dc","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    def _credential_matches(self, credential_id, ref):"},{"line_number":129,"context_line":"        if credential_id is None:"},{"line_number":130,"context_line":"            return True"},{"line_number":131,"context_line":"        else:"},{"line_number":132,"context_line":"            try:"},{"line_number":133,"context_line":"                credential \u003d ref[\u0027token_data\u0027][\u0027token\u0027].get(\u0027OS-EC2\u0027, {})"},{"line_number":134,"context_line":"                return credential.get(\u0027credential_id\u0027) \u003d\u003d credential_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FTkI%3D","line":131,"updated":"2014-04-15 13:21:57.000000000","message":"I think you needn\u0027t use \u0027else\u0027 here. It would be more readable if you will use:\n\n if credential_id is None:\n     return True\n try:\n    ....\n exept:\n    ....","commit_id":"bd2e9ef9e0aaf51af47856cbfa9c7fad19845943"}]}
