)]}'
{"keystoneclient/auth/identity/v2.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e39812ba16c2d5e9b844ba78ea906392d31b2f2e","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                 **kwargs):"},{"line_number":103,"context_line":"        \"\"\"A plugin for authenticating with a username and password."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        A password must be provided."},{"line_number":106,"context_line":"        A username or user_id must be provided."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        :param string auth_url: Identity service endpoint for authorization."}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_739bb079","line":105,"updated":"2014-08-15 01:28:51.000000000","message":"There\u0027s no check for password being required.","commit_id":"86d9ac9265219cfeb049542d9beaec4e13882100"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e39812ba16c2d5e9b844ba78ea906392d31b2f2e","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        :param string auth_url: Identity service endpoint for authorization."},{"line_number":109,"context_line":"        :param string username: Username for authentication."},{"line_number":110,"context_line":"        :param string password: Password for authentication."},{"line_number":111,"context_line":"        :param string user_id: User ID for authentication."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        super(Password, self).__init__(auth_url, **kwargs)"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7ac7a964_230d3b91","line":111,"updated":"2014-08-15 01:28:51.000000000","message":"the docstring should have :raises: for the TypeError.","commit_id":"86d9ac9265219cfeb049542d9beaec4e13882100"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"be7d88ec03dd4a471572d707862b76b6e3725294","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            cfg.StrOpt(\u0027user-name\u0027,"},{"line_number":139,"context_line":"                       dest\u003d\u0027username\u0027,"},{"line_number":140,"context_line":"                       deprecated_name\u003d\u0027username\u0027,"},{"line_number":141,"context_line":"                       help\u003d\u0027Username to login with\u0027),"},{"line_number":142,"context_line":"            cfg.StrOpt(\u0027password\u0027, secret\u003dTrue, help\u003d\u0027Password to use\u0027),"},{"line_number":143,"context_line":"        ])"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7ac7a964_feee7c21","line":141,"updated":"2014-08-15 01:56:19.000000000","message":"Should we add \u0027user-id\u0027 in here?","commit_id":"86d9ac9265219cfeb049542d9beaec4e13882100"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"d231785a6fc7338d75731f5501b73a77ee53e070","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"class Password(Auth):"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @utils.positional(4)"},{"line_number":101,"context_line":"    def __init__(self, auth_url, username\u003dNone, password\u003dNone, user_id\u003dNone,"},{"line_number":102,"context_line":"                 **kwargs):"},{"line_number":103,"context_line":"        \"\"\"A plugin for authenticating with a username and password."}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_6d737080","line":100,"updated":"2014-08-20 02:07:48.000000000","message":"Do we need positional here?  Does that mean can\u0027t I pass user_id as positional parameter","commit_id":"6ef23c80d000a721c6a90bbd79420c7a24f74fb8"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"03e10e6eef97c170da724690ad5a7f50932385e1","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"class Password(Auth):"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @utils.positional(4)"},{"line_number":101,"context_line":"    def __init__(self, auth_url, username\u003dNone, password\u003dNone, user_id\u003dNone,"},{"line_number":102,"context_line":"                 **kwargs):"},{"line_number":103,"context_line":"        \"\"\"A plugin for authenticating with a username and password."}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_8a479f76","line":100,"in_reply_to":"1abeadc6_6d737080","updated":"2014-08-21 07:37:24.000000000","message":"yes. That\u0027s what it means. You wouldn\u0027t want to anyway because you don\u0027t specify both user_id and user_name and you would need to supply a username variable to supply user_id positionally.","commit_id":"6ef23c80d000a721c6a90bbd79420c7a24f74fb8"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"d231785a6fc7338d75731f5501b73a77ee53e070","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        elif self.user_id:"},{"line_number":130,"context_line":"            auth[\u0027userId\u0027] \u003d self.user_id"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        return {\u0027passwordCredentials\u0027: auth}"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    @classmethod"},{"line_number":135,"context_line":"    def get_options(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_2d597836","line":132,"updated":"2014-08-20 02:07:48.000000000","message":"I don\u0027t think v2 supports passwordCredentials with userId\n\nhttps://github.com/openstack/identity-api/blob/master/v2.0/src/xsd/credentials.xsd","commit_id":"6ef23c80d000a721c6a90bbd79420c7a24f74fb8"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"b4d3005fd78e8cd207d222d1d9615d881d6e969a","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        elif self.user_id:"},{"line_number":130,"context_line":"            auth[\u0027userId\u0027] \u003d self.user_id"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        return {\u0027passwordCredentials\u0027: auth}"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    @classmethod"},{"line_number":135,"context_line":"    def get_options(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_f7866a64","line":132,"in_reply_to":"1abeadc6_2d597836","updated":"2014-08-20 04:44:18.000000000","message":"If it is undocumented, how others are using it. In v2 we support xml and there are clients written in java based on xml api for v2.p ( jcloud). If nothing else, can we atleast document it","commit_id":"6ef23c80d000a721c6a90bbd79420c7a24f74fb8"}],"keystoneclient/tests/auth/test_identity_v2.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e39812ba16c2d5e9b844ba78ea906392d31b2f2e","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        self.assertRequestBodyIs(json\u003dreq)"},{"line_number":138,"context_line":"        self.assertEqual(s.auth.auth_ref.auth_token, self.TEST_TOKEN)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def test_authenticate_with_user_id_password_scoped(self):"},{"line_number":141,"context_line":"        self.stub_auth(json\u003dself.TEST_RESPONSE_DICT)"},{"line_number":142,"context_line":"        a \u003d v2.Password(self.TEST_URL, user_id\u003dself.TEST_USER,"},{"line_number":143,"context_line":"                        password\u003dself.TEST_PASS, tenant_id\u003dself.TEST_TENANT_ID)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ac7a964_23845bd3","line":140,"updated":"2014-08-15 01:28:51.000000000","message":"there\u0027s a lot of copy pasting here, the bodies should be shared.","commit_id":"86d9ac9265219cfeb049542d9beaec4e13882100"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0bddc7b9a292b223829f1c1882f748d6fbb1b174","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        self.assertRequestBodyIs(json\u003dreq)"},{"line_number":138,"context_line":"        self.assertEqual(s.auth.auth_ref.auth_token, self.TEST_TOKEN)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def test_authenticate_with_user_id_password_scoped(self):"},{"line_number":141,"context_line":"        self.stub_auth(json\u003dself.TEST_RESPONSE_DICT)"},{"line_number":142,"context_line":"        a \u003d v2.Password(self.TEST_URL, user_id\u003dself.TEST_USER,"},{"line_number":143,"context_line":"                        password\u003dself.TEST_PASS, tenant_id\u003dself.TEST_TENANT_ID)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_1c037410","line":140,"updated":"2014-08-18 00:51:45.000000000","message":"there\u0027s a lot of copy pasting here, the bodies should be shared.","commit_id":"6ef23c80d000a721c6a90bbd79420c7a24f74fb8"}]}
