)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"4d888d451a9be0ca599ba822f7c0698501ecf4b6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Now keystone enables listing of user by name"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"API support listing of user by name but keystone client does"},{"line_number":10,"context_line":"not. It was required by user in some scenario(as described in bug"},{"line_number":11,"context_line":"description)."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa53dc9_cb325410","line":9,"updated":"2015-04-08 16:05:14.000000000","message":"The API supports....","commit_id":"9ae038ad115b36a48ecde387ab7b12a5723794e1"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"4d888d451a9be0ca599ba822f7c0698501ecf4b6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Now keystone enables listing of user by name"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"API support listing of user by name but keystone client does"},{"line_number":10,"context_line":"not. It was required by user in some scenario(as described in bug"},{"line_number":11,"context_line":"description)."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"For supporting this feature, user option need to be added for help"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa53dc9_0b083c2b","line":10,"updated":"2015-04-08 16:05:14.000000000","message":"by a user in some scenarios (as...","commit_id":"9ae038ad115b36a48ecde387ab7b12a5723794e1"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"4d888d451a9be0ca599ba822f7c0698501ecf4b6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"not. It was required by user in some scenario(as described in bug"},{"line_number":11,"context_line":"description)."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"For supporting this feature, user option need to be added for help"},{"line_number":14,"context_line":"and displaying to user. It makes me to change shell.py."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"do_user_list method uses list method of user.py, which need to be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa53dc9_a62aa77c","line":13,"updated":"2015-04-08 16:05:14.000000000","message":"To support ...  the user option needs","commit_id":"9ae038ad115b36a48ecde387ab7b12a5723794e1"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"4d888d451a9be0ca599ba822f7c0698501ecf4b6","unresolved":false,"context_lines":[{"line_number":11,"context_line":"description)."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"For supporting this feature, user option need to be added for help"},{"line_number":14,"context_line":"and displaying to user. It makes me to change shell.py."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"do_user_list method uses list method of user.py, which need to be"},{"line_number":17,"context_line":"updated according to the keystone API. In case of list of users,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa53dc9_463cfbc7","line":14,"updated":"2015-04-08 16:05:14.000000000","message":"remove - It makes me to change shell.py.","commit_id":"9ae038ad115b36a48ecde387ab7b12a5723794e1"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"4d888d451a9be0ca599ba822f7c0698501ecf4b6","unresolved":false,"context_lines":[{"line_number":13,"context_line":"For supporting this feature, user option need to be added for help"},{"line_number":14,"context_line":"and displaying to user. It makes me to change shell.py."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"do_user_list method uses list method of user.py, which need to be"},{"line_number":17,"context_line":"updated according to the keystone API. In case of list of users,"},{"line_number":18,"context_line":"keystone returns a dictionary having \u0027users\u0027 as key and list of"},{"line_number":19,"context_line":"all users as the value. But in case of display by name, we get,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa53dc9_c64ecb6e","line":16,"updated":"2015-04-08 16:05:14.000000000","message":"need -\u003e needs","commit_id":"9ae038ad115b36a48ecde387ab7b12a5723794e1"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"4d888d451a9be0ca599ba822f7c0698501ecf4b6","unresolved":false,"context_lines":[{"line_number":14,"context_line":"and displaying to user. It makes me to change shell.py."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"do_user_list method uses list method of user.py, which need to be"},{"line_number":17,"context_line":"updated according to the keystone API. In case of list of users,"},{"line_number":18,"context_line":"keystone returns a dictionary having \u0027users\u0027 as key and list of"},{"line_number":19,"context_line":"all users as the value. But in case of display by name, we get,"},{"line_number":20,"context_line":"a dictionary having \u0027user\u0027 as key and user details as value."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa53dc9_4643db42","line":17,"updated":"2015-04-08 16:05:14.000000000","message":"In the case of listing of users","commit_id":"9ae038ad115b36a48ecde387ab7b12a5723794e1"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"4d888d451a9be0ca599ba822f7c0698501ecf4b6","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Which makes it necessary to pass \u0027user\u0027 as reponse key."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"In base.py\u0027s _list method, in our case, we get a dictionary, which"},{"line_number":24,"context_line":"needs to be convert to list before proceeding further. On the"},{"line_number":25,"context_line":"basis of reponse_key, this decision is being made."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: Ie1a20a1e5e958a3133f0b86d1580a833e8928a43"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa53dc9_66725faf","line":24,"updated":"2015-04-08 16:05:14.000000000","message":"concert -\u003e converted","commit_id":"9ae038ad115b36a48ecde387ab7b12a5723794e1"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"4d888d451a9be0ca599ba822f7c0698501ecf4b6","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"In base.py\u0027s _list method, in our case, we get a dictionary, which"},{"line_number":24,"context_line":"needs to be convert to list before proceeding further. On the"},{"line_number":25,"context_line":"basis of reponse_key, this decision is being made."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: Ie1a20a1e5e958a3133f0b86d1580a833e8928a43"},{"line_number":28,"context_line":"Closes-Bug: #1417189"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa53dc9_c69c8bc2","line":25,"updated":"2015-04-08 16:05:14.000000000","message":"reponse_key -\u003e response_key","commit_id":"9ae038ad115b36a48ecde387ab7b12a5723794e1"}],"keystoneclient/base.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"42222e3274148b8c4bf06f5ccdac36f4d139db66","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        if response_key \u003d\u003d \u0027user\u0027:"},{"line_number":127,"context_line":"            data \u003d [data]"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        return [obj_class(self, res, loaded\u003dTrue) for res in data if res]"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def _get(self, url, response_key, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_f872e7ac","line":128,"updated":"2015-04-01 20:45:14.000000000","message":"why? we should not need to special case on the base object.","commit_id":"9ae038ad115b36a48ecde387ab7b12a5723794e1"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"a4dbeb85f8941e657b789f5a4decd56f7abd845b","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        except (KeyError, TypeError):"},{"line_number":124,"context_line":"            pass"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        if response_key \u003d\u003d \u0027user\u0027:"},{"line_number":127,"context_line":"            data \u003d [data]"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        return [obj_class(self, res, loaded\u003dTrue) for res in data if res]"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_e778e92d","line":126,"updated":"2015-09-15 09:13:29.000000000","message":"Special handling for a specific API absolutely does not belong in this class.","commit_id":"1502d7fb37626dba11e935ddfbf702d69f55d448"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"a4dbeb85f8941e657b789f5a4decd56f7abd845b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            pass"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        if response_key \u003d\u003d \u0027user\u0027:"},{"line_number":127,"context_line":"            data \u003d [data]"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        return [obj_class(self, res, loaded\u003dTrue) for res in data if res]"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_67ba99c2","line":127,"updated":"2015-09-15 09:13:29.000000000","message":"I\u0027m also really unclear on what this is supposed to do. Why are you wrapping a list response in a list?","commit_id":"1502d7fb37626dba11e935ddfbf702d69f55d448"}],"keystoneclient/tests/unit/v2_0/test_users.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"a4dbeb85f8941e657b789f5a4decd56f7abd845b","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        self.stub_url(\u0027GET\u0027, [\u0027users?name\u003dadmin\u0027],"},{"line_number":172,"context_line":"                      json\u003dexp_resp)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        user \u003d self.client.users.list(name\u003d\u0027admin\u0027)"},{"line_number":175,"context_line":"        self.assertIsInstance(user[0], users.User)"},{"line_number":176,"context_line":"        self.assertEqual(user[0].name, exp_resp[\u0027user\u0027][\u0027name\u0027])"},{"line_number":177,"context_line":"        self.assertEqual(user[0].id, exp_resp[\u0027user\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_c727e510","line":174,"updated":"2015-09-15 09:13:29.000000000","message":"please tell me that the \"list\" API doesn\u0027t actually return a single entity instead of returning a list... what happens when two users in different domains both have the same name?!","commit_id":"1502d7fb37626dba11e935ddfbf702d69f55d448"}],"keystoneclient/v2_0/users.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"42222e3274148b8c4bf06f5ccdac36f4d139db66","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        \"\"\"Delete a user.\"\"\""},{"line_number":106,"context_line":"        return self._delete(\"/users/%s\" % base.getid(user))"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def list(self, tenant_id\u003dNone, limit\u003dNone, marker\u003dNone, user\u003dNone):"},{"line_number":109,"context_line":"        \"\"\"Get a list of users (optionally limited to a tenant)."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        :rtype: list of :class:`User`"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_1512f462","line":108,"updated":"2015-04-01 20:45:14.000000000","message":"this would be name\u003d, we are listing users so user\u003d doesn\u0027t make sense.","commit_id":"9ae038ad115b36a48ecde387ab7b12a5723794e1"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"42222e3274148b8c4bf06f5ccdac36f4d139db66","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        if user:"},{"line_number":127,"context_line":"            return self._list(\"/users%s\" % query, \"user\")"},{"line_number":128,"context_line":"        elif not tenant_id:"},{"line_number":129,"context_line":"            return self._list(\"/users%s\" % query, \"users\")"},{"line_number":130,"context_line":"        else:"},{"line_number":131,"context_line":"            return self._list(\"/tenants/%s/users%s\" % (tenant_id, query),"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_984bdb59","line":128,"updated":"2015-04-01 20:45:14.000000000","message":"shouldn\u0027t these be accumulative? I don\u0027t know why, but you could list name within tenant. (need to check that\u0027s supported in the API).\n\nIf you leave this bit out then query will be added already below.","commit_id":"9ae038ad115b36a48ecde387ab7b12a5723794e1"}]}
