)]}'
{"id":"openstack%2Fpython-openstackclient~106018","triplet_id":"openstack%2Fpython-openstackclient~master~I5e1e0fd2b46a4502318da57f7cce2b236fb2d93d","project":"openstack/python-openstackclient","branch":"master","topic":"bug/1337245","hashtags":[],"change_id":"I5e1e0fd2b46a4502318da57f7cce2b236fb2d93d","subject":"Add action \u0027user password set\u0027 for identiy v3","status":"MERGED","created":"2014-07-10 11:27:38.000000000","updated":"2014-09-07 15:12:18.000000000","submitted":"2014-09-07 15:12:18.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"0034bc2153ecc52b60e4ea1de8afe335ae477058","_number":106018,"virtual_id_number":106018,"owner":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},{"value":0,"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},{"value":0,"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},{"value":2,"date":"2014-09-07 15:12:18.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":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":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"recommended":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"all":[{"value":1,"date":"2014-09-07 10:45:22.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},{"value":0,"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},{"value":2,"date":"2014-09-07 06:40:40.000000000","_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},{"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":"2014-09-07 13:19:15.000000000","_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":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"all":[{"value":0,"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},{"value":0,"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},{"value":0,"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},{"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":"2014-09-07 13:19:15.000000000","_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":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2014-07-15 17:15:16.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":"2014-09-07 06:40:40.000000000","updated_by":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"reviewer":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"state":"REVIEWER"},{"updated":"2014-09-07 10:45:22.000000000","updated_by":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"reviewer":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"state":"REVIEWER"},{"updated":"2014-09-07 13:19:15.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":"2014-09-07 15:12:18.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"3ab8d96fc601fcc441d9d6d1ac779c238a230e81","author":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"date":"2014-07-10 11:27:38.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"63a9ccad759bb712b58eb34e5101c3965b4da576","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-07-10 11:27:39.000000000","message":"Patch Set 1:\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":1},{"id":"60321c6b7dba7e4b02872c9c4ca770f943326a9f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-07-10 12:25:41.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures\n\n- gate-python-openstackclient-pep8 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-pep8/5000a15 : SUCCESS in 2m 06s\n- gate-python-openstackclient-docs http://docs-draft.openstack.org/18/106018/1/check/gate-python-openstackclient-docs/e6ed859/doc/build/html/ : SUCCESS in 2m 21s\n- gate-python-openstackclient-python26 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python26/b6082ad : SUCCESS in 2m 25s\n- gate-python-openstackclient-python27 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python27/784e416 : SUCCESS in 1m 30s\n- check-tempest-dsvm-full http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full/fe4848e : FAILURE in 52m 14s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-postgres-full/b813413 : SUCCESS in 44m 33s\n- check-tempest-dsvm-neutron http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron/d431035 : SUCCESS in 53m 49s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-heat-slow/f0a2ebf : SUCCESS in 25m 57s\n- check-grenade-dsvm http://logs.openstack.org/18/106018/1/check/check-grenade-dsvm/e53aaf1 : SUCCESS in 36m 47s\n- check-tempest-dsvm-full-havana http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full-havana/905ba65 : SUCCESS in 37m 15s (non-voting)\n- check-tempest-dsvm-neutron-havana http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-havana/5b4089d : SUCCESS in 33m 33s (non-voting)\n- check-tempest-dsvm-full-icehouse http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full-icehouse/a62bf85 : SUCCESS in 55m 07s\n- check-tempest-dsvm-neutron-icehouse http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-icehouse/f657a0f : SUCCESS in 57m 48s\n- gate-python-openstackclient-python33 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python33/11eb956 : FAILURE in 5m 05s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"63621c51179b39ac171d803bcb0ec9e4682b5c37","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-07-10 12:42:03.000000000","message":"Patch Set 1: -Verified\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":1},{"id":"b0dbc594254c49dca0b1e74881d091fabb478fd1","author":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"date":"2014-07-10 12:42:03.000000000","message":"Patch Set 1:\n\nrecheck bug 1337245","accounts_in_message":[],"_revision_number":1},{"id":"423c1fd431358aae30079f01d4e88eec3e5f9ac9","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2014-07-10 13:39:14.000000000","message":"Patch Set 1: Code-Review-1\n\nThis needs to be implemented as \u0027user set --password x\u0027 rather than a new command.  The CLI already has that defined for both v2 and v3.\n\nOSC really doesn\u0027t discriminate between admin and not-admin commands since it doesn\u0027t have the policy to make that determination.\n\nI do like the prompt addition to get_password().","accounts_in_message":[],"_revision_number":1},{"id":"8368aacd36584e5ffd518b97eed3236136794d4a","author":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"date":"2014-07-10 13:53:02.000000000","message":"Patch Set 1:\n\nActually that was my first idea before i found some problems with it.\n\n1. openstack user set expect a \u003cuser-id\u003e, users that want to change there own password doesn\u0027t specially know about there user id. \n\n2. keystoneclient.users.change_password (https://github.com/openstack/python-keystoneclient/blob/0.9.0/keystoneclient/v3/users.py#L139) doesn\u0027t accept a user-id b/c it only allow to change \"current user\" password.\n\n3. Admin user can use \"openstack user set --password\" to update user password and they should not be required to enter the current password i.e. not using keystoneclient.users.change_password but instead it should user  keystoneclient.users.update.\n\n4. Passing multiple argument beside \"password\" to \"openstack user set\" doesn\u0027t make any sense b/c they will fail if the user is not admin.\n\nFor example if a normal user do and considering that user use default policy.json:\n\n$ openstack user set --password .... --email ... \u003cuser-id\u003e\n   \nWe will be sending 2 request one using keystoneclient.users.change_password the other is keystoneclient.users.update, while the first one will succeed the last one will fail b/c \"identity:user_update\" require \"rule:cloud_admin or rule:admin_and_matching_target_user_domain_id\".\n\nThoughts ?","accounts_in_message":[],"_revision_number":1},{"id":"93cc7ee23c046f7aabbee19a936e72ae328e2b91","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-07-10 13:57:28.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded.\n\n- gate-python-openstackclient-pep8 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-pep8/91793c4 : SUCCESS in 2m 01s\n- gate-python-openstackclient-docs http://docs-draft.openstack.org/18/106018/1/check/gate-python-openstackclient-docs/61512dc/doc/build/html/ : SUCCESS in 2m 21s\n- gate-python-openstackclient-python26 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python26/da87e12 : SUCCESS in 2m 45s\n- gate-python-openstackclient-python27 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python27/27ef59f : SUCCESS in 1m 44s\n- check-tempest-dsvm-full http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full/ecbf710 : SUCCESS in 41m 48s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-postgres-full/9f5a82d : SUCCESS in 43m 27s\n- check-tempest-dsvm-neutron http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron/21060f6 : SUCCESS in 48m 50s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-heat-slow/35431ee : SUCCESS in 20m 24s\n- check-grenade-dsvm http://logs.openstack.org/18/106018/1/check/check-grenade-dsvm/f9e7515 : SUCCESS in 37m 47s\n- check-tempest-dsvm-full-havana http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full-havana/4a467b3 : SUCCESS in 33m 01s (non-voting)\n- check-tempest-dsvm-neutron-havana http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-havana/d40d24f : SUCCESS in 35m 49s (non-voting)\n- check-tempest-dsvm-full-icehouse http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full-icehouse/8f8a5d2 : SUCCESS in 52m 22s\n- check-tempest-dsvm-neutron-icehouse http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-icehouse/fe11eb2 : SUCCESS in 1h 10m 07s\n- gate-python-openstackclient-python33 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python33/afdc18a : FAILURE in 4m 46s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"1f7316b47c06c71a16164241002005b44dd5a1f5","author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"date":"2014-07-10 14:45:09.000000000","message":"Patch Set 1: Code-Review-1\n\n1. You can use nargs to make the positional argument \u003cuser\u003e, optionally\n\n2. Doesn\u0027t look like you ever have to submit the user_id, keystoneclient fetches it from the client session created.\n\n3. We can do \"openstack user set --new-password --old-password\" and based on the parsed_args values, specifically call client.update_password, instead of client.update.\n\n4. If the user supplies other args with --new-password and --old-password then break with an error message.","accounts_in_message":[],"_revision_number":1},{"id":"2cc92a19f1b20d12bd0a9c1c108b0df8e6e5eb3e","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2014-07-10 15:18:56.000000000","message":"Patch Set 1:\n\nI don\u0027t want a new command, but users not even being able to look up their own ID really sucks.  However, that\u0027s a reasonable test for admin-ness and can be used to properly dispatch the command handling without adding yet another round trip.\n\nRe other options in the command, if not admin, issue a warning and attempt the user-mode password change anyway?\n\nWhen in the user-change-pw section, if --password and/or --old-password are not given, do the prompting as required.  However, I\u0027m thinking we should have the option to prompt for --password as admin too in order to allow not putting the new password on a plaintext command-line, similar to the tricks using passwd(1).\n\npseudocode:\n\nif (lookup user)\n    # admin stuffs as now\n    if --password \u003d\u003d \u0027-\u0027   # or \u0027\u0027 if nargs is used\n        prompt for password\n    users.update()\nelse\n    # user\n    if --old-password not present or --old-password \u003d\u003d \u0027-\u0027    # or \u0027\u0027 if nargs is used\n        prompt for old password\n    if --password not present or --password \u003d\u003d \u0027-\u0027   # or \u0027\u0027 if nargs is used\n        prompt for password\n    users.change_password()\n\nFWIW, I\u0027m not a fan of --password-prompt, although sudo does have \u0027-S\u0027 to do the same thing.  This may be the one time nargs is useful even with the ambiguity, --password \u003d\u003d None forces a prompt.  Nargs on both --password and user may be tricky... ;)","accounts_in_message":[],"_revision_number":1},{"id":"eb62f5450f6fd5d2d3ca886bc25a1fc41ba6fca3","author":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"date":"2014-07-10 16:31:05.000000000","message":"Patch Set 1:\n\nThanks both for the thoughtful review,\n\n@Steve\n\nRemarks about the numbered point above:\n\n  2. I was actually referring to the fact that a \u003cuser-id\u003e + a call to ks.users.update_password doesn\u0027t make sense, but we can maybe solve this with making \u003cuser-id\u003e optional.\n\n   4. Prompting for password is more secure way of changing a password, relaying and requiring  --new-password --old-password to be set is IMHO quiet bad, right ?\n\n@Dean:\n\nI don\u0027t think it\u0027s a reasonable test, it all depend on the policies user may be allowed to know his own id or know, a deployer may choose to set  \"identity:get_user\": \"rule:cloud_admin or rule:admin_or_owner\"  for example, what we can do is add to that test wether user-id supplied in argument is equal to ``identity_client.users.api.user_id``, but just to stretch how this will look use case wise so that we are in the same page:\n\n    # Update own password by prompting. \n    $ openstack user set  --password-prompt\n\n    # Either \u003cuser-id\u003e is current user id or it\u0027s another \u003cuser-id\u003e, in case\n    # user-id is the current user id this will call update_password, this of\n    # course will require even admin to give his current password.\n    $ openstack user set --password-prompt \u003cuser-id\u003e \n\n    # As admin, user can\u0027t update both field at once b/c if we allow this for\n    # admin, no admin user will get a nasty error not knowing wether his\n    # password did change or no check point 4 above.\n    $ openstack user set  --password \"foo\" --email \"foo@example.com\"\n\nAnother solution will be EAFP (try: update_user(...)  except AuthorizationError: change_password()), but I really dislike this solution, to be fair I like another command b/c it state with no magic (if this and that) that user want to change his own password plain and simple KISS :)\n\nTo state the obvious b/c we are talking about identity:user_update policy rule whenever I say admin I am actually referring to who ever is allowed to do the update action e.g.  \"identity:user_update\": \"role:superman\".\n\nThoughts ?","accounts_in_message":[],"_revision_number":1},{"id":"d51cff17570093aa7a21ed942ec31e30c389a148","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2014-07-10 22:59:45.000000000","message":"Patch Set 1:\n\nI agree it needs to be simple and my insistence on sticking with \u0027user set\u0027 is really hindering that, eh?\n\nA user changing their own password is a pretty unique action (Steve, is there anything similar with any of the other backends? oauth for example?).\n\nHow about we model \u0027user password\u0027 after passwd(1)?  That\u0027s the entire command, at least for non-admin.  Maybe we want to let admin use that to change others, like root and passwd, but maybe not?\n\nSince this is just for end-users, I\u0027d argue that we should not have a command-line option for providing either the new or old passwords.  A user who wants to script that might be smart enough to know how to use expect?  Or even just redirection?","accounts_in_message":[],"_revision_number":1},{"id":"3c78b9ffa25708a433ba7fb8b4f12c08f2e5f213","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2014-07-10 23:02:04.000000000","message":"Patch Set 1:\n\nI just noticed that get_password() bails if stdin is not a tty; I think we\u0027d want it to read two (or three) lines from stdin without prompts in that case rather than throw an exception?","accounts_in_message":[],"_revision_number":1},{"id":"92bc9fc1c44b1f90a82b2d3c78b3c48e37c5a919","author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"date":"2014-07-10 23:06:09.000000000","message":"Patch Set 1:\n\n@Dean, I\u0027m at the keystone hackathon, I asked around... nothing else in keystone does that, it\u0027s pretty special.","accounts_in_message":[],"_revision_number":1},{"id":"0a7c183f232ac1ab53e5004003d79b2c07d9957e","author":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"date":"2014-07-11 09:13:30.000000000","message":"Patch Set 1:\n\n\u003e I agree it needs to be simple and my insistence on sticking with \u0027user set\u0027 is really hindering that, eh?\n\nI think the discussion that we are having over how to do it with \"user set\" and the use cases that break while doing that prove the contrary :), and to not get me wrong I am surely not complain, I live for this kind of discussion :)\n\nBTW is there something that require backward compatibility ? Remove an option from a existing command is kind of bad right ?  like --password from \"user set\" if that what you suggested ?\n\nAs to reading from stdin, please correct me if I am wrong but reading from it without blocking may not be as easy as it sound, in Unix we can use either an signal.alarm or select.select, and none of them is bullet proof, but windows will require something totally different ! Actually I don\u0027t mind removing the argument --password but I don\u0027t really see it as a problem if we go with a separate action for changing password.\n\nI do like the idea of modeling over passwd(1) but without accepting positional argument \"user\", I think reflecting what the API offer (POST /users/{user_id}/password VS PATCH /users/{user_id}) and what the policy rules contain (identity:update_user VS identity:change_password) is a good idea, actually b/c OSC wasn\u0027t doing that where my confusion started that lead to a bug reported and to this patch, specially comparing to keystoneclient which I found more intuitive in this regard:\n\n    $ keystone help\n    ...\n    user-password-update\n                        Update user password.\n    ...\n    user-update         Update user\u0027s name, email, and enabled status.\n    ...\n\nDid I convince you already :) ? Thoughts ?","accounts_in_message":[],"_revision_number":1},{"id":"9dab096d0e61fccbe6eb92374879b8305c2ba276","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-07-15 17:15:16.000000000","message":"Patch Set 1: -Verified\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":1},{"id":"fd82cec3df36a243152dcebc26270a3db73f2876","author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"date":"2014-07-15 17:15:16.000000000","message":"Patch Set 1:\n\n(apologies for not reading through *all* the discussion here, but...) I do think that openstackclient needs to distinguish between an administrative password reset operation (which does not require the current password), and a user\u0027s self-service password update/rotation operation (which requires the current password)... so I like the direction of the current change, but I wouldn\u0027t want an admin to assume he/she needs the user\u0027s password to do a \"user password set.\"","accounts_in_message":[],"_revision_number":1},{"id":"0698c7c393e00bd8d06a9e2ddba43e3ec353c780","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-07-15 18:29:21.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures\n\n- gate-python-openstackclient-pep8 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-pep8/5fd82cd : SUCCESS in 3m 29s\n- gate-python-openstackclient-docs http://docs-draft.openstack.org/18/106018/1/check/gate-python-openstackclient-docs/136dd6f/doc/build/html/ : SUCCESS in 2m 40s\n- gate-python-openstackclient-python26 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python26/7294f1b : FAILURE in 20s\n- gate-python-openstackclient-python27 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python27/de8d2f5 : SUCCESS in 2m 30s\n- check-tempest-dsvm-full http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full/4d7b19d : SUCCESS in 54m 03s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-postgres-full/9df6ef3 : SUCCESS in 35m 18s\n- check-tempest-dsvm-neutron http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron/eb84e44 : SUCCESS in 49m 28s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-heat-slow/6efcdb6 : SUCCESS in 21m 38s\n- check-grenade-dsvm http://logs.openstack.org/18/106018/1/check/check-grenade-dsvm/6b6d539 : SUCCESS in 51m 11s\n- check-tempest-dsvm-full-havana http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full-havana/fb69557 : SUCCESS in 42m 38s (non-voting)\n- check-tempest-dsvm-neutron-havana http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-havana/e8b8d8d : SUCCESS in 39m 06s (non-voting)\n- check-tempest-dsvm-full-icehouse http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full-icehouse/d29b839 : SUCCESS in 50m 43s\n- check-tempest-dsvm-neutron-icehouse http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-icehouse/1f02c19 : SUCCESS in 57m 56s\n- gate-python-openstackclient-python33 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python33/f5f7881 : FAILURE in 3m 10s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"e7d3baa8bc629311024ef35895200b62b5db7431","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-07-21 11:33:29.000000000","message":"Patch Set 1: -Verified\n\nStarting check jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":1},{"id":"0744afbf935bbe5c9b1451451ecda6ed1ed8a494","author":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"date":"2014-07-21 11:33:29.000000000","message":"Patch Set 1:\n\nrecheck bug 1337245","accounts_in_message":[],"_revision_number":1},{"id":"997389009df1d4bb81325ed1de5968189ab64fc1","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-07-21 12:37:55.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded.\n\n- gate-python-openstackclient-pep8 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-pep8/5252db8 : SUCCESS in 2m 07s\n- gate-python-openstackclient-docs http://docs-draft.openstack.org/18/106018/1/check/gate-python-openstackclient-docs/5b36d2b/doc/build/html/ : SUCCESS in 2m 15s\n- gate-python-openstackclient-python26 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python26/d139ce7 : SUCCESS in 2m 22s\n- gate-python-openstackclient-python27 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python27/83163a6 : SUCCESS in 2m 14s\n- check-tempest-dsvm-full http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full/acf0174 : SUCCESS in 47m 02s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-postgres-full/44adae3 : SUCCESS in 48m 39s\n- check-tempest-dsvm-neutron http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron/ca68ac7 : SUCCESS in 58m 02s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-heat-slow/5fbafff : SUCCESS in 24m 41s\n- check-grenade-dsvm http://logs.openstack.org/18/106018/1/check/check-grenade-dsvm/0a4232a : SUCCESS in 44m 50s\n- check-tempest-dsvm-full-havana http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full-havana/e637c2f : SUCCESS in 37m 56s (non-voting)\n- check-tempest-dsvm-neutron-havana http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-havana/2a58120 : SUCCESS in 33m 32s (non-voting)\n- check-tempest-dsvm-full-icehouse http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full-icehouse/5be7159 : SUCCESS in 50m 32s\n- check-tempest-dsvm-neutron-icehouse http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-icehouse/1feb4b0 : SUCCESS in 56m 39s\n- gate-python-openstackclient-python33 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python33/373b511 : SUCCESS in 4m 26s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"8c0827079508e47a6fd99b571ba1f2e9c8a5ed5c","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2014-09-06 04:51:41.000000000","message":"Patch Set 1: Code-Review+1\n\nApologies for letting this slip through the cracks...I\u0027m going to +1 at this point and do a recheck to make sure it is all still good.  Then ping Steve to see how he feels.","accounts_in_message":[],"_revision_number":1},{"id":"39ed1ae7fe7f432af3c5ff1bb742b108d9a042d2","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2014-09-06 04:51:50.000000000","message":"Patch Set 1:\n\nrecheck","accounts_in_message":[],"_revision_number":1},{"id":"c158dfa2d7caec43161d0bbc6ee43bccae454287","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-09-06 06:22:52.000000000","message":"Patch Set 1:\n\nBuild succeeded.\n\n- gate-python-openstackclient-pep8 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-pep8/7d6456c : SUCCESS in 2m 31s\n- gate-python-openstackclient-docs http://docs-draft.openstack.org/18/106018/1/check/gate-python-openstackclient-docs/9a95b67/doc/build/html/ : SUCCESS in 2m 27s\n- gate-python-openstackclient-python26 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python26/5cb420d : SUCCESS in 2m 48s\n- gate-python-openstackclient-python27 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python27/1324401 : SUCCESS in 4m 00s\n- gate-python-openstackclient-python33 http://logs.openstack.org/18/106018/1/check/gate-python-openstackclient-python33/782f00b : SUCCESS in 4m 25s\n- check-tempest-dsvm-full http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full/f119a1a : SUCCESS in 56m 16s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-postgres-full/3a5dd60 : SUCCESS in 1h 11m 22s\n- check-tempest-dsvm-neutron-full http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-full/a9915e6 : SUCCESS in 51m 10s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-heat-slow/80a1761 : SUCCESS in 17m 25s\n- check-grenade-dsvm http://logs.openstack.org/18/106018/1/check/check-grenade-dsvm/86a2241 : SUCCESS in 35m 12s\n- check-tempest-dsvm-full-havana http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full-havana/0cb0d8a : SUCCESS in 32m 29s (non-voting)\n- check-tempest-dsvm-neutron-havana http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-havana/6b60090 : SUCCESS in 34m 55s (non-voting)\n- check-tempest-dsvm-full-icehouse http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-full-icehouse/66bb79d : SUCCESS in 50m 53s\n- check-tempest-dsvm-neutron-icehouse http://logs.openstack.org/18/106018/1/check/check-tempest-dsvm-neutron-icehouse/c87ce88 : SUCCESS in 54m 36s","accounts_in_message":[],"_revision_number":1},{"id":"c46dd476d2516ffc1080bc5bd51a66e0b1cada2b","author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"date":"2014-09-07 06:39:04.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"9f45e436114ab910312f44b0874af2d30743192d","author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"date":"2014-09-07 06:40:40.000000000","message":"Patch Set 2: Code-Review+2\n\nSo i tried it out, it works, I made a minor change to the get_password function. I\u0027m still not super happy with the command (user password set), it feels clunky, but I don\u0027t have an alternative and think this will service for now.","accounts_in_message":[],"_revision_number":2},{"id":"0ee94b8346dfeb892f7373ff267d58110e7061b8","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-09-07 07:59:00.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded.\n\n- gate-python-openstackclient-pep8 http://logs.openstack.org/18/106018/2/check/gate-python-openstackclient-pep8/45af530 : SUCCESS in 2m 32s\n- gate-python-openstackclient-docs http://docs-draft.openstack.org/18/106018/2/check/gate-python-openstackclient-docs/9356590/doc/build/html/ : SUCCESS in 2m 32s\n- gate-python-openstackclient-python26 http://logs.openstack.org/18/106018/2/check/gate-python-openstackclient-python26/1a5945c : SUCCESS in 2m 47s\n- gate-python-openstackclient-python27 http://logs.openstack.org/18/106018/2/check/gate-python-openstackclient-python27/2e83f39 : SUCCESS in 2m 23s\n- gate-python-openstackclient-python33 http://logs.openstack.org/18/106018/2/check/gate-python-openstackclient-python33/2a744ea : SUCCESS in 4m 15s\n- check-tempest-dsvm-full http://logs.openstack.org/18/106018/2/check/check-tempest-dsvm-full/9a2e63f : SUCCESS in 45m 41s\n- check-tempest-dsvm-postgres-full http://logs.openstack.org/18/106018/2/check/check-tempest-dsvm-postgres-full/c3f2854 : SUCCESS in 1h 16m 26s\n- check-tempest-dsvm-neutron-full http://logs.openstack.org/18/106018/2/check/check-tempest-dsvm-neutron-full/bee561d : SUCCESS in 1h 05m 19s\n- check-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/18/106018/2/check/check-tempest-dsvm-neutron-heat-slow/975f746 : SUCCESS in 24m 15s\n- check-grenade-dsvm http://logs.openstack.org/18/106018/2/check/check-grenade-dsvm/a1465e3 : SUCCESS in 42m 26s\n- check-tempest-dsvm-full-havana http://logs.openstack.org/18/106018/2/check/check-tempest-dsvm-full-havana/2dbe2e2 : SUCCESS in 35m 51s (non-voting)\n- check-tempest-dsvm-neutron-havana http://logs.openstack.org/18/106018/2/check/check-tempest-dsvm-neutron-havana/a6e3913 : SUCCESS in 34m 09s (non-voting)\n- check-tempest-dsvm-full-icehouse http://logs.openstack.org/18/106018/2/check/check-tempest-dsvm-full-icehouse/55e8dbb : SUCCESS in 44m 24s\n- check-tempest-dsvm-neutron-icehouse http://logs.openstack.org/18/106018/2/check/check-tempest-dsvm-neutron-icehouse/a93067b : SUCCESS in 54m 06s","accounts_in_message":[],"_revision_number":2},{"id":"302b548d89a27f6a858ba547369403245ff08a73","author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"date":"2014-09-07 10:45:22.000000000","message":"Patch Set 2: Code-Review+1\n\nI tried it out too and it looked good to me, I was just keeping quiet to see how Steve\u0027s issues worked out.","accounts_in_message":[],"_revision_number":2},{"id":"a6cf228069a142ab0a4936142d0941e046b6f165","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-09-07 13:19:15.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":2},{"id":"a5ca93fa4224e0b78e42ac35d90358dd6122be59","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2014-09-07 13:19:15.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"9e6b6346530bf953aaca18246efa5af762615ae3","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-09-07 15:12:18.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded.\n\n- gate-python-openstackclient-docs http://docs-draft.openstack.org/18/106018/2/gate/gate-python-openstackclient-docs/d23c853/doc/build/html/ : SUCCESS in 3m 26s\n- gate-python-openstackclient-pep8 http://logs.openstack.org/18/106018/2/gate/gate-python-openstackclient-pep8/2f84aff : SUCCESS in 2m 23s\n- gate-python-openstackclient-python26 http://logs.openstack.org/18/106018/2/gate/gate-python-openstackclient-python26/3e58ae7 : SUCCESS in 2m 38s\n- gate-python-openstackclient-python27 http://logs.openstack.org/18/106018/2/gate/gate-python-openstackclient-python27/501096b : SUCCESS in 2m 39s\n- gate-python-openstackclient-python33 http://logs.openstack.org/18/106018/2/gate/gate-python-openstackclient-python33/fba6b67 : SUCCESS in 4m 09s\n- gate-tempest-dsvm-full http://logs.openstack.org/18/106018/2/gate/gate-tempest-dsvm-full/525cfdd : SUCCESS in 52m 22s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/18/106018/2/gate/gate-tempest-dsvm-postgres-full/4ad86b2 : SUCCESS in 1h 14m 42s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/18/106018/2/gate/gate-tempest-dsvm-neutron-full/fa51dae : SUCCESS in 1h 04m 28s\n- gate-tempest-dsvm-neutron-heat-slow http://logs.openstack.org/18/106018/2/gate/gate-tempest-dsvm-neutron-heat-slow/4703f5e : SUCCESS in 24m 05s\n- gate-grenade-dsvm http://logs.openstack.org/18/106018/2/gate/gate-grenade-dsvm/16a5dcd : SUCCESS in 39m 14s","accounts_in_message":[],"_revision_number":2},{"id":"5b79507f636a0d0bbcd061c7d2e2f496bc445403","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-09-07 15:12:18.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"0069adef5ccec501c36b8da1d2de2821a97afe07","revisions":{"9ed8f23089c9817041f5efc9dead9ffc69a5a49c":{"kind":"REWORK","_number":1,"created":"2014-07-10 11:27:38.000000000","uploader":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"ref":"refs/changes/18/106018/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/18/106018/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/18/106018/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/18/106018/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/18/106018/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/18/106018/1"}}},"commit":{"parents":[{"commit":"8e12949958143e7db9783ef6246e6b09def0ad8e","subject":"Merge \"Remove backslash usage from a few tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/8e12949958143e7db9783ef6246e6b09def0ad8e"}]}],"author":{"name":"Mouad Benchchaoui","email":"m.benchchaoui@x-ion.de","date":"2014-07-10 11:23:35.000000000","tz":120},"committer":{"name":"Mouad Benchchaoui","email":"m.benchchaoui@x-ion.de","date":"2014-07-10 11:27:06.000000000","tz":120},"subject":"Add action \u0027user password set\u0027 for identiy v3","message":"Add action \u0027user password set\u0027 for identiy v3\n\nThe new action allow any user to change his own password and that by\neither providing the new password as argument --password or by being\nprompted to enter the new password. In both cases user will be prompted\nto enter his current password as required by the v3 API.\n\nCloses-Bug: #1337245\nChange-Id: I5e1e0fd2b46a4502318da57f7cce2b236fb2d93d\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/9ed8f23089c9817041f5efc9dead9ffc69a5a49c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/9ed8f23089c9817041f5efc9dead9ffc69a5a49c"}]},"branch":"refs/heads/master"},"0069adef5ccec501c36b8da1d2de2821a97afe07":{"kind":"REWORK","_number":2,"created":"2014-09-07 06:39:04.000000000","uploader":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"ref":"refs/changes/18/106018/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/18/106018/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/18/106018/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/18/106018/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/18/106018/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/18/106018/2"}}},"commit":{"parents":[{"commit":"8e12949958143e7db9783ef6246e6b09def0ad8e","subject":"Merge \"Remove backslash usage from a few tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/8e12949958143e7db9783ef6246e6b09def0ad8e"}]}],"author":{"name":"Mouad Benchchaoui","email":"m.benchchaoui@x-ion.de","date":"2014-07-10 11:23:35.000000000","tz":120},"committer":{"name":"Steve Martinelli","email":"stevemar@ca.ibm.com","date":"2014-09-07 06:37:54.000000000","tz":-240},"subject":"Add action \u0027user password set\u0027 for identiy v3","message":"Add action \u0027user password set\u0027 for identiy v3\n\nThis new action will allow a user to change their own password by\neither providing the new password as an argument (--password) or by\nbeing prompted to enter the new password.\nIn both cases user will be prompted to enter their current password\nas required by the v3 API.\n\nCloses-Bug: #1337245\nChange-Id: I5e1e0fd2b46a4502318da57f7cce2b236fb2d93d\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/0069adef5ccec501c36b8da1d2de2821a97afe07"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/0069adef5ccec501c36b8da1d2de2821a97afe07"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
