)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"f44dc435f0a896bc62886d146542734d23c08a25","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Authenticate via oauth"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As the title says, add support to authenticate with keystone"},{"line_number":10,"context_line":"via oauth."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I958983f505e261e3f1920a8df66eced3258b001e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAVn%2F%2Fc1g%3D","line":9,"updated":"2014-03-06 01:01:25.000000000","message":"Don\u0027t do the title thing.","commit_id":"741ae9f1271abd9800786cd07a997b624c361d66"}],"keystoneclient/access.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"58f5f4a38106d0092cac098b080df3b142057353","unresolved":false,"context_lines":[{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        :returns: str or None (if no access token is associated with the token)"},{"line_number":355,"context_line":"        \"\"\""},{"line_number":356,"context_line":"        raise NotImplementedError()"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"class AccessInfoV2(AccessInfo):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fc8s%3D","line":356,"updated":"2014-03-06 00:51:11.000000000","message":"Are these something that a client will want to retrieve from the token? I\u0027m a bit wary of adding new things to accessinfo.","commit_id":"741ae9f1271abd9800786cd07a997b624c361d66"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3736f8ec58007b5f311b22893b4e6d356fcccef4","unresolved":false,"context_lines":[{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        :returns: str or None (if no access token is associated with the token)"},{"line_number":355,"context_line":"        \"\"\""},{"line_number":356,"context_line":"        raise NotImplementedError()"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"class AccessInfoV2(AccessInfo):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fbys%3D","line":356,"in_reply_to":"AAAAVn%2F%2Fc8s%3D","updated":"2014-03-06 04:00:58.000000000","message":"Not in particular, the client would already know these. But I found that I had to add these in order to get test_auth_ref_load_with_overridden_arguments passing. \n\nHowever, if I can get the authenticate method working, without having to touch auth_ref, then i will certainly take these changes out.","commit_id":"741ae9f1271abd9800786cd07a997b624c361d66"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"57d4852d68e8224d099c8dbba1cff30497a2bafa","unresolved":false,"context_lines":[{"line_number":672,"context_line":""},{"line_number":673,"context_line":"    @property"},{"line_number":674,"context_line":"    def consumer_secret(self):"},{"line_number":675,"context_line":"        return None"},{"line_number":676,"context_line":""},{"line_number":677,"context_line":"    @property"},{"line_number":678,"context_line":"    def access_key(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fn78%3D","line":675,"updated":"2014-03-05 00:44:11.000000000","message":"should add a comment here saying that it\u0027s never in the token.","commit_id":"741ae9f1271abd9800786cd07a997b624c361d66"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"58f5f4a38106d0092cac098b080df3b142057353","unresolved":false,"context_lines":[{"line_number":672,"context_line":""},{"line_number":673,"context_line":"    @property"},{"line_number":674,"context_line":"    def consumer_secret(self):"},{"line_number":675,"context_line":"        return None"},{"line_number":676,"context_line":""},{"line_number":677,"context_line":"    @property"},{"line_number":678,"context_line":"    def access_key(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fc8Q%3D","line":675,"in_reply_to":"AAAAVn%2F%2Fn78%3D","updated":"2014-03-06 00:51:11.000000000","message":"if it\u0027s not there why put it in accessinfo at all?","commit_id":"741ae9f1271abd9800786cd07a997b624c361d66"}],"keystoneclient/auth/identity/v3.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"96106cb6fe83c290aa26001b6f17b6357bc93fc7","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        body \u003d {\u0027auth\u0027: {\u0027identity\u0027: {}}}"},{"line_number":66,"context_line":"        ident \u003d body[\u0027auth\u0027][\u0027identity\u0027]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for method in self.auth_methods:"},{"line_number":69,"context_line":"            method, auth_data \u003d method.get_auth_data(headers)"},{"line_number":70,"context_line":"            ident.setdefault(\u0027methods\u0027, []).append(method)"},{"line_number":71,"context_line":"            ident[method] \u003d auth_data"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fc4A%3D","line":68,"updated":"2014-03-06 00:58:34.000000000","message":"didn\u0027t notice that i overwrote method here.","commit_id":"741ae9f1271abd9800786cd07a997b624c361d66"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"96106cb6fe83c290aa26001b6f17b6357bc93fc7","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            scope \u003d body[\u0027auth\u0027].setdefault(\u0027scope\u0027, {})"},{"line_number":100,"context_line":"            scope[\u0027OS-TRUST:trust\u0027] \u003d {\u0027id\u0027: self.trust_id}"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        if \u0027oauth1\u0027 \u003d\u003d method:"},{"line_number":103,"context_line":"            oc \u003d oauth1.Client(headers[\u0027consumer_key\u0027],"},{"line_number":104,"context_line":"                               client_secret\u003dheaders[\u0027consumer_secret\u0027],"},{"line_number":105,"context_line":"                               resource_owner_key\u003dheaders[\u0027access_key\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fc4o%3D","line":102,"updated":"2014-03-06 00:58:34.000000000","message":"That\u0027s dangerous, you\u0027re comparing to a value that fell out of a for loop.","commit_id":"741ae9f1271abd9800786cd07a997b624c361d66"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3736f8ec58007b5f311b22893b4e6d356fcccef4","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            scope \u003d body[\u0027auth\u0027].setdefault(\u0027scope\u0027, {})"},{"line_number":100,"context_line":"            scope[\u0027OS-TRUST:trust\u0027] \u003d {\u0027id\u0027: self.trust_id}"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        if \u0027oauth1\u0027 \u003d\u003d method:"},{"line_number":103,"context_line":"            oc \u003d oauth1.Client(headers[\u0027consumer_key\u0027],"},{"line_number":104,"context_line":"                               client_secret\u003dheaders[\u0027consumer_secret\u0027],"},{"line_number":105,"context_line":"                               resource_owner_key\u003dheaders[\u0027access_key\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FbyQ%3D","line":102,"in_reply_to":"AAAAVn%2F%2Fc4o%3D","updated":"2014-03-06 04:00:58.000000000","message":"yeah, didn\u0027t notice that, I meant to check if it\u0027s in self.auth_methods","commit_id":"741ae9f1271abd9800786cd07a997b624c361d66"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"58f5f4a38106d0092cac098b080df3b142057353","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                               resource_owner_secret\u003dheaders[\u0027access_secret\u0027],"},{"line_number":107,"context_line":"                               signature_method\u003doauth1.SIGNATURE_HMAC)"},{"line_number":108,"context_line":"            o_url, headers, o_body \u003d oc.sign(url, http_method\u003d\u0027POST\u0027)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        resp \u003d session.post(url, json\u003dbody, headers\u003dheaders,"},{"line_number":111,"context_line":"                            authenticated\u003dFalse)"},{"line_number":112,"context_line":"        return access.AccessInfoV3(resp.headers[\u0027X-Subject-Token\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fc7g%3D","line":109,"updated":"2014-03-06 00:51:11.000000000","message":"why does this need to be here? and if it does how can we improve the auth method so that it doesn\u0027t?\n\nAlso you\u0027ve clobbered headers.","commit_id":"741ae9f1271abd9800786cd07a997b624c361d66"}],"keystoneclient/httpclient.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e1501dee9ff7397bd5ed25e816d9cff323748946","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                 user_domain_id\u003dNone, user_domain_name\u003dNone, domain_id\u003dNone,"},{"line_number":62,"context_line":"                 domain_name\u003dNone, project_id\u003dNone, project_name\u003dNone,"},{"line_number":63,"context_line":"                 project_domain_id\u003dNone, project_domain_name\u003dNone,"},{"line_number":64,"context_line":"                 trust_id\u003dNone, consumer_key\u003dNone, consumer_secret\u003dNone,"},{"line_number":65,"context_line":"                 access_key\u003dNone, access_secret\u003dNone, session\u003dNone, **kwargs):"},{"line_number":66,"context_line":"        \"\"\"Construct a new http client"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Fqc4%3D","line":64,"updated":"2014-03-04 19:40:45.000000000","message":"I\u0027m not sure if it\u0027s necessary to add these here, or anywhere else in this file.\n\nI\u0027d prefer to leave as much untouched as possible","commit_id":"2747efb4f0df845c7ffe8e6768afb12cba40392d"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"58f5f4a38106d0092cac098b080df3b142057353","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        self.consumer_secret \u003d None"},{"line_number":147,"context_line":"        self.access_key \u003d None"},{"line_number":148,"context_line":"        self.access_secret \u003d None"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # if loading from a dictionary passed in via auth_ref,"},{"line_number":151,"context_line":"        # load values from AccessInfo parsing that dictionary"},{"line_number":152,"context_line":"        if auth_ref:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fc6U%3D","line":149,"updated":"2014-03-06 00:51:11.000000000","message":"consider this file deprecated. You shouldn\u0027t need to add stuff to it.","commit_id":"741ae9f1271abd9800786cd07a997b624c361d66"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3736f8ec58007b5f311b22893b4e6d356fcccef4","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        self.consumer_secret \u003d None"},{"line_number":147,"context_line":"        self.access_key \u003d None"},{"line_number":148,"context_line":"        self.access_secret \u003d None"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # if loading from a dictionary passed in via auth_ref,"},{"line_number":151,"context_line":"        # load values from AccessInfo parsing that dictionary"},{"line_number":152,"context_line":"        if auth_ref:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FbxQ%3D","line":149,"in_reply_to":"AAAAVn%2F%2Fc6U%3D","updated":"2014-03-06 04:00:58.000000000","message":"this comment confuses me, i think it would be easiest to call the client like this:\n\ncs \u003d client.Client(consumer_key\u003dconsumer_key,\n  consumer_secret\u003dconsumer_secret,\n  access_key\u003daccess_key,\n  access_secret\u003daccess_secret,\n  auth_url\u003dself.TEST_URL)\n\nBut, when I was poking around in the code, it seems like I had to make changes here to get the values to show up in auth/v3 ?","commit_id":"741ae9f1271abd9800786cd07a997b624c361d66"}],"keystoneclient/tests/v3/test_oauth1.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e1501dee9ff7397bd5ed25e816d9cff323748946","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        TEST_TOKEN \u003d \"abcdef\""},{"line_number":274,"context_line":"        self.stub_auth(json\u003doauth_token, subject_token\u003dTEST_TOKEN)"},{"line_number":275,"context_line":"        pdb.set_trace()"},{"line_number":276,"context_line":"        cs \u003d client.Client(consumer_key\u003dconsumer_key,"},{"line_number":277,"context_line":"                           consumer_secret\u003dconsumer_secret,"},{"line_number":278,"context_line":"                           access_key\u003daccess_key,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FqaQ%3D","line":275,"updated":"2014-03-04 19:40:45.000000000","message":"i would think this is how one should invoke the client side, when getting an oauth based token?","commit_id":"2747efb4f0df845c7ffe8e6768afb12cba40392d"}]}
