)]}'
{"id":"openstack%2Fpython-keystoneclient~80166","triplet_id":"openstack%2Fpython-keystoneclient~master~I897e0f41aa2848fb6986aa6b12c1cea9a6c87b0c","project":"openstack/python-keystoneclient","branch":"master","topic":"feature/macos-keyring-get-unicode","hashtags":[],"change_id":"I897e0f41aa2848fb6986aa6b12c1cea9a6c87b0c","subject":"Convert keyring password to str before pickle.loads()","status":"ABANDONED","created":"2014-03-13 03:27:39.000000000","updated":"2014-03-20 12:41:49.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"5349792c83aeda9fb6b93b477f01c27e68675e00","_number":80166,"virtual_id_number":80166,"owner":{"_account_id":6769,"name":"Tim Potter","email":"tpot@hpe.com","username":"tpot"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":-1,"date":"2014-03-13 04:40:46.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},{"_account_id":7662,"name":"Rob Crittenden","email":"rcritten@redhat.com","username":"rcritten"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7662,"name":"Rob Crittenden","email":"rcritten@redhat.com","username":"rcritten"}],"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":{"all":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"date":"2014-03-13 20:55:32.000000000","_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},{"date":"2014-03-13 20:55:27.000000000","_account_id":7662,"name":"Rob Crittenden","email":"rcritten@redhat.com","username":"rcritten"}],"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":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},{"_account_id":7662,"name":"Rob Crittenden","email":"rcritten@redhat.com","username":"rcritten"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2014-03-13 04:40:46.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"},{"updated":"2014-03-13 20:55:27.000000000","updated_by":{"_account_id":7662,"name":"Rob Crittenden","email":"rcritten@redhat.com","username":"rcritten"},"reviewer":{"_account_id":7662,"name":"Rob Crittenden","email":"rcritten@redhat.com","username":"rcritten"},"state":"REVIEWER"},{"updated":"2014-03-13 20:55:32.000000000","updated_by":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"reviewer":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"state":"REVIEWER"}],"messages":[{"id":"0d76b49755106f275ee6b6c6a69311f943995a3b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-13 03:27:39.000000000","message":"Patch Set 1:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":1},{"id":"4db19f77cb125898b9b9eae4d529feca9e3cb21b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-03-13 04:40:46.000000000","message":"Patch Set 1: Doesn\u0027t seem to work\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures\n\n- gate-python-keystoneclient-pep8 http://logs.openstack.org/66/80166/1/check/gate-python-keystoneclient-pep8/5842b1b : SUCCESS in 1m 17s\n- gate-python-keystoneclient-docs http://docs-draft.openstack.org/66/80166/1/check/gate-python-keystoneclient-docs/c81eceb/doc/build/html/ : SUCCESS in 1m 32s\n- gate-python-keystoneclient-python26 http://logs.openstack.org/66/80166/1/check/gate-python-keystoneclient-python26/efe0000 : SUCCESS in 1m 25s\n- gate-python-keystoneclient-python27 http://logs.openstack.org/66/80166/1/check/gate-python-keystoneclient-python27/15a0f98 : SUCCESS in 53s\n- check-grenade-dsvm http://logs.openstack.org/66/80166/1/check/check-grenade-dsvm/e762b1a : SUCCESS in 36m 39s\n- check-tempest-dsvm-full http://logs.openstack.org/66/80166/1/check/check-tempest-dsvm-full/17cefed : SUCCESS in 57m 54s\n- check-tempest-dsvm-neutron http://logs.openstack.org/66/80166/1/check/check-tempest-dsvm-neutron/db8083b : SUCCESS in 38m 26s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/66/80166/1/check/check-tempest-dsvm-neutron-heat-slow/ec66ab4 : SUCCESS in 27m 42s\n- gate-python-keystoneclient-python33 http://logs.openstack.org/66/80166/1/check/gate-python-keystoneclient-python33/755c847 : FAILURE in 3m 39s\n- check-devstack-dsvm-cells http://logs.openstack.org/66/80166/1/check/check-devstack-dsvm-cells/e770075 : SUCCESS in 12m 14s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/66/80166/1/check/check-tempest-dsvm-postgres-full/b374bd0 : SUCCESS in 52m 36s\n- check-tempest-dsvm-neutron-full http://logs.openstack.org/66/80166/1/check/check-tempest-dsvm-neutron-full/df86168 : SUCCESS in 1h 04m 21s (non-voting)\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/66/80166/1/check/gate-tempest-dsvm-large-ops/f8cd6c2 : SUCCESS in 16m 11s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/66/80166/1/check/gate-tempest-dsvm-neutron-large-ops/0b36a85 : SUCCESS in 15m 16s\n","accounts_in_message":[],"_revision_number":1},{"id":"1dc42be698c28f02fdd2c4541b27bede64fdc3a4","author":{"_account_id":9,"name":"LaunchpadSync","username":"launchpadsync"},"date":"2014-03-20 06:03:05.000000000","message":"Patch Set 1: Abandoned\n\ncode review expired after 1 week of no activity after a negative review, it can be restored using the `Restore Change` button under the Patch Set on the web interface","accounts_in_message":[],"_revision_number":1},{"id":"c4e3d042f1d9b08dbf10b2ebb37dbe3a2ede46cf","author":{"_account_id":9,"name":"LaunchpadSync","username":"launchpadsync"},"date":"2014-03-20 06:03:05.000000000","message":"Patch Set 1:\n\ncode review expired after 1 week of no activity after a negative review, it can be restored using the `Restore Change` button under the Patch Set on the web interface","accounts_in_message":[],"_revision_number":1},{"id":"11b0aeb1a19a5f9470d0c036557d7dbc3553a875","author":{"_account_id":7662,"name":"Rob Crittenden","email":"rcritten@redhat.com","username":"rcritten"},"date":"2014-03-20 12:41:49.000000000","message":"Patch Set 1:\n\nJust curious, but wouldn\u0027t it be better to address this upstream?","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"f02a198bb4f873a1a7297a1404c28e58548df563","revisions":{"f02a198bb4f873a1a7297a1404c28e58548df563":{"kind":"REWORK","_number":1,"created":"2014-03-13 03:27:39.000000000","uploader":{"_account_id":6769,"name":"Tim Potter","email":"tpot@hpe.com","username":"tpot"},"ref":"refs/changes/66/80166/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-keystoneclient","ref":"refs/changes/66/80166/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/66/80166/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/66/80166/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-keystoneclient refs/changes/66/80166/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-keystoneclient refs/changes/66/80166/1"}}},"commit":{"parents":[{"commit":"0c595f96f3ad0dd796d1d56c311b7dc66ff9acf9","subject":"Merge \"Clarify roles validation error messages\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/0c595f96f3ad0dd796d1d56c311b7dc66ff9acf9"}]}],"author":{"name":"Tim Potter","email":"tpot@hp.com","date":"2014-01-21 01:41:17.000000000","tz":660},"committer":{"name":"Tim Potter","email":"tpot@hp.com","date":"2014-03-13 03:24:51.000000000","tz":660},"subject":"Convert keyring password to str before pickle.loads()","message":"Convert keyring password to str before pickle.loads()\n\nThe --os-cache option on Mac OS is broken and you get the\nfollowing log message as it\u0027s trying to unpickle the auth_ref\nfetched from the keyring. The auth token and service catalog\nends up being fetched every time.\n\nWARNING:keystoneclient.httpclient:Unable to retrieve token from keyring __import__() argument 1 must be string without null bytes, not str\n\nThe fix is to whack a str() around the result of keyring.get_password()\nwhich fixes the problem but makes me want to tear my hair out\nas it\u0027s the wrong way to fix it. If you dive into the OS X\nbackend for the keyring module (https://bitbucket.org/kang/python-keyring-lib/src/598488b60d2148d4c44e64e9e725cde93a258c75/keyring/backends/OS_X.py?at\u003ddefault) it does the following awful thing:\n\n    # it\u0027s a weird hex password, decode it.\n    return unicode_str(binascii.unhexlify(hex), \u0027utf-8\u0027)\n\nUTF-8 is not a suitable encoding for possible binary data - the\nkeyring module assumes that a \"password\" is something that\u0027s a\nstring which IMHO is why this conversion is being performed.\n\nAccording to the pickle docs, \"By default, the pickle data format\nuses a printable ASCII representation. This is slightly more\nvoluminous than a binary representation. The big advantage of\nusing printable ASCII (and of some other characteristics of pickle\u0027s\nrepresentation) is that for debugging or recovery purposes it\nis possible for a human to read the pickled file with a standard\ntext editor.\" I guess this means that doing a str() on the result\nof pickle.loads() will not cause any problems since there will be\nno multi-byte sequences in the string.\n\nChange-Id: I897e0f41aa2848fb6986aa6b12c1cea9a6c87b0c\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/f02a198bb4f873a1a7297a1404c28e58548df563"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-keystoneclient/commit/f02a198bb4f873a1a7297a1404c28e58548df563"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
