)]}'
{"id":"openstack%2Fpython-swiftclient~27134","triplet_id":"openstack%2Fpython-swiftclient~master~Ie1b5bde1e8ff321aa18c0f23dbd2960d6e482236","project":"openstack/python-swiftclient","branch":"master","topic":"authbug","hashtags":[],"change_id":"Ie1b5bde1e8ff321aa18c0f23dbd2960d6e482236","subject":"Confirm we have auth creds before clearing preauth","status":"MERGED","created":"2013-04-18 20:29:51.000000000","updated":"2013-05-02 18:36:24.000000000","submitted":"2013-05-02 18:36:24.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"599b16f3379025ef99a77d0f62c559014fa46650","_number":27134,"virtual_id_number":27134,"owner":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":2,"date":"2013-05-02 18:36:24.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},{"value":0,"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"}],"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":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"date":"2013-04-25 11:46:23.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},{"value":2,"date":"2013-04-25 16:43:33.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":2,"date":"2013-05-02 18:34:35.000000000","_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"}],"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":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"all":[{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"date":"2013-04-25 11:45:43.000000000","_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},{"value":0,"date":"2013-04-25 16:43:33.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":1,"date":"2013-05-02 18:34:35.000000000","_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"}],"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":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2013-04-25 16:43:33.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"},{"updated":"2013-05-02 18:34:35.000000000","updated_by":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"reviewer":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"state":"REVIEWER"},{"updated":"2013-05-02 18:36:24.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"f3a7bdfff559ee64556011c7d7346812e7cfa433","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-04-18 20:31:06.000000000","message":"Patch Set 1: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/27134/1/check/gate-python-swiftclient-pep8/239 : SUCCESS\n- http://docs-draft.openstack.org/27134/1/check/gate-python-swiftclient-docs/189/doc/build/html/ : SUCCESS\n- http://logs.openstack.org/27134/1/check/gate-python-swiftclient-python26/237 : SUCCESS\n- http://logs.openstack.org/27134/1/check/gate-python-swiftclient-python26-rhel6/18 : SUCCESS (non-voting)\n- http://logs.openstack.org/27134/1/check/gate-python-swiftclient-python27/237 : SUCCESS\n","accounts_in_message":[],"_revision_number":1},{"id":"9055f427ee6d49978346dcfa9a6cf349e14fbcdf","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2013-04-25 09:26:40.000000000","message":"Patch Set 1: (1 inline comment)\n\n\"\u0027401 Unauthorized\u0027\nClientException will now be thrown instead of the AttributeError\nafter all retry attempts using only preauth values.\"\n\nI think this is only arguably better than that non-descriptive fast fail.\n\nSpecifically in the pre-auth case; can you get the right error out earlier without the un-needed retry loop?","accounts_in_message":[],"_revision_number":1},{"id":"9d8c0018592ea26c629dfbf83f2010ad8f4788cd","author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"date":"2013-04-25 11:45:43.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"f5091e017b4fb7040dd86cd5c880ebb43c16af97","author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"date":"2013-04-25 11:46:23.000000000","message":"Patch Set 2:\n\nExcellent point in review by Clay. Uploaded new patchset.","accounts_in_message":[],"_revision_number":2},{"id":"528b359af288d0dab426a06d9cc31fa2206b90ca","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-04-25 11:46:40.000000000","message":"Patch Set 2: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/27134/2/check/gate-python-swiftclient-pep8/240 : SUCCESS\n- http://docs-draft.openstack.org/27134/2/check/gate-python-swiftclient-docs/190/doc/build/html/ : SUCCESS\n- http://logs.openstack.org/27134/2/check/gate-python-swiftclient-python26/238 : SUCCESS\n- http://logs.openstack.org/27134/2/check/gate-python-swiftclient-python26-rhel6/19 : SUCCESS (non-voting)\n- http://logs.openstack.org/27134/2/check/gate-python-swiftclient-python27/238 : SUCCESS\n","accounts_in_message":[],"_revision_number":2},{"id":"3f5988b08fdc7bf43a8c613364772b17e724979d","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2013-04-25 16:43:33.000000000","message":"Patch Set 2: Looks good to me (core reviewer)\n\nSo you can\u0027t reproduce this on the command line.  When you pass in invalid preauth without keys you just get a clean failure after the retry because:\na) if you don\u0027t set -A -U -K bin/swift assumes you\u0027re auth v2.0\nb) get_auth\u0027s handling of v2.0 seems to prefer returning preauth creds if available rather than passing None\u0027s into it\u0027s auth methods.\n\nI\u0027m not sure if either of those is a bug separately, or if changing get_auth\u0027s approach to preauth values for v1.0 style auth would be preferable?\n\nThis actually seems betterish simply because it avoids the retry in most cases?\n\nv1.0 with keys and preauth will make an auth request same as before.\nv1.0 without keys and preauth will give better error.\nv2.0 with keys and preauth will prefer preauth and fail after retry same as before.\nv2.0 without keys and preauth will give same 401 error, but sooner w/o retry.","accounts_in_message":[],"_revision_number":2},{"id":"7ae5730189285a00e10613890d4b2b0966c1fd1f","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2013-05-02 18:34:35.000000000","message":"Patch Set 2: Looks good to me (core reviewer); Approved\n\n","accounts_in_message":[],"_revision_number":2},{"id":"d5d515c4cf0ca4aeae5bd55790edbbaf380b07ed","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-05-02 18:35:01.000000000","message":"Patch Set 2: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":2},{"id":"74c7f040e3205ce7d85a7a3a77c58d19845c4eea","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-05-02 18:36:24.000000000","message":"Patch Set 2: Verified\n\nBuild succeeded.\n\n- http://docs-draft.openstack.org/27134/2/gate/gate-python-swiftclient-docs/221/doc/build/html/ : SUCCESS in 00:00:50\n- http://logs.openstack.org/27134/2/gate/gate-python-swiftclient-pep8/271 : SUCCESS in 00:00:26\n- http://logs.openstack.org/27134/2/gate/gate-python-swiftclient-python26/269 : SUCCESS in 00:01:14\n- http://logs.openstack.org/27134/2/gate/gate-python-swiftclient-python27/269 : SUCCESS in 00:00:29\n","accounts_in_message":[],"_revision_number":2},{"id":"6668bb3664c9d075cc582a9d2e2a2e51384c3425","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-05-02 18:36:24.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"9aa52eecb5193e145ec9b396f105b085fb87a456","revisions":{"e3f27b01fc9c2de23044de5e25af13dd514fdf6b":{"kind":"REWORK","_number":1,"created":"2013-04-18 20:29:51.000000000","uploader":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"ref":"refs/changes/34/27134/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/34/27134/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/34/27134/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/34/27134/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/34/27134/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/34/27134/1"}}},"commit":{"parents":[{"commit":"2d97609a52bef2f437c15ff72dced29663c570ff","subject":"Merge \"Static large object support.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/2d97609a52bef2f437c15ff72dced29663c570ff"}]}],"author":{"name":"David Shrewsbury","email":"shrewsbury.dave@gmail.com","date":"2013-04-18 20:25:14.000000000","tz":-240},"committer":{"name":"David Shrewsbury","email":"shrewsbury.dave@gmail.com","date":"2013-04-18 20:29:26.000000000","tz":-240},"subject":"Confirm we have auth creds before clearing preauth","message":"Confirm we have auth creds before clearing preauth\n\nIf you use the API and supply only preauth values (preauthurl and\npreauthtoken), and if either of these are incorrect, a non-descriptive\nAttributeError will be thrown and uncaught:\n\n \u0027NoneType\u0027 object has no attribute \u0027find\u0027\n\nThe _retry() will fail on the first pass (getting 401), then try\nto reauthenticate with non-preauth values. If those are not given,\nparticularly the auth url, then the urlparse() call will be supplied\nNone for the url in http_connection() causing the exception above.\n\nThis change makes sure that we have an auth url, user and key before\nclearing the preauth values. Given the situation above, a \u0027401 Unauthorized\u0027\nClientException will now be thrown instead of the AttributeError\nafter all retry attempts using only preauth values.\n\nChange-Id: Ie1b5bde1e8ff321aa18c0f23dbd2960d6e482236\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/e3f27b01fc9c2de23044de5e25af13dd514fdf6b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/e3f27b01fc9c2de23044de5e25af13dd514fdf6b"}]},"branch":"refs/heads/master"},"9aa52eecb5193e145ec9b396f105b085fb87a456":{"kind":"REWORK","_number":2,"created":"2013-04-25 11:45:43.000000000","uploader":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"ref":"refs/changes/34/27134/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/34/27134/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/34/27134/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/34/27134/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/34/27134/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/34/27134/2"}}},"commit":{"parents":[{"commit":"2d97609a52bef2f437c15ff72dced29663c570ff","subject":"Merge \"Static large object support.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/2d97609a52bef2f437c15ff72dced29663c570ff"}]}],"author":{"name":"David Shrewsbury","email":"shrewsbury.dave@gmail.com","date":"2013-04-18 20:25:14.000000000","tz":-240},"committer":{"name":"David Shrewsbury","email":"shrewsbury.dave@gmail.com","date":"2013-04-25 11:43:43.000000000","tz":-240},"subject":"Confirm we have auth creds before clearing preauth","message":"Confirm we have auth creds before clearing preauth\n\nIf you use the API and supply only preauth values (preauthurl and\npreauthtoken), and if either of these are incorrect, a non-descriptive\nAttributeError will be thrown and uncaught:\n\n \u0027NoneType\u0027 object has no attribute \u0027find\u0027\n\nThe _retry() will fail on the first pass (getting 401), then try\nto reauthenticate with non-preauth values. If those are not given,\nparticularly the auth url, then the urlparse() call will be supplied\nNone for the url in http_connection() causing the exception above.\n\nThis change makes sure that we have an auth url, user and key before\nretrying authentication. Given the situation above, a \u0027401 Unauthorized\u0027\nClientException will now be thrown instead of the AttributeError.\n\nChange-Id: Ie1b5bde1e8ff321aa18c0f23dbd2960d6e482236\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/9aa52eecb5193e145ec9b396f105b085fb87a456"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/9aa52eecb5193e145ec9b396f105b085fb87a456"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
