)]}'
{"keystone/token/providers/fernet/utils.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"8b59f92a90c0af3043dd3fb302ec5c6f8c2a498a","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    # purge excess keys"},{"line_number":210,"context_line":"    keys \u003d sorted(key_files.keys())"},{"line_number":211,"context_line":"    number_of_keys_to_purge \u003d (len(key_files) -"},{"line_number":212,"context_line":"        CONF.fernet_tokens.max_active_keys + 1)"},{"line_number":213,"context_line":"    if number_of_keys_to_purge \u003e 0:"},{"line_number":214,"context_line":"        excess_keys \u003d (keys[:number_of_keys_to_purge])"},{"line_number":215,"context_line":"        LOG.info(_LI(\u0027Excess keys to purge: %s\u0027), excess_keys)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_7f2404c4","line":212,"updated":"2015-06-17 17:29:45.000000000","message":"the +1 results in the wrong \"number_of_keys_to_purge\" but results in the correct slice of excess_keys below.\n\nthe behavior is correct, the variable name is a lie.","commit_id":"681de9065a02eb474b70a2b8eefec91c85c4cbfd"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4af61eaa5e052667e2f4ef78518fb4d0bf3cad32","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    # purge excess keys"},{"line_number":210,"context_line":"    keys \u003d sorted(key_files.keys())"},{"line_number":211,"context_line":"    number_of_keys_to_purge \u003d (len(key_files) -"},{"line_number":212,"context_line":"        CONF.fernet_tokens.max_active_keys + 1)"},{"line_number":213,"context_line":"    if number_of_keys_to_purge \u003e 0:"},{"line_number":214,"context_line":"        excess_keys \u003d (keys[:number_of_keys_to_purge])"},{"line_number":215,"context_line":"        LOG.info(_LI(\u0027Excess keys to purge: %s\u0027), excess_keys)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_5cd7cb4a","line":212,"in_reply_to":"fa32b979_7f2404c4","updated":"2015-06-17 17:54:19.000000000","message":"Done","commit_id":"681de9065a02eb474b70a2b8eefec91c85c4cbfd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49b56a1687924702dfff6705b8583dc182477c0e","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    # purge excess keys"},{"line_number":210,"context_line":"    keys \u003d sorted(key_files.keys())"},{"line_number":211,"context_line":"    number_of_keys_to_purge \u003d max("},{"line_number":212,"context_line":"        0, len(key_files) - CONF.fernet_tokens.max_active_keys + 1)"},{"line_number":213,"context_line":"    if number_of_keys_to_purge \u003e 0:"},{"line_number":214,"context_line":"        excess_keys \u003d keys[:number_of_keys_to_purge]"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_e8df4e38","line":211,"updated":"2015-06-22 19:28:39.000000000","message":"there\u0027s no need to do the max() here since the next line checks number_of_keys_to_purge \u003e 0","commit_id":"46f56119a0d19f0c4075aaf0dd29f2d8cf76fa54"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"da7ff4e7a4d20013d1ccb5f806c75c86bb9e6b26","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    # purge excess keys"},{"line_number":210,"context_line":"    keys \u003d sorted(key_files.keys())"},{"line_number":211,"context_line":"    number_of_keys_to_purge \u003d max("},{"line_number":212,"context_line":"        0, len(key_files) - CONF.fernet_tokens.max_active_keys + 1)"},{"line_number":213,"context_line":"    if number_of_keys_to_purge \u003e 0:"},{"line_number":214,"context_line":"        excess_keys \u003d keys[:number_of_keys_to_purge]"},{"line_number":215,"context_line":"        LOG.info(_LI(\u0027Excess keys to purge: %s\u0027), excess_keys)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_2285fc05","line":212,"updated":"2015-06-17 18:37:55.000000000","message":"I don\u0027t like the +1 magic number, but I\u0027m OK with it as -is","commit_id":"46f56119a0d19f0c4075aaf0dd29f2d8cf76fa54"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"1194e75b5219258cc8d2489304f837ee05188b95","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    # purge excess keys"},{"line_number":210,"context_line":"    keys \u003d sorted(key_files.keys())"},{"line_number":211,"context_line":"    number_of_keys_to_purge \u003d max("},{"line_number":212,"context_line":"        0, len(key_files) - CONF.fernet_tokens.max_active_keys + 1)"},{"line_number":213,"context_line":"    if number_of_keys_to_purge \u003e 0:"},{"line_number":214,"context_line":"        excess_keys \u003d keys[:number_of_keys_to_purge]"},{"line_number":215,"context_line":"        LOG.info(_LI(\u0027Excess keys to purge: %s\u0027), excess_keys)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_ebce0f2c","line":212,"in_reply_to":"fa32b979_2285fc05","updated":"2015-06-17 19:42:04.000000000","message":"the variable name here is still a bit of a lie, which makes the +1 suspicious (as it\u0027s for slicing, not really increasing the number of keys to purge... but this totally works (per the testing in the subsequent patch). with tests, we can refactor this later :)","commit_id":"46f56119a0d19f0c4075aaf0dd29f2d8cf76fa54"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"83e9d67adb1224eb527edaa66cec62cff48294dd","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    # purge excess keys"},{"line_number":210,"context_line":"    keys \u003d sorted(key_files.keys())"},{"line_number":211,"context_line":"    number_of_keys_to_purge \u003d max("},{"line_number":212,"context_line":"        0, len(key_files) - CONF.fernet_tokens.max_active_keys + 1)"},{"line_number":213,"context_line":"    if number_of_keys_to_purge \u003e 0:"},{"line_number":214,"context_line":"        excess_keys \u003d keys[:number_of_keys_to_purge]"},{"line_number":215,"context_line":"        LOG.info(_LI(\u0027Excess keys to purge: %s\u0027), excess_keys)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_b41f5f5a","line":212,"in_reply_to":"fa32b979_ebce0f2c","updated":"2015-06-22 20:15:56.000000000","message":"++ I agree, Brant has a patch proposed that we can iterate over until we find something that makes more sense. \n\nhttps://review.openstack.org/#/c/194335/","commit_id":"46f56119a0d19f0c4075aaf0dd29f2d8cf76fa54"}]}
