)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17645,"name":"Shan Guo","email":"guoshan.jolie@gmail.com","username":"guoshan"},"change_message_id":"ebd5d368304254e5f2c44061505010262e0e0304","unresolved":false,"context_lines":[{"line_number":11,"context_line":"   ERROR in keystone.common.wsgi\u0027str\u0027, object has no attribute \u0027strftime\u0027,"},{"line_number":12,"context_line":"and the real reason is that \"expires\" is a string not a time or datetime"},{"line_number":13,"context_line":"type. For \u0027expires\u0027 in token generates from \u0027datetime\u0027 type."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: If77e44dd62176cf935aa1a81336a132bb676b78a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3aaa91ec_651a5e19","line":14,"updated":"2016-06-28 06:57:12.000000000","message":"Close_bug","commit_id":"cca6364f4f7f83cf2332a2e7113488b11d9b5a94"},{"author":{"_account_id":17645,"name":"Shan Guo","email":"guoshan.jolie@gmail.com","username":"guoshan"},"change_message_id":"ebd5d368304254e5f2c44061505010262e0e0304","unresolved":false,"context_lines":[{"line_number":11,"context_line":"   ERROR in keystone.common.wsgi\u0027str\u0027, object has no attribute \u0027strftime\u0027,"},{"line_number":12,"context_line":"and the real reason is that \"expires\" is a string not a time or datetime"},{"line_number":13,"context_line":"type. For \u0027expires\u0027 in token generates from \u0027datetime\u0027 type."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: If77e44dd62176cf935aa1a81336a132bb676b78a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3aaa91ec_a5b9e6ee","line":14,"updated":"2016-06-28 06:57:12.000000000","message":"Closes-Bug: #1594231\n\nTo file bug in lanchpad automaic","commit_id":"cca6364f4f7f83cf2332a2e7113488b11d9b5a94"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b00653384884fc949757138bd76839eb95a0b8fc","unresolved":false,"context_lines":[{"line_number":11,"context_line":"   ERROR in keystone.common.wsgi\u0027str\u0027, object has no attribute \u0027strftime\u0027,"},{"line_number":12,"context_line":"and the real reason is that \"expires\" is a string not a time or datetime"},{"line_number":13,"context_line":"type. For \u0027expires\u0027 in token generates from \u0027datetime\u0027 type."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: If77e44dd62176cf935aa1a81336a132bb676b78a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1aa78d24_1cdb7850","line":14,"in_reply_to":"3aaa91ec_a5b9e6ee","updated":"2016-07-06 15:48:18.000000000","message":"The hashtag is optional, so at minimum, the commit message needs to have just:\n\n  Closes-Bug: 1594231\n\nThis should appear in the footer with the Change-Id (either before or after - it doesn\u0027t matter). A bot will then be able to track the commit against the bug and take care of Launchpad for us.","commit_id":"cca6364f4f7f83cf2332a2e7113488b11d9b5a94"}],"keystone/auth/controllers.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"230dacb1a6d327b0c24329d78824fb6333d9729b","unresolved":false,"context_lines":[{"line_number":580,"context_line":""},{"line_number":581,"context_line":"        for t in tokens:"},{"line_number":582,"context_line":"            expires \u003d t[\u0027expires\u0027]"},{"line_number":583,"context_line":"            if not expires or isinstance(expires, datetime.datetime):"},{"line_number":584,"context_line":"                t[\u0027expires\u0027] \u003d utils.isotime(expires)"},{"line_number":585,"context_line":"            if audit_id_only:"},{"line_number":586,"context_line":"                t.pop(\u0027id\u0027, None)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_b03322f5","line":583,"range":{"start_line":583,"start_character":12,"end_line":583,"end_character":69},"updated":"2016-06-27 07:56:15.000000000","message":"I agree using datatime explicitly is better, but I don\u0027t think the token without the expiration properly set should be retrieved back. \n\nMaybe you can consider what we did in V2? I think that is more clear.\nhttps://github.com/openstack/keystone/blob/master/keystone/token/controllers.py#L468","commit_id":"cca6364f4f7f83cf2332a2e7113488b11d9b5a94"}]}
