)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5b676b439a28bd021c03440ffb77b5b6620436dc","unresolved":false,"context_lines":[{"line_number":10,"context_line":"so there\u0027s no reason for the token formatters to work with such complex"},{"line_number":11,"context_line":"data. This patch ensures that token formatters only see primitive"},{"line_number":12,"context_line":"strings (of datetimes, audit IDs, and trust IDs), which they\u0027re free to"},{"line_number":13,"context_line":"encode however they wish."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia07c57ef183d188acea7fc1f731b94a8792c2875"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a80dd14_5fd66fc6","line":13,"updated":"2015-03-05 20:25:23.000000000","message":"Add closes-bug for https://bugs.launchpad.net/keystone/+bug/1428829","commit_id":"2610d67b42696dcf2c480aa23586b8fbd4c656ee"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9b4884a10d47a78e1e50ab125d8fbce6962de4e4","unresolved":false,"context_lines":[{"line_number":10,"context_line":"so there\u0027s no reason for the token formatters to work with such complex"},{"line_number":11,"context_line":"data. This patch ensures that token formatters only see primitive"},{"line_number":12,"context_line":"strings (of datetimes, audit IDs, and trust IDs), which they\u0027re free to"},{"line_number":13,"context_line":"encode however they wish."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia07c57ef183d188acea7fc1f731b94a8792c2875"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a80dd14_5fbbcf71","line":13,"in_reply_to":"9a80dd14_5fd66fc6","updated":"2015-03-05 20:27:16.000000000","message":"++","commit_id":"2610d67b42696dcf2c480aa23586b8fbd4c656ee"}],"keystone/tests/unit/token/test_fernet_provider.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"042d6c7b55a39cba169c490516fec908df528e71","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        # All we are validating here is that the token is encrypted and"},{"line_number":165,"context_line":"        # decrypted properly, not the actual validity of token data."},{"line_number":166,"context_line":"        encrypted_token \u003d self.formatter.create_token("},{"line_number":167,"context_line":"            user_id,"},{"line_number":168,"context_line":"            project_id,"},{"line_number":169,"context_line":"            timeutils.isotime(timeutils.utcnow()),"},{"line_number":170,"context_line":"            timeutils.isotime(timeutils.utcnow()),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_72797cc7","line":167,"updated":"2015-03-06 16:39:56.000000000","message":"A future refactoring could be to reduce the duplication here. It looks like this same block is repeated a lot.","commit_id":"13f7cf70d59e5d865200f505db085a57eb3ba1eb"}],"keystone/token/providers/fernet/core.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0b6d4d8e34058b40ef3783def677e527f9e43c93","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            token_id \u003d token_format.create_token("},{"line_number":98,"context_line":"                user_id,"},{"line_number":99,"context_line":"                project_id,"},{"line_number":100,"context_line":"                token_data[\u0027token\u0027][\u0027issued_at\u0027],"},{"line_number":101,"context_line":"                token_data[\u0027token\u0027][\u0027expires_at\u0027],"},{"line_number":102,"context_line":"                token_data[\u0027token\u0027][\u0027audit_ids\u0027],"},{"line_number":103,"context_line":"                token_data[\u0027token\u0027][\u0027OS-TRUST:trust\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_d1e1789b","line":100,"updated":"2015-03-05 19:47:20.000000000","message":"the token issued_at and expires_at are going to be pulled out and we\u0027re going to use the Fernet implementation for that, right?","commit_id":"2610d67b42696dcf2c480aa23586b8fbd4c656ee"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9b4884a10d47a78e1e50ab125d8fbce6962de4e4","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            token_id \u003d token_format.create_token("},{"line_number":98,"context_line":"                user_id,"},{"line_number":99,"context_line":"                project_id,"},{"line_number":100,"context_line":"                token_data[\u0027token\u0027][\u0027issued_at\u0027],"},{"line_number":101,"context_line":"                token_data[\u0027token\u0027][\u0027expires_at\u0027],"},{"line_number":102,"context_line":"                token_data[\u0027token\u0027][\u0027audit_ids\u0027],"},{"line_number":103,"context_line":"                token_data[\u0027token\u0027][\u0027OS-TRUST:trust\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_df8fbfca","line":100,"in_reply_to":"9a80dd14_d1e1789b","updated":"2015-03-05 20:27:16.000000000","message":"eventually, yes. i\u0027m getting there!","commit_id":"2610d67b42696dcf2c480aa23586b8fbd4c656ee"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5eb859b304163a55606ad79634abb00859156db1","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            token_id \u003d token_format.create_token("},{"line_number":98,"context_line":"                user_id,"},{"line_number":99,"context_line":"                project_id,"},{"line_number":100,"context_line":"                token_data[\u0027token\u0027][\u0027issued_at\u0027],"},{"line_number":101,"context_line":"                token_data[\u0027token\u0027][\u0027expires_at\u0027],"},{"line_number":102,"context_line":"                token_data[\u0027token\u0027][\u0027audit_ids\u0027],"},{"line_number":103,"context_line":"                token_data[\u0027token\u0027][\u0027OS-TRUST:trust\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_9a3d55be","line":100,"in_reply_to":"9a80dd14_df8fbfca","updated":"2015-03-05 20:31:02.000000000","message":"++","commit_id":"2610d67b42696dcf2c480aa23586b8fbd4c656ee"}],"keystone/token/providers/fernet/token_formatters.py":[{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"5edaf1d801458f46957937668cdce792087ac1cd","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        \"\"\"Create a unscoped token."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        :param user_id: identifier of the user in the token request"},{"line_number":142,"context_line":"        :param issued_at_int: datetime of the token\u0027s creation"},{"line_number":143,"context_line":"        :param expires_at_int: datetime of the token\u0027s expiration"},{"line_number":144,"context_line":"        :param audit_ids: list of the token\u0027s audit IDs"},{"line_number":145,"context_line":"        :returns: a string representing the token"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_b962023c","line":142,"updated":"2015-03-06 14:18:11.000000000","message":"s/issued_at_int/created_at\n\nyou may also want to update variable names as I think you wanted to keep them consistent.","commit_id":"817b8946f76d0149fb44f4139530de4aeec2240a"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"1a8ef26db27381ea07e70aaca3cfbdff53259318","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        \"\"\"Create a unscoped token."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        :param user_id: identifier of the user in the token request"},{"line_number":142,"context_line":"        :param issued_at_int: datetime of the token\u0027s creation"},{"line_number":143,"context_line":"        :param expires_at_int: datetime of the token\u0027s expiration"},{"line_number":144,"context_line":"        :param audit_ids: list of the token\u0027s audit IDs"},{"line_number":145,"context_line":"        :returns: a string representing the token"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_ef010706","line":142,"in_reply_to":"9a80dd14_4cece18f","updated":"2015-03-06 16:05:31.000000000","message":"that\u0027s the drawback of reviewing chaines of of patches :(","commit_id":"817b8946f76d0149fb44f4139530de4aeec2240a"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2d551f01974c4d03be9b4dc5dc801383800e88fd","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        \"\"\"Create a unscoped token."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        :param user_id: identifier of the user in the token request"},{"line_number":142,"context_line":"        :param issued_at_int: datetime of the token\u0027s creation"},{"line_number":143,"context_line":"        :param expires_at_int: datetime of the token\u0027s expiration"},{"line_number":144,"context_line":"        :param audit_ids: list of the token\u0027s audit IDs"},{"line_number":145,"context_line":"        :returns: a string representing the token"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_4cece18f","line":142,"in_reply_to":"9a80dd14_b962023c","updated":"2015-03-06 15:58:49.000000000","message":"hmm, i didn\u0027t put too much effort into the variable names of timestamps because i ultimately delete them in a later commit anyway.","commit_id":"817b8946f76d0149fb44f4139530de4aeec2240a"}]}
