)]}'
{"id":"openstack%2Fpython-keystoneclient~20817","triplet_id":"openstack%2Fpython-keystoneclient~master~I3771ff5d669da015d4aa259de422c5d81aed3eb4","project":"openstack/python-keystoneclient","branch":"master","topic":"jd/handle-expires","hashtags":[],"change_id":"I3771ff5d669da015d4aa259de422c5d81aed3eb4","subject":"Implements token expiration handling","status":"MERGED","created":"2013-01-30 17:09:27.000000000","updated":"2013-02-19 18:34:47.000000000","submitted":"2013-02-19 18:34:47.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":4,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"dc56a2fdcc8078183c4c265f480bd11fee91342e","_number":20817,"virtual_id_number":20817,"owner":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":2,"date":"2013-02-19 18:34:47.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":595,"name":"Nick Barcet","email":"nicolas@barcet.com","username":"nijaba"},{"value":0,"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},{"value":0,"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},{"value":0,"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},{"value":0,"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":595,"name":"Nick Barcet","email":"nicolas@barcet.com","username":"nijaba"},{"value":2,"date":"2013-02-18 21:49:45.000000000","_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},{"value":0,"date":"2013-02-18 10:13:11.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},{"value":2,"date":"2013-02-19 16:51:33.000000000","_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},{"value":0,"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"date":"2013-02-13 21:31:12.000000000","_account_id":595,"name":"Nick Barcet","email":"nicolas@barcet.com","username":"nijaba"},{"value":0,"date":"2013-02-05 01:06:45.000000000","_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},{"value":0,"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},{"value":1,"date":"2013-02-19 16:51:33.000000000","_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},{"value":0,"date":"2013-02-13 21:31:18.000000000","_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},{"_account_id":595,"name":"Nick Barcet","email":"nicolas@barcet.com","username":"nijaba"},{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2013-02-05 01:06:45.000000000","updated_by":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"reviewer":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"state":"REVIEWER"},{"updated":"2013-02-13 21:31:12.000000000","updated_by":{"_account_id":595,"name":"Nick Barcet","email":"nicolas@barcet.com","username":"nijaba"},"reviewer":{"_account_id":595,"name":"Nick Barcet","email":"nicolas@barcet.com","username":"nijaba"},"state":"REVIEWER"},{"updated":"2013-02-13 21:31:18.000000000","updated_by":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"reviewer":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"state":"REVIEWER"},{"updated":"2013-02-19 16:51:33.000000000","updated_by":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"reviewer":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"state":"REVIEWER"},{"updated":"2013-02-19 18:34:47.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"dfa7f77dff88b6c8138237ee07d87d5af1f301db","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-01-30 17:37:52.000000000","message":"Patch Set 1: Doesn\u0027t seem to work\n\nBuild failed.  For information on how to proceed, see http://wiki.openstack.org/GerritJenkinsGithub#Test_Failures\n\n- http://logs.openstack.org/20817/1/check/gate-python-keystoneclient-docs/561 : SUCCESS\n- http://logs.openstack.org/20817/1/check/gate-python-keystoneclient-pep8/705 : FAILURE\n- http://logs.openstack.org/20817/1/check/gate-python-keystoneclient-python26/635 : SUCCESS\n- http://logs.openstack.org/20817/1/check/gate-python-keystoneclient-python27/639 : SUCCESS\n- http://logs.openstack.org/20817/1/check/gate-tempest-devstack-vm/29067 : SUCCESS\n- http://logs.openstack.org/20817/1/check/gate-tempest-devstack-vm-quantum/3738 : SUCCESS\n","accounts_in_message":[],"_revision_number":1},{"id":"91774f17922fee49e8ae8e4552c758a8595f670a","author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"date":"2013-01-30 19:03:45.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"e631a3b7cc77189ae0a5bccc87fa6cf328d162de","author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"date":"2013-01-30 19:22:53.000000000","message":"Patch Set 2:\n\nrecheck no bug","accounts_in_message":[],"_revision_number":2},{"id":"9c221b6cb498370f9153d7abda0a8118adc395c0","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-01-30 19:24:14.000000000","message":"Patch Set 2: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/20817/2/check/gate-python-keystoneclient-docs/562 : SUCCESS\n- http://logs.openstack.org/20817/2/check/gate-python-keystoneclient-pep8/706 : SUCCESS\n- http://logs.openstack.org/20817/2/check/gate-python-keystoneclient-python26/636 : SUCCESS\n- http://logs.openstack.org/20817/2/check/gate-python-keystoneclient-python27/640 : SUCCESS\n- http://logs.openstack.org/20817/2/check/gate-tempest-devstack-vm/29089 : SUCCESS\n- http://logs.openstack.org/20817/2/check/gate-tempest-devstack-vm-quantum/3761 : SUCCESS\n","accounts_in_message":[],"_revision_number":2},{"id":"dcdbb689f78030fdcf1227b14ebe71901cf139fe","author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"date":"2013-01-31 21:48:12.000000000","message":"Patch Set 2: (2 inline comments)\n\nquestion and nit inline","accounts_in_message":[],"_revision_number":2},{"id":"e0520bc822dbb8c2b276d119fcc56fd54263eced","author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"date":"2013-02-01 09:25:23.000000000","message":"Patch Set 2: (2 inline comments)\n\nThanks for the review!","accounts_in_message":[],"_revision_number":2},{"id":"73f60b35c3b4965dc75dfaf862b1bbff108b736e","author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"date":"2013-02-01 09:28:28.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"8f61ee6cffa1d784e038dd87b8ed567019b544a9","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-02-01 10:14:31.000000000","message":"Patch Set 3: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/20817/3/check/gate-python-keystoneclient-docs/572 : SUCCESS\n- http://logs.openstack.org/20817/3/check/gate-python-keystoneclient-pep8/716 : SUCCESS\n- http://logs.openstack.org/20817/3/check/gate-python-keystoneclient-python26/646 : SUCCESS\n- http://logs.openstack.org/20817/3/check/gate-python-keystoneclient-python27/650 : SUCCESS\n- http://logs.openstack.org/20817/3/check/gate-tempest-devstack-vm-full/365 : SUCCESS\n- http://logs.openstack.org/20817/3/check/gate-tempest-devstack-vm-quantum/4170 : SUCCESS\n","accounts_in_message":[],"_revision_number":3},{"id":"fe01c1434fc272ea5c0967a3b1880ac2d6435054","author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"date":"2013-02-05 01:06:45.000000000","message":"Patch Set 3: Looks good to me (core reviewer)\n\n","accounts_in_message":[],"_revision_number":3},{"id":"5ddc97283d43de6bd4d79cbe1a017b19f00f56cd","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2013-02-16 00:20:23.000000000","message":"Patch Set 3: I would prefer that you didn\u0027t merge this\n\nHey Julien,\n\nI generally like where this is going, but it needs to handle the case where the token specified by the user is the \"admin\" token that\u0027s preconfigured into keystone - used to bypass the regular token setups and support bootstrapping a keystone instance. \n\nI *think* haven\u0027t tested) that this code will fail if you pass in that shared-secret token, as it doesn\u0027t have and won\u0027t return an expiration. (i.e. using what\u0027s labelled the \u0027$SERVICE_TOKEN\u0027 in https://github.com/openstack-dev/devstack/blob/master/lib/keystone)","accounts_in_message":[],"_revision_number":3},{"id":"ec4ed917584fe0a18ab72fc13c4d4539f393b08b","author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"date":"2013-02-16 01:31:57.000000000","message":"Patch Set 3: Looks good to me, but someone else must approve\n\n@Joe: hrm, is not that handled by \"if the user specified a token when the client is initialized... we can\u0027t\nknow the expiration date, so we just assume it will never expire\" -- it\u0027s subtly handled in the client, perhaps it just needs some comments?","accounts_in_message":[],"_revision_number":3},{"id":"875eb2dc7b46186d1f4d2df3112ae97324ab74e8","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2013-02-16 02:15:20.000000000","message":"Patch Set 3:\n\nI might be misreading the code then - I was under the impression that it was always validated for expiration with Julien\u0027s update","accounts_in_message":[],"_revision_number":3},{"id":"fe0d46b7a5f265711b17c69eeb6f9ed3da4d8e4d","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2013-02-16 02:16:46.000000000","message":"Patch Set 3:\n\n@dolph - thanks, I re-read, and it was clear it was fine. Julien - any way you can write a unit test that *shows* that behavior? I totally missed it in the first read through","accounts_in_message":[],"_revision_number":3},{"id":"37350f4d8d9bcbaf8276e8ac5e150602ea056079","author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"date":"2013-02-18 10:13:11.000000000","message":"Patch Set 3:\n\nThis is handled, as you saw. There\u0027s already 2 tests using direct token\u003d argument (test_authenticate_success_token_scoped and test_authenticate_success_token_unscoped) proving that this still works.\n\nIf there anything that these 2 tests don\u0027t already cover you would like me to add?","accounts_in_message":[],"_revision_number":3},{"id":"3afd98577d6f683578d9807ae676f5c8722c185f","author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"date":"2013-02-18 21:49:45.000000000","message":"Patch Set 3: Looks good to me (core reviewer)\n\n","accounts_in_message":[],"_revision_number":3},{"id":"411ee5f866783324b9d61e7bd918e0d74f9193da","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2013-02-19 16:51:33.000000000","message":"Patch Set 3: Looks good to me (core reviewer); Approved\n\nJulien -thanks for walking me through it. Looks good, approving","accounts_in_message":[],"_revision_number":3},{"id":"68044754e674f1e07dd55db1e4e9589659ffe9d5","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-02-19 16:51:39.000000000","message":"Patch Set 3: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":3},{"id":"a72238f4ef5e83be3f31448647291654757a9167","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-02-19 18:34:47.000000000","message":"Patch Set 3: Verified\n\nBuild succeeded.\n\n- http://logs.openstack.org/20817/3/gate/gate-python-keystoneclient-docs/677 : SUCCESS\n- http://logs.openstack.org/20817/3/gate/gate-python-keystoneclient-pep8/822 : SUCCESS\n- http://logs.openstack.org/20817/3/gate/gate-python-keystoneclient-python26/749 : SUCCESS\n- http://logs.openstack.org/20817/3/gate/gate-python-keystoneclient-python27/755 : SUCCESS\n- http://logs.openstack.org/20817/3/gate/gate-tempest-devstack-vm-full/4100 : SUCCESS\n- http://logs.openstack.org/20817/3/gate/gate-tempest-devstack-vm-postgres-full/3819 : SUCCESS\n- http://logs.openstack.org/20817/3/gate/gate-tempest-devstack-vm-quantum/8567 : SUCCESS\n","accounts_in_message":[],"_revision_number":3},{"id":"c067dcbc1052e2bdd851baa5ae5b6d01dac91086","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-02-19 18:34:47.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"01735608644a8b71d98f7798ccd6549e4db5de48","revisions":{"55b3b482a10216a22ffd0af55751d98db9399ae5":{"kind":"REWORK","_number":1,"created":"2013-01-30 17:09:27.000000000","uploader":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"ref":"refs/changes/17/20817/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-keystoneclient","ref":"refs/changes/17/20817/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/1"}}},"commit":{"parents":[{"commit":"3573672596b7170f04424e30549d1ab8255a32bb","subject":"Merge \"Take region_name into account when calling url_for\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/3573672596b7170f04424e30549d1ab8255a32bb"}]}],"author":{"name":"Julien Danjou","email":"julien@danjou.info","date":"2013-01-30 17:07:29.000000000","tz":60},"committer":{"name":"Julien Danjou","email":"julien@danjou.info","date":"2013-01-30 17:07:29.000000000","tz":60},"subject":"Implements token expiration handling","message":"Implements token expiration handling\n\nThis implements handling of token expiration. Once the token is expired,\nthis will request automatically for a new one.\n\nA special case is introduced if the user specified a token when the client\nis initialized: this is the auth_token_from_user. In this case, we can\u0027t\nknow the expiration date, so we just assume it will never expire and don\u0027t\nhandle it ourself.\n\nChange-Id: I3771ff5d669da015d4aa259de422c5d81aed3eb4\nSigned-off-by: Julien Danjou \u003cjulien@danjou.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/55b3b482a10216a22ffd0af55751d98db9399ae5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/55b3b482a10216a22ffd0af55751d98db9399ae5"}]},"branch":"refs/heads/master"},"d2bb4ad73bdcde645655e09643b648885c9ef9ef":{"kind":"REWORK","_number":2,"created":"2013-01-30 19:03:45.000000000","uploader":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"ref":"refs/changes/17/20817/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-keystoneclient","ref":"refs/changes/17/20817/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/2"}}},"commit":{"parents":[{"commit":"3573672596b7170f04424e30549d1ab8255a32bb","subject":"Merge \"Take region_name into account when calling url_for\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/3573672596b7170f04424e30549d1ab8255a32bb"}]}],"author":{"name":"Julien Danjou","email":"julien@danjou.info","date":"2013-01-30 17:07:29.000000000","tz":60},"committer":{"name":"Julien Danjou","email":"julien@danjou.info","date":"2013-01-30 17:41:46.000000000","tz":60},"subject":"Implements token expiration handling","message":"Implements token expiration handling\n\nThis implements handling of token expiration. Once the token is expired,\nthis will request automatically for a new one.\n\nA special case is introduced if the user specified a token when the client\nis initialized: this is the auth_token_from_user. In this case, we can\u0027t\nknow the expiration date, so we just assume it will never expire and don\u0027t\nhandle it ourself.\n\nChange-Id: I3771ff5d669da015d4aa259de422c5d81aed3eb4\nSigned-off-by: Julien Danjou \u003cjulien@danjou.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/d2bb4ad73bdcde645655e09643b648885c9ef9ef"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/d2bb4ad73bdcde645655e09643b648885c9ef9ef"}]},"branch":"refs/heads/master"},"01735608644a8b71d98f7798ccd6549e4db5de48":{"kind":"REWORK","_number":3,"created":"2013-02-01 09:28:28.000000000","uploader":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"ref":"refs/changes/17/20817/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-keystoneclient","ref":"refs/changes/17/20817/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-keystoneclient refs/changes/17/20817/3"}}},"commit":{"parents":[{"commit":"92bf8a7af9b742e4b96689cccea1186b38ca41bf","subject":"fix discrepancies seen in domain and credential, v3 - bug 1109349","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/92bf8a7af9b742e4b96689cccea1186b38ca41bf"}]}],"author":{"name":"Julien Danjou","email":"julien@danjou.info","date":"2013-01-30 17:07:29.000000000","tz":60},"committer":{"name":"Julien Danjou","email":"julien@danjou.info","date":"2013-02-01 09:27:52.000000000","tz":60},"subject":"Implements token expiration handling","message":"Implements token expiration handling\n\nThis implements handling of token expiration. Once the token is expired,\nthis will request automatically for a new one.\n\nA special case is introduced if the user specified a token when the client\nis initialized: this is the auth_token_from_user. In this case, we can\u0027t\nknow the expiration date, so we just assume it will never expire and don\u0027t\nhandle it ourself.\n\nChange-Id: I3771ff5d669da015d4aa259de422c5d81aed3eb4\nSigned-off-by: Julien Danjou \u003cjulien@danjou.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/01735608644a8b71d98f7798ccd6549e4db5de48"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/01735608644a8b71d98f7798ccd6549e4db5de48"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
