)]}'
{"keystone/middleware/auth_token.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"253e538b613b5893ce95c872708bbf7fc5b0779c","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    :param expiry: a datetime of the expected expiration"},{"line_number":166,"context_line":"    :returns: boolean : true if expiration is within 30 seconds"},{"line_number":167,"context_line":"    \"\"\""},{"line_number":168,"context_line":"    soon \u003d (timeutils.utcnow() + datetime.timedelta(seconds\u003d30))"},{"line_number":169,"context_line":"    return expiry \u003c soon"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F8T4%3D","line":168,"updated":"2013-03-02 03:27:02.000000000","message":"This should be a configuration setting.  I will open a bug for that.","commit_id":"096c39df82039cc7b0526834368db912008fb561"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"253e538b613b5893ce95c872708bbf7fc5b0779c","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        \"\"\"Return admin token, possibly fetching a new one."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        if self.admin_token_expiry is set from fetching an admin token, check"},{"line_number":360,"context_line":"        it for expiration, and request a new token is the existing token"},{"line_number":361,"context_line":"        is about to expire."},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        :return admin token id"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F8T0%3D","line":360,"updated":"2013-03-02 03:27:02.000000000","message":"Typo \"if\"","commit_id":"096c39df82039cc7b0526834368db912008fb561"}]}
