)]}'
{"id":"openstack%2Fpython-keystoneclient~14730","triplet_id":"openstack%2Fpython-keystoneclient~master~I4bb3a1b6a5ce2c4b3fbcebeb59116286cac8b2e3","project":"openstack/python-keystoneclient","branch":"master","topic":"bp/solidify-python-api","hashtags":[],"change_id":"I4bb3a1b6a5ce2c4b3fbcebeb59116286cac8b2e3","subject":"removing repeat attempt at authorization in client","status":"MERGED","created":"2012-10-24 04:01:49.000000000","updated":"2012-11-09 02:59:27.000000000","submitted":"2012-11-09 02:59:27.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":42,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"028929245036ce27b8f799d183a7bc0e0d065ef5","_number":14730,"virtual_id_number":14730,"owner":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":2,"date":"2012-11-09 02:59:27.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},{"value":0,"_account_id":357,"name":"Devin Carlen","email":"devin@openstack.org","username":"devcamcar"},{"value":0,"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},{"value":0,"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},{"value":0,"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},{"value":0,"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"}],"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":357,"name":"Devin Carlen","email":"devin@openstack.org","username":"devcamcar"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},{"value":2,"date":"2012-11-09 02:37:11.000000000","_account_id":357,"name":"Devin Carlen","email":"devin@openstack.org","username":"devcamcar"},{"value":0,"date":"2012-11-09 01:58:34.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},{"value":2,"date":"2012-11-09 00:07:48.000000000","_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},{"value":0,"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},{"value":0,"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"}],"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":357,"name":"Devin Carlen","email":"devin@openstack.org","username":"devcamcar"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},{"value":1,"date":"2012-11-09 02:37:11.000000000","_account_id":357,"name":"Devin Carlen","email":"devin@openstack.org","username":"devcamcar"},{"value":0,"date":"2012-11-09 01:58:34.000000000","_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},{"value":0,"date":"2012-11-09 00:07:48.000000000","_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},{"value":0,"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},{"value":0,"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"}],"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":357,"name":"Devin Carlen","email":"devin@openstack.org","username":"devcamcar"},{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2012-10-24 04:02:34.000000000","updated_by":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"reviewer":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"state":"REVIEWER"},{"updated":"2012-10-29 15:10:59.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":"2012-11-01 13:42:36.000000000","updated_by":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"reviewer":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"state":"REVIEWER"},{"updated":"2012-11-09 00:07:48.000000000","updated_by":{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},"reviewer":{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},"state":"REVIEWER"},{"updated":"2012-11-09 02:37:11.000000000","updated_by":{"_account_id":357,"name":"Devin Carlen","email":"devin@openstack.org","username":"devcamcar"},"reviewer":{"_account_id":357,"name":"Devin Carlen","email":"devin@openstack.org","username":"devcamcar"},"state":"REVIEWER"},{"updated":"2012-11-09 02:59:27.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"e974084cb76ee311c672b1d5e92ba3cdeab9a839","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-10-24 04:06:17.000000000","message":"Patch Set 1:\n\nwide ranging changes to make the keystoneclient python API more consumable, so far preserving all methods exposed and original functionality, just expanding to allow more options to use and re-use clients.\n\nI\u0027m expecting removing the authenticate() dual-try on failure at the client to reduce failure-chaty-ness, externalizing the resource managers from authenticate to allow easier override of the management URL, and the new authtoken module to capture what service_catalog seems to have originally intended, but never followed through on.","accounts_in_message":[],"_revision_number":1},{"id":"6ff3c06f2b3eadd7a596180bfb429d663146db1f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-10-24 04:41:17.000000000","message":"Patch Set 1: Doesn\u0027t seem to work\n\nBuild failed\n\n- http://logs.openstack.org/14730/1/check/gate-python-keystoneclient-merge/374 : SUCCESS\n- http://logs.openstack.org/14730/1/check/gate-python-keystoneclient-docs/225 : SUCCESS\n- http://logs.openstack.org/14730/1/check/gate-python-keystoneclient-pep8/369 : SUCCESS\n- http://logs.openstack.org/14730/1/check/gate-python-keystoneclient-python26/301 : SUCCESS\n- http://logs.openstack.org/14730/1/check/gate-python-keystoneclient-python27/303 : SUCCESS\n- http://logs.openstack.org/14730/1/check/gate-tempest-devstack-vm/15262 : SUCCESS\n- http://logs.openstack.org/14730/1/check/gate-tempest-devstack-vm-cinder/5256 : FAILURE\n","accounts_in_message":[],"_revision_number":1},{"id":"75f07cadbbcffcc0f5d62978a03ae9bbfd596617","author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"date":"2012-10-24 12:42:14.000000000","message":"Patch Set 1: I would prefer that you didn\u0027t merge this\n\n(15 inline comments)\n\ni like!","accounts_in_message":[],"_revision_number":1},{"id":"dc4a7e802c9751e3bceba15dc243eba3d48c092d","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-10-24 19:20:30.000000000","message":"Patch Set 1: (12 inline comments)\n\nupdates coming shortly","accounts_in_message":[],"_revision_number":1},{"id":"3265e3c1d3b8c3e9da63628d0660b39a79183176","author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"date":"2012-10-24 22:06:48.000000000","message":"Patch Set 1: (5 inline comments)\n\n","accounts_in_message":[],"_revision_number":1},{"id":"f6a2888da415ee481c662dabaed4d21076d6a99b","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-10-26 00:35:13.000000000","message":"Patch Set 1: (2 inline comments)\n\n","accounts_in_message":[],"_revision_number":1},{"id":"6ef3d01ad46e26c833f2a8a26578dc9f6056a6b3","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-10-26 00:36:39.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"fe8d028372e6d0c0b3e60beb9e8fb10a082c6381","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-10-26 00:57:21.000000000","message":"Patch Set 2: Works for me\n\nBuild successful\n\n- http://logs.openstack.org/14730/2/check/gate-python-keystoneclient-merge/379 : SUCCESS\n- http://logs.openstack.org/14730/2/check/gate-python-keystoneclient-docs/230 : SUCCESS\n- http://logs.openstack.org/14730/2/check/gate-python-keystoneclient-pep8/374 : SUCCESS\n- http://logs.openstack.org/14730/2/check/gate-python-keystoneclient-python26/306 : SUCCESS\n- http://logs.openstack.org/14730/2/check/gate-python-keystoneclient-python27/308 : SUCCESS\n- http://logs.openstack.org/14730/2/check/gate-tempest-devstack-vm/15655 : SUCCESS\n","accounts_in_message":[],"_revision_number":2},{"id":"7d356e4404dbdd92ce6b0fdd793d6c9fb8b59113","author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"date":"2012-10-26 03:37:30.000000000","message":"Patch Set 2: I would prefer that you didn\u0027t merge this\n\n(2 inline comments)\n\nsmall fix","accounts_in_message":[],"_revision_number":2},{"id":"cf6886ac5bd97d656911dc7f03689af2a9aedff0","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-10-27 21:02:51.000000000","message":"Patch Set 2: (2 inline comments)\n\n","accounts_in_message":[],"_revision_number":2},{"id":"61ef5105a52cd10cf279ec5e86a47cf9acfa3644","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-10-27 21:03:10.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"1b7257f1dc85a4e9861c5b892d7e987edaaf19af","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-10-27 21:25:57.000000000","message":"Patch Set 3: Works for me\n\nBuild successful\n\n- http://logs.openstack.org/14730/3/check/gate-python-keystoneclient-merge/380 : SUCCESS\n- http://logs.openstack.org/14730/3/check/gate-python-keystoneclient-docs/231 : SUCCESS\n- http://logs.openstack.org/14730/3/check/gate-python-keystoneclient-pep8/375 : SUCCESS\n- http://logs.openstack.org/14730/3/check/gate-python-keystoneclient-python26/307 : SUCCESS\n- http://logs.openstack.org/14730/3/check/gate-python-keystoneclient-python27/309 : SUCCESS\n- http://logs.openstack.org/14730/3/check/gate-tempest-devstack-vm/15812 : SUCCESS\n","accounts_in_message":[],"_revision_number":3},{"id":"dbd1d4edc2b7d5a41b673056d713a13af3ff9008","author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"date":"2012-10-29 15:10:59.000000000","message":"Patch Set 3: Looks good to me (core reviewer)\n\nNice, I like the project_* additions","accounts_in_message":[],"_revision_number":3},{"id":"b0836a706fde2f0605a97e3d00efd0ce4a376a99","author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"date":"2012-10-30 14:53:08.000000000","message":"Patch Set 3: I would prefer that you didn\u0027t merge this\n\nWhile I support the approach, I worry about using authtoken as a top level class/package name in the client, considering that we are about to move the auth_token middleware to the client as well.  The naming of the package in the server is token, and we should probably keep them in sync.\n\nWe probably need to address the overall package structure.  Under keystoneclient We currently have:\nmiddleware openstack generic common contrib locale v2_0.  Should the token namespace be added at this level?","accounts_in_message":[],"_revision_number":3},{"id":"041f7fbcf26f5370601a3b15b76dc6d53c1f3801","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-01 01:55:30.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"26b2533244af1842538b5abb2d25d22fdc757a2d","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-01 01:56:34.000000000","message":"Patch Set 4:\n\nayoung: changed \"authtoken\" module name to \"access\" - authorization just didn\u0027t quite fit for me, so see what you think of working with that setup. Also changed \"AuthToken\" to \"AccessInfo\"","accounts_in_message":[],"_revision_number":4},{"id":"3f348ad5b618dca76ef7250b7a1963bc270fca77","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-11-01 02:16:25.000000000","message":"Patch Set 4: Works for me\n\nBuild successful\n\n- http://logs.openstack.org/14730/4/check/gate-python-keystoneclient-merge/404 : SUCCESS\n- http://logs.openstack.org/14730/4/check/gate-python-keystoneclient-docs/255 : SUCCESS\n- http://logs.openstack.org/14730/4/check/gate-python-keystoneclient-pep8/399 : SUCCESS\n- http://logs.openstack.org/14730/4/check/gate-python-keystoneclient-python26/331 : SUCCESS\n- http://logs.openstack.org/14730/4/check/gate-python-keystoneclient-python27/333 : SUCCESS\n- http://logs.openstack.org/14730/4/check/gate-tempest-devstack-vm/16438 : SUCCESS\n","accounts_in_message":[],"_revision_number":4},{"id":"a2edd1c81ff61d15e991420aefde5b8770938d01","author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"date":"2012-11-01 13:42:36.000000000","message":"Patch Set 4: Looks good to me, but someone else must approve\n\n(1 inline comment)\n\nPropose for a follow on patch that checks expiry in PKI token.  Even UUID tokens could cache this information, perhaps in conjunction with Keyring?","accounts_in_message":[],"_revision_number":4},{"id":"f7398ddd4bc097d18e33f2fc66dcfc6de2ffc9f0","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-01 16:03:31.000000000","message":"Patch Set 4: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":4},{"id":"28ca8c9d66d7fe861cff0d7c6724f7e6411bab7c","author":{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},"date":"2012-11-01 19:02:19.000000000","message":"Patch Set 4: Do not merge\n\n(1 inline comment)\n\nThis patch is broken as is, sorry. Notes inline.","accounts_in_message":[],"_revision_number":4},{"id":"2dc5694f39a0832de86a60e2ee0ff89352d81756","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-01 20:42:03.000000000","message":"Patch Set 4: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":4},{"id":"20ed6f562e464bf761a928bb470ebf02466853e7","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-08 05:10:53.000000000","message":"Patch Set 4:\n\ncomment to myself to keep review active:\n\nThere\u0027s a subtle problem here:\n  1. instantiate the client using username, password and auth_url; authenticate is called implicitly.\n  2. authentication happens, returning an unscoped token.\n  3. code here checks for a scoped token and only sets the management URL if it finds one.\n  4. the instantiated client is then returned, seemingly ready to use.\n  5. Try to make any other call.\n  6. Watch it blow up with an \"unsupported operation for string and NoneType\" error because it\u0027s trying to append the API url fragment to self.management_url which isn\u0027t set.\n\t\t\t\t\nJoe Heck\t\tNov 1\nchatting with Gabriel - we need to be able to minimally \"list tenants\" through the managers so that we can request a tenant-scoped token for usage.\nAlso exception on no mgmt_url set is horrific and needs to be more sensible.","accounts_in_message":[],"_revision_number":4},{"id":"236fb18ea8adf5408329f9c6235a8188ed42d574","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-08 06:05:05.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"75563b1563c332f2f17e05cb427bb54ad79c82da","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-08 06:06:17.000000000","message":"Patch Set 5:\n\n@gabriel - \n\nCheck out the pathing now for listing tenants with an unscoped token (special cased), and the new general exception for when management_url doesn\u0027t exist and resources are requested outside of that special case.","accounts_in_message":[],"_revision_number":5},{"id":"d8fdb5eaabd954d4a6e18ab29226f7b1c6227090","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-11-08 06:34:39.000000000","message":"Patch Set 5: Works for me\n\nBuild successful\n\n- http://logs.openstack.org/14730/5/check/gate-python-keystoneclient-merge/435 : SUCCESS\n- http://logs.openstack.org/14730/5/check/gate-python-keystoneclient-docs/286 : SUCCESS\n- http://logs.openstack.org/14730/5/check/gate-python-keystoneclient-pep8/430 : SUCCESS\n- http://logs.openstack.org/14730/5/check/gate-python-keystoneclient-python26/362 : SUCCESS\n- http://logs.openstack.org/14730/5/check/gate-python-keystoneclient-python27/364 : SUCCESS\n- http://logs.openstack.org/14730/5/check/gate-tempest-devstack-vm/17646 : SUCCESS\n","accounts_in_message":[],"_revision_number":5},{"id":"9ae249fd5e62fe5f14d6cf406ada4856697d3e2e","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-08 22:20:30.000000000","message":"Patch Set 5: Do not merge\n\nnope, don\u0027t have it yet...","accounts_in_message":[],"_revision_number":5},{"id":"3973bde8c4205999b13a2c2b6d3ac8b33f82f4c1","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-08 22:29:44.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"d314c3759448eda62ac2dcf8c281e657e8965777","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-08 22:41:01.000000000","message":"Patch Set 6: No score\n\nOkay - now I\u0027ve got the client.tenants.list() mechanism working with unscoped tokens.","accounts_in_message":[],"_revision_number":6},{"id":"2ad43e34c033d41c178cbd944814b41e99c7753a","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-11-08 22:50:13.000000000","message":"Patch Set 6: Works for me\n\nBuild successful\n\n- http://logs.openstack.org/14730/6/check/gate-python-keystoneclient-merge/436 : SUCCESS\n- http://logs.openstack.org/14730/6/check/gate-python-keystoneclient-docs/287 : SUCCESS\n- http://logs.openstack.org/14730/6/check/gate-python-keystoneclient-pep8/431 : SUCCESS\n- http://logs.openstack.org/14730/6/check/gate-python-keystoneclient-python26/363 : SUCCESS\n- http://logs.openstack.org/14730/6/check/gate-python-keystoneclient-python27/365 : SUCCESS\n- http://logs.openstack.org/14730/6/check/gate-tempest-devstack-vm/17784 : SUCCESS\n","accounts_in_message":[],"_revision_number":6},{"id":"78d382911e59f19d3f896f0f4dff66c2019736c7","author":{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},"date":"2012-11-08 23:32:15.000000000","message":"Patch Set 6: No score\n\nI can\u0027t really + or - this. Let me explain:\n\nIf you want parity with what you can do under the current keystoneclient methods you also have to special-case https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/v2_0/tokens.py#L24\n\nBut if parity is not your goal, then my alternate feedback is that the AccessInfo object doesn\u0027t expose enough information. The token I get back from the tokens.authenticate call had a huge amount more information readily available even if it was badly structured.\n\nAgain, this depends on goals. If you want parity then AccessInfo needs to expose all the info about the token like it\u0027s expiry, etc. as well as the User, the Roles, and all the other data you can get from a Token directly. There\u0027s a ton of data shoved into the token.\n\nIf you don\u0027t want parity that is cool too but that means more impact for projects like Horizon.(FWIW I already have a patch to allow Horizon to work with your code as it is. It\u0027s just less pretty.)","accounts_in_message":[],"_revision_number":6},{"id":"1c86057d176ffe2c81d68ad9836859a78a285f8e","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-09 00:03:25.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"f1b29a92d3732d2b7645d2f960fc1fd68384598c","author":{"_account_id":1816,"name":"Gabriel Hurley","email":"gabriel.hurley@nebula.com","username":"gabriel-hurley"},"date":"2012-11-09 00:07:48.000000000","message":"Patch Set 7: Looks good to me (core reviewer)\n\nLooks good to me. Seamless drop-in to existing Horizon auth code now. Great job!","accounts_in_message":[],"_revision_number":7},{"id":"c0c9d19a0ca69c9d8fb0b85186986b766ef7e85d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-11-09 00:22:10.000000000","message":"Patch Set 7: Doesn\u0027t seem to work\n\nBuild failed\n\n- http://logs.openstack.org/14730/7/check/gate-python-keystoneclient-merge/437 : SUCCESS\n- http://logs.openstack.org/14730/7/check/gate-python-keystoneclient-docs/288 : SUCCESS\n- http://logs.openstack.org/14730/7/check/gate-python-keystoneclient-pep8/432 : SUCCESS\n- http://logs.openstack.org/14730/7/check/gate-python-keystoneclient-python26/364 : SUCCESS\n- http://logs.openstack.org/14730/7/check/gate-python-keystoneclient-python27/366 : SUCCESS\n- http://logs.openstack.org/14730/7/check/gate-tempest-devstack-vm/17798 : FAILURE\n","accounts_in_message":[],"_revision_number":7},{"id":"e1e38e5f22613c64abca02fa28d7a6aeed987b40","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-09 01:58:34.000000000","message":"Patch Set 7:\n\nrecheck","accounts_in_message":[],"_revision_number":7},{"id":"f49ba9cff2d4e88015c50f5333442833adac2146","author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"date":"2012-11-09 02:19:02.000000000","message":"Patch Set 7:\n\nreverify","accounts_in_message":[],"_revision_number":7},{"id":"5586d051230e87aff9e3fe193dea1585fad41c63","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-11-09 02:28:15.000000000","message":"Patch Set 7: Works for me\n\nBuild successful\n\n- http://logs.openstack.org/14730/7/check/gate-python-keystoneclient-merge/440 : SUCCESS\n- http://logs.openstack.org/14730/7/check/gate-python-keystoneclient-docs/291 : SUCCESS\n- http://logs.openstack.org/14730/7/check/gate-python-keystoneclient-pep8/435 : SUCCESS\n- http://logs.openstack.org/14730/7/check/gate-python-keystoneclient-python26/367 : SUCCESS\n- http://logs.openstack.org/14730/7/check/gate-python-keystoneclient-python27/369 : SUCCESS\n- http://logs.openstack.org/14730/7/check/gate-tempest-devstack-vm/17816 : SUCCESS\n","accounts_in_message":[],"_revision_number":7},{"id":"002ea39e002c5963920afdcc41de2a97dfff85fb","author":{"_account_id":357,"name":"Devin Carlen","email":"devin@openstack.org","username":"devcamcar"},"date":"2012-11-09 02:37:11.000000000","message":"Patch Set 7: Looks good to me (core reviewer); Approved\n\n","accounts_in_message":[],"_revision_number":7},{"id":"1fa7083a22182ab09046c4b2243bd611b7db0714","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-11-09 02:37:17.000000000","message":"Patch Set 7: No score\n\nStarting gate jobs.\nhttps://jenkins.openstack.org/zuul/status","accounts_in_message":[],"_revision_number":7},{"id":"2b1431652b2574132a7b190e3b1ea6a01df83146","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-11-09 02:59:27.000000000","message":"Patch Set 7: Verified\n\nBuild successful\n\n- http://logs.openstack.org/14730/7/gate/gate-python-keystoneclient-merge/442 : SUCCESS\n- http://logs.openstack.org/14730/7/gate/gate-python-keystoneclient-docs/293 : SUCCESS\n- http://logs.openstack.org/14730/7/gate/gate-python-keystoneclient-pep8/437 : SUCCESS\n- http://logs.openstack.org/14730/7/gate/gate-python-keystoneclient-python26/369 : SUCCESS\n- http://logs.openstack.org/14730/7/gate/gate-python-keystoneclient-python27/371 : SUCCESS\n- http://logs.openstack.org/14730/7/gate/gate-tempest-devstack-vm/17824 : SUCCESS\n","accounts_in_message":[],"_revision_number":7},{"id":"b3af9bbfc3177963424595b5508068e18b033862","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-11-09 02:59:27.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"f1cc3cfc42db902589785320547204388aa170a3","revisions":{"8712c44c8f61cfbe11d66a334f34268b450351fc":{"kind":"REWORK","_number":1,"created":"2012-10-24 04:01:49.000000000","uploader":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"ref":"refs/changes/30/14730/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-keystoneclient","ref":"refs/changes/30/14730/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/1"}}},"commit":{"parents":[{"commit":"56a4e4bd7da1353684d34e5a9817b88501e41d8c","subject":"add a new HTTPClient attr for setting the original IP","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/56a4e4bd7da1353684d34e5a9817b88501e41d8c"}]}],"author":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-10-13 00:15:39.000000000","tz":0},"committer":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-10-24 04:01:40.000000000","tz":-420},"subject":"removing repeat attempt at authorization in client","message":"removing repeat attempt at authorization in client\n\nblueprint solidify-python-api\n\nextended and updated documentation strings\nupdated README.rst with latest options\nmade debug a pass-through value, optionally set on client (instead of\njust being pulled from environment variable)\n\nadding authtoken object and associated tests\n(authtoken.AuthToken meant to be a cacheable object external to client\nand ultimately to replace service_catalog and it\u0027s existing functionality)\n\nreplacing authenticate call to a pure method, not overloading the\nresource/manager path that confuses base URL concepts.\n\nChange-Id: I4bb3a1b6a5ce2c4b3fbcebeb59116286cac8b2e3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/8712c44c8f61cfbe11d66a334f34268b450351fc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/8712c44c8f61cfbe11d66a334f34268b450351fc"}]},"branch":"refs/heads/master"},"7c09df3531a376ccf6209047571d784a3f4e92a7":{"kind":"REWORK","_number":2,"created":"2012-10-26 00:36:39.000000000","uploader":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"ref":"refs/changes/30/14730/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-keystoneclient","ref":"refs/changes/30/14730/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/2"}}},"commit":{"parents":[{"commit":"16ff6de10a641c68927415a96e3e55217e376e34","subject":"Merge \"Add OpenStack trove classifier for PyPI\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/16ff6de10a641c68927415a96e3e55217e376e34"}]}],"author":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-10-13 00:15:39.000000000","tz":0},"committer":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-10-26 00:36:29.000000000","tz":-420},"subject":"removing repeat attempt at authorization in client","message":"removing repeat attempt at authorization in client\n\nblueprint solidify-python-api\n\nextended and updated documentation strings\nupdated README.rst with latest options\nmade debug a pass-through value, optionally set on client (instead of\njust being pulled from environment variable)\n\nadding authtoken object and associated tests\n(authtoken.AuthToken meant to be a cacheable object external to client\nand ultimately to replace service_catalog and it\u0027s existing functionality)\nextending authtoken to support lists of endpoints\nmaintaining a single entity for client.management_url with first from\nlist of possible endpoints\n\nreplacing authenticate call to a pure method, not overloading the\nresource/manager path that confuses base URL concepts.\n\nChange-Id: I4bb3a1b6a5ce2c4b3fbcebeb59116286cac8b2e3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/7c09df3531a376ccf6209047571d784a3f4e92a7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/7c09df3531a376ccf6209047571d784a3f4e92a7"}]},"branch":"refs/heads/master"},"de2a23f5ac0773f6faeef7ad3dba45fbc77cf039":{"kind":"REWORK","_number":3,"created":"2012-10-27 21:03:10.000000000","uploader":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"ref":"refs/changes/30/14730/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-keystoneclient","ref":"refs/changes/30/14730/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/3"}}},"commit":{"parents":[{"commit":"16ff6de10a641c68927415a96e3e55217e376e34","subject":"Merge \"Add OpenStack trove classifier for PyPI\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/16ff6de10a641c68927415a96e3e55217e376e34"}]}],"author":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-10-13 00:15:39.000000000","tz":0},"committer":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-10-27 21:01:32.000000000","tz":-420},"subject":"removing repeat attempt at authorization in client","message":"removing repeat attempt at authorization in client\n\nblueprint solidify-python-api\n\n* extended and updated documentation strings\n* updated README.rst with latest options\n* made debug a pass-through value, optionally set on client (instead of\n  just being pulled from environment variable)\n* adding authtoken object and associated tests\n  (authtoken.AuthToken meant to be a cacheable object external to client\n  and ultimately to replace service_catalog and it\u0027s existing functionality)\n* extending authtoken to support lists of endpoints\n* maintaining a single entity for client.management_url with first from\n  list of possible endpoints\n* create project_name and project_id synonyms to match tenant_name and\n  tenant_id\n* replacing authenticate call to a pure method, not overloading the\n  resource/manager path that confuses base URL concepts.\n\nChange-Id: I4bb3a1b6a5ce2c4b3fbcebeb59116286cac8b2e3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/de2a23f5ac0773f6faeef7ad3dba45fbc77cf039"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/de2a23f5ac0773f6faeef7ad3dba45fbc77cf039"}]},"branch":"refs/heads/master"},"34df26f188d7fe42184cb3675d240f0512e3010f":{"kind":"REWORK","_number":4,"created":"2012-11-01 01:55:30.000000000","uploader":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"ref":"refs/changes/30/14730/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-keystoneclient","ref":"refs/changes/30/14730/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/4"}}},"commit":{"parents":[{"commit":"16ff6de10a641c68927415a96e3e55217e376e34","subject":"Merge \"Add OpenStack trove classifier for PyPI\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/16ff6de10a641c68927415a96e3e55217e376e34"}]}],"author":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-10-13 00:15:39.000000000","tz":0},"committer":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-11-01 01:54:57.000000000","tz":0},"subject":"removing repeat attempt at authorization in client","message":"removing repeat attempt at authorization in client\n\nblueprint solidify-python-api\n\n* extended and updated documentation strings\n* updated README.rst with latest options\n* made debug a pass-through value, optionally set on client (instead of\n  just being pulled from environment variable)\n* adding AccessInfo object and associated tests\n  (access.AccessInfo meant to be a cacheable object external to client\n  and ultimately to replace service_catalog and it\u0027s existing functionality)\n* extending authtoken to support lists of endpoints\n* maintaining a single entity for client.management_url with first from\n  list of possible endpoints\n* create project_name and project_id synonyms to match tenant_name and\n  tenant_id\n* replacing authenticate call to a pure method, not overloading the\n  resource/manager path that confuses base URL concepts.\n\nChange-Id: I4bb3a1b6a5ce2c4b3fbcebeb59116286cac8b2e3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/34df26f188d7fe42184cb3675d240f0512e3010f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/34df26f188d7fe42184cb3675d240f0512e3010f"}]},"branch":"refs/heads/master"},"d6d6939cc8fe10a7d91e5b5bc9f636f204ab9a5f":{"kind":"REWORK","_number":5,"created":"2012-11-08 06:05:05.000000000","uploader":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"ref":"refs/changes/30/14730/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-keystoneclient","ref":"refs/changes/30/14730/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/5"}}},"commit":{"parents":[{"commit":"d471f65231427d54c329697982533e6868b7cdb1","subject":"Merge \"Update --os-* error messages\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/d471f65231427d54c329697982533e6868b7cdb1"}]}],"author":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-10-13 00:15:39.000000000","tz":0},"committer":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-11-08 06:04:58.000000000","tz":-480},"subject":"removing repeat attempt at authorization in client","message":"removing repeat attempt at authorization in client\n\nblueprint solidify-python-api\n\n* extended and updated documentation strings\n* updated README.rst with latest options\n* made debug a pass-through value, optionally set on client (instead of\n  just being pulled from environment variable)\n* adding AccessInfo object and associated tests\n  (access.AccessInfo meant to be a cacheable object external to client\n  and ultimately to replace service_catalog and it\u0027s existing functionality)\n* extending authtoken to support lists of endpoints\n* maintaining a single entity for client.management_url with first from\n  list of possible endpoints\n* create project_name and project_id synonyms to match tenant_name and\n  tenant_id\n* replacing authenticate call to a pure method, not overloading the\n  resource/manager path that confuses base URL concepts.\n* throw AuthorizationFailure if client attempts to access keystone\n  resources before it has a management url\n* special case listing tenant using auth_url for unscoped tokens authorized\n  through client\n\nChange-Id: I4bb3a1b6a5ce2c4b3fbcebeb59116286cac8b2e3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/d6d6939cc8fe10a7d91e5b5bc9f636f204ab9a5f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/d6d6939cc8fe10a7d91e5b5bc9f636f204ab9a5f"}]},"branch":"refs/heads/master"},"bca4e5a2bf4ff6940e5d2f54a66a57e183ad11cd":{"kind":"REWORK","_number":6,"created":"2012-11-08 22:29:44.000000000","uploader":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"ref":"refs/changes/30/14730/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-keystoneclient","ref":"refs/changes/30/14730/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/6"}}},"commit":{"parents":[{"commit":"d471f65231427d54c329697982533e6868b7cdb1","subject":"Merge \"Update --os-* error messages\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/d471f65231427d54c329697982533e6868b7cdb1"}]}],"author":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-10-13 00:15:39.000000000","tz":0},"committer":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-11-08 22:29:43.000000000","tz":0},"subject":"removing repeat attempt at authorization in client","message":"removing repeat attempt at authorization in client\n\nblueprint solidify-python-api\n\n* extended and updated documentation strings\n* updated README.rst with latest options\n* made debug a pass-through value, optionally set on client (instead of\n  just being pulled from environment variable)\n* adding AccessInfo object and associated tests\n  (access.AccessInfo meant to be a cacheable object external to client\n  and ultimately to replace service_catalog and it\u0027s existing functionality)\n* extending authtoken to support lists of endpoints\n* maintaining a single entity for client.management_url with first from\n  list of possible endpoints\n* create project_name and project_id synonyms to match tenant_name and\n  tenant_id\n* replacing authenticate call to a pure method, not overloading the\n  resource/manager path that confuses base URL concepts.\n* throw AuthorizationFailure if client attempts to access keystone\n  resources before it has a management url\n* special case listing tenant using auth_url for unscoped tokens authorized\n  through client\n\nChange-Id: I4bb3a1b6a5ce2c4b3fbcebeb59116286cac8b2e3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/bca4e5a2bf4ff6940e5d2f54a66a57e183ad11cd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/bca4e5a2bf4ff6940e5d2f54a66a57e183ad11cd"}]},"branch":"refs/heads/master"},"f1cc3cfc42db902589785320547204388aa170a3":{"kind":"REWORK","_number":7,"created":"2012-11-09 00:03:25.000000000","uploader":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"ref":"refs/changes/30/14730/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-keystoneclient","ref":"refs/changes/30/14730/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-keystoneclient refs/changes/30/14730/7"}}},"commit":{"parents":[{"commit":"d471f65231427d54c329697982533e6868b7cdb1","subject":"Merge \"Update --os-* error messages\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/d471f65231427d54c329697982533e6868b7cdb1"}]}],"author":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-10-13 00:15:39.000000000","tz":0},"committer":{"name":"Joe Heck","email":"heckj@mac.com","date":"2012-11-09 00:02:41.000000000","tz":0},"subject":"removing repeat attempt at authorization in client","message":"removing repeat attempt at authorization in client\n\nblueprint solidify-python-api\n\n* extended and updated documentation strings\n* updated README.rst with latest options\n* made debug a pass-through value, optionally set on client (instead of\n  just being pulled from environment variable)\n* adding AccessInfo object and associated tests\n  (access.AccessInfo meant to be a cacheable object external to client\n  and ultimately to replace service_catalog and it\u0027s existing functionality)\n* extending authtoken to support lists of endpoints\n* maintaining a single entity for client.management_url with first from\n  list of possible endpoints\n* create project_name and project_id synonyms to match tenant_name and\n  tenant_id\n* replacing authenticate call to a pure method, not overloading the\n  resource/manager path that confuses base URL concepts.\n* throw AuthorizationFailure if client attempts to access keystone\n  resources before it has a management url\n* special case listing tenant using auth_url for unscoped tokens authorized\n  through client\n* special case listing tokens.authenticate for Dashboard to allow unscoped\n  tokens to hand back parity information to dashboard\n\nChange-Id: I4bb3a1b6a5ce2c4b3fbcebeb59116286cac8b2e3\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/f1cc3cfc42db902589785320547204388aa170a3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/f1cc3cfc42db902589785320547204388aa170a3"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
