)]}'
{"keystone/token/providers/fernet/core.py":[{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"12e1238861524dadfbd9548f89ff42ec6261a0e3","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        # If we don\u0027t have an identity provider ID and a protocol ID, it\u0027s safe"},{"line_number":135,"context_line":"        # to assume we aren\u0027t dealing with a federated token."},{"line_number":136,"context_line":"        if not (idp_id and protocol_id):"},{"line_number":137,"context_line":"            return None"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        group_ids \u003d federation.get(\u0027groups\u0027)"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_cfaaba70","line":137,"updated":"2015-09-14 16:56:35.000000000","message":"I think all these \u0027get\u0027 are not needed here. For example:\n\ntry:\n\n    federation \u003d token_data[\u0027token\u0027][\u0027user\u0027][federation_constants.FEDERATION]\n\n    idp_id \u003d federation[\u0027identity_provider\u0027][\u0027id\u0027]\n\n    protocol_id \u003d federation[\u0027protocol\u0027][\u0027id\u0027]\n\nexcept KeyError:\n\n    return None","commit_id":"5fca2602fd1cfcc4c5d6b00246969cceef8ca9cd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cb8fec3f5374b687e4ba6d18a91036f6c4892f3d","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        # If we don\u0027t have an identity provider ID and a protocol ID, it\u0027s safe"},{"line_number":135,"context_line":"        # to assume we aren\u0027t dealing with a federated token."},{"line_number":136,"context_line":"        if not (idp_id and protocol_id):"},{"line_number":137,"context_line":"            return None"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        group_ids \u003d federation.get(\u0027groups\u0027)"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_47437caf","line":137,"in_reply_to":"ba15a1d1_cfaaba70","updated":"2015-09-23 16:14:55.000000000","message":"Done","commit_id":"5fca2602fd1cfcc4c5d6b00246969cceef8ca9cd"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"eca96c807b16090f2c89f8e307353d130fc41895","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        # If we don\u0027t have an identity provider ID and a protocol ID, it\u0027s safe"},{"line_number":141,"context_line":"        # to assume we aren\u0027t dealing with a federated token."},{"line_number":142,"context_line":"        if not (idp_id and protocol_id):"},{"line_number":143,"context_line":"            return None"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        group_ids \u003d federation.get(\u0027groups\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_4a2e238d","line":142,"updated":"2015-09-23 16:22:37.000000000","message":"I suspect it\u0027s hardly possible that \u0027id\u0027 is present in identity provider (or protocol) structure above and equals to None, although I\u0027m comfortable with this as illustration :)","commit_id":"8a6beae36f6a883fe61629338f0839931528020d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"babaf8733c3ff15de1fe2cb9f6d77064cb2e7540","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        # If we don\u0027t have an identity provider ID and a protocol ID, it\u0027s safe"},{"line_number":141,"context_line":"        # to assume we aren\u0027t dealing with a federated token."},{"line_number":142,"context_line":"        if not (idp_id and protocol_id):"},{"line_number":143,"context_line":"            return None"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        group_ids \u003d federation.get(\u0027groups\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_6875e62f","line":142,"in_reply_to":"9a1a9d01_2ab75487","updated":"2015-09-30 22:36:32.000000000","message":"Done","commit_id":"8a6beae36f6a883fe61629338f0839931528020d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cda95a4aa67e872b22cebb52ed0f2c91efbb3055","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        # If we don\u0027t have an identity provider ID and a protocol ID, it\u0027s safe"},{"line_number":141,"context_line":"        # to assume we aren\u0027t dealing with a federated token."},{"line_number":142,"context_line":"        if not (idp_id and protocol_id):"},{"line_number":143,"context_line":"            return None"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        group_ids \u003d federation.get(\u0027groups\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_ea37f7ad","line":142,"in_reply_to":"ba15a1d1_4a2e238d","updated":"2015-09-23 16:26:10.000000000","message":"it could also be an empty string or 0 or an empty list. That wasn\u0027t the point of this change per the commit message.","commit_id":"8a6beae36f6a883fe61629338f0839931528020d"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"6149cd66be0d6e5edff391840c4cb2d175776459","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        # If we don\u0027t have an identity provider ID and a protocol ID, it\u0027s safe"},{"line_number":141,"context_line":"        # to assume we aren\u0027t dealing with a federated token."},{"line_number":142,"context_line":"        if not (idp_id and protocol_id):"},{"line_number":143,"context_line":"            return None"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        group_ids \u003d federation.get(\u0027groups\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_2ab75487","line":142,"in_reply_to":"ba15a1d1_ea37f7ad","updated":"2015-09-28 19:35:19.000000000","message":"I agree with Alexander. idp_id and protocol_id can\u0027t be empty string or empty list. So please remove this code as part of cleanup.","commit_id":"8a6beae36f6a883fe61629338f0839931528020d"}]}
