)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"e35799337d7240c005a3ec5a180a867b2dd131d7","unresolved":false,"context_lines":[{"line_number":11,"context_line":"for a bind check because the next time the token is used the bind might"},{"line_number":12,"context_line":"be valid."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"As part of the split of auth_token to make it useful for keystone we"},{"line_number":15,"context_line":"want to separate the logic of what is involved in fetching a token and"},{"line_number":16,"context_line":"how you validate it afterwards."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ba3cc151_902620b9","line":14,"updated":"2015-06-29 17:56:12.000000000","message":"If it is a part of something, is there any bp/spec proposed?","commit_id":"612ae20f2b934860f6458ff5a5b59269f374d08f"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"4e83e08fc91a47f5f3c77e97587de9c213f45e92","unresolved":false,"context_lines":[{"line_number":21,"context_line":"validity. This removes some tests that check specifically that an"},{"line_number":22,"context_line":"invalid value is cached if a token has expired."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This presents a seperate _fetch_token and _validate_token steps. The"},{"line_number":25,"context_line":"_fetch_token step will need to be made public in the future to allow it"},{"line_number":26,"context_line":"to be customized to keystone or other subclasses."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ba3cc151_25f6f88f","line":24,"updated":"2015-06-29 17:55:07.000000000","message":"s/seperate/separate/","commit_id":"612ae20f2b934860f6458ff5a5b59269f374d08f"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"4e83e08fc91a47f5f3c77e97587de9c213f45e92","unresolved":false,"context_lines":[{"line_number":22,"context_line":"invalid value is cached if a token has expired."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This presents a seperate _fetch_token and _validate_token steps. The"},{"line_number":25,"context_line":"_fetch_token step will need to be made public in the future to allow it"},{"line_number":26,"context_line":"to be customized to keystone or other subclasses."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: Icbd44f5edbeadb1a52cccf2a481a1e861b0de120"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ba3cc151_45353c44","line":25,"updated":"2015-06-29 17:55:07.000000000","message":"why don\u0027t make _fetch_token public right now?","commit_id":"612ae20f2b934860f6458ff5a5b59269f374d08f"}],"keystonemiddleware/auth_token/__init__.py":[{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"4e83e08fc91a47f5f3c77e97587de9c213f45e92","unresolved":false,"context_lines":[{"line_number":500,"context_line":"        self._confirm_token_bind(auth_ref, request)"},{"line_number":501,"context_line":"        return auth_ref"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"    def _fetch_token(self, token):"},{"line_number":504,"context_line":"        \"\"\"Fetch the token data based on the value in the header."},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        Retrieve the data associated with the token value that was in the"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_65172052","line":503,"updated":"2015-06-29 17:55:07.000000000","message":"This method should be abstract, so as base class grows it\u0027s time to extract abstract base class. I personally don\u0027t like the idea of deep inheritance, but in this case abstract base will give us a kind of an interface.","commit_id":"612ae20f2b934860f6458ff5a5b59269f374d08f"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"3edded88298712cd462adab237eb80c9c409c427","unresolved":false,"context_lines":[{"line_number":589,"context_line":""},{"line_number":590,"context_line":"        return response"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"    def _get_user_token_from_request(self, request):"},{"line_number":593,"context_line":"        \"\"\"Get token id from request."},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"        :param env: wsgi request environment"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_b2ec2ff4","side":"PARENT","line":592,"updated":"2015-07-07 23:09:49.000000000","message":"why are we removing this?","commit_id":"f0ad77c0600af0558434cfc795f16acbf5dc4ad8"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"3edded88298712cd462adab237eb80c9c409c427","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        try:"},{"line_number":455,"context_line":"            return data, access.AccessInfo.factory(body\u003ddata, auth_token\u003dtoken)"},{"line_number":456,"context_line":"        except Exception:"},{"line_number":457,"context_line":"            self.log.debug(\u0027Invalid token contents.\u0027, exc_info\u003dTrue)"},{"line_number":458,"context_line":"            raise exc.InvalidToken(_(\u0027Token authorization failed\u0027))"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    def _fetch_token(self, token):"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_f2463720","line":457,"updated":"2015-07-07 23:09:49.000000000","message":"debug? I would think this is \u0027error\u0027, no? Also, if we are going to log debug, may as well log the \u0027data\u0027.","commit_id":"48661fea1751614edd408b52a1b912201590d055"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"3edded88298712cd462adab237eb80c9c409c427","unresolved":false,"context_lines":[{"line_number":562,"context_line":"                if not self._delay_auth_decision:"},{"line_number":563,"context_line":"                    self.log.debug(\u0027Headers: %s\u0027, dict(request.headers))"},{"line_number":564,"context_line":"                msg \u003d _(\u0027Unable to find token in headers\u0027)"},{"line_number":565,"context_line":"                raise exc.InvalidToken(msg)"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"            data, user_auth_ref \u003d self._do_fetch_token(request.user_token)"},{"line_number":568,"context_line":"            self._validate_token(user_auth_ref)"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_12b4fbef","line":565,"updated":"2015-07-07 23:09:49.000000000","message":"I like self._get_user_token_from_request() better.","commit_id":"48661fea1751614edd408b52a1b912201590d055"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"3edded88298712cd462adab237eb80c9c409c427","unresolved":false,"context_lines":[{"line_number":588,"context_line":"                _ignore, serv_auth_ref \u003d self._do_fetch_token("},{"line_number":589,"context_line":"                    request.service_token)"},{"line_number":590,"context_line":"                self._validate_token(serv_auth_ref)"},{"line_number":591,"context_line":"                self._confirm_token_bind(serv_auth_ref, request)"},{"line_number":592,"context_line":"            except exc.InvalidToken:"},{"line_number":593,"context_line":"                if self._delay_auth_decision:"},{"line_number":594,"context_line":"                    self.log.info("}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_f2f3979d","line":591,"updated":"2015-07-07 23:09:49.000000000","message":"Interesting. I would imagine binding only happens one request at a time. So that\u0027s either for user_token or service_token, but not both.","commit_id":"48661fea1751614edd408b52a1b912201590d055"}],"keystonemiddleware/auth_token/_identity.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"3edded88298712cd462adab237eb80c9c409c427","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            msg \u003d _(\u0027Failed to fetch token data from identity server\u0027)"},{"line_number":109,"context_line":"            raise exc.InvalidToken(msg)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        return {\u0027token\u0027: auth_ref}"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _fetch_signing_cert(self):"},{"line_number":114,"context_line":"        return self._client.simple_cert.get_certificates()"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_12f39b0b","line":111,"updated":"2015-07-07 23:09:49.000000000","message":"I smell refactoring. Line 106-111 looks the same as line 77-82.","commit_id":"48661fea1751614edd408b52a1b912201590d055"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"3edded88298712cd462adab237eb80c9c409c427","unresolved":false,"context_lines":[{"line_number":229,"context_line":"            return auth_ref"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        msg \u003d _(\u0027Failed to fetch token data from identity server\u0027)"},{"line_number":232,"context_line":"        raise exc.InvalidToken(msg)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    def fetch_revocation_list(self):"},{"line_number":235,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_92becbfd","line":232,"updated":"2015-07-07 23:09:49.000000000","message":"doesn\u0027t seem like we ever going to get to these two lines","commit_id":"48661fea1751614edd408b52a1b912201590d055"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"81b100576eeda16ce3b902fd1703657d07932418","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                e.http_status)"},{"line_number":227,"context_line":"            self._LOG.warn(_LW(\u0027Identity response: %s\u0027), e.response.text)"},{"line_number":228,"context_line":"        else:"},{"line_number":229,"context_line":"            return auth_ref"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        msg \u003d _(\u0027Failed to fetch token data from identity server\u0027)"},{"line_number":232,"context_line":"        raise exc.InvalidToken(msg)"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba3cc151_15b9becb","line":229,"updated":"2015-07-10 03:50:50.000000000","message":"This code is a bit hard to read. If you have a chance for another patch, may want to consider moving the return statement to 214 and get rid of the else part.","commit_id":"2e90cb6aa598201497caf3a683b4b3be89bc183f"}],"keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"43def6e71ee7c2f9f7152e969e0913aa349c3e0b","unresolved":false,"context_lines":[{"line_number":1055,"context_line":"        hash_algorithms \u003d [\u0027sha256\u0027]"},{"line_number":1056,"context_line":"        self._test_memcache_set_invalid_signed(hash_algorithms\u003dhash_algorithms,"},{"line_number":1057,"context_line":"                                               exp_mode\u003d\u0027sha256\u0027)"},{"line_number":1058,"context_line":""},{"line_number":1059,"context_line":"    def test_memcache_set_expired(self, extra_conf\u003d{}, extra_environ\u003d{}):"},{"line_number":1060,"context_line":"        token_cache_time \u003d 10"},{"line_number":1061,"context_line":"        conf \u003d {"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba3cc151_f224490f","side":"PARENT","line":1058,"updated":"2015-07-10 19:00:02.000000000","message":"?","commit_id":"4e7c4ed250a2c586f817c84fa47f5ed975a4b2c8"}]}
