)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"24572285a192fe59e7ffb7bed2472d845ed9fe44","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Dynamic Policies Fetch and Cache"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds to Middleware the capability to fetch the"},{"line_number":10,"context_line":"Dynamic Policy for the current endpointd and"},{"line_number":11,"context_line":"overlay the existing local policy file with it,"},{"line_number":12,"context_line":"using the oslo.policy library."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a50d1a3_4abd2467","line":10,"updated":"2015-07-21 06:03:07.000000000","message":"endpoint","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"daa60702d986bbbcf10440ddfedc0ecee02b2e0f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Dynamic Policies Fetch and Cache"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds to Middleware the capability to fetch the"},{"line_number":10,"context_line":"Dynamic Policy for the current endpointd and"},{"line_number":11,"context_line":"overlay the existing local policy file with it,"},{"line_number":12,"context_line":"using the oslo.policy library."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a50d1a3_bc0e0b39","line":10,"in_reply_to":"3a50d1a3_4abd2467","updated":"2015-07-23 17:44:00.000000000","message":"Done","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"}],"keystonemiddleware/auth_token/__init__.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"60e0adbaaaadc4a0ed2ac747f6d082a28ccf44f9","unresolved":false,"context_lines":[{"line_number":291,"context_line":"               \u0027 duration may significantly reduce performance.\u0027),"},{"line_number":292,"context_line":"    cfg.StrOpt(\u0027policy_id\u0027,"},{"line_number":293,"context_line":"               default\u003dNone,"},{"line_number":294,"context_line":"               help\u003d\u0027Defines the Dynamic Policy to fetch and cache.\u0027),"},{"line_number":295,"context_line":"    cfg.IntOpt(\u0027policy_cache_time\u0027,"},{"line_number":296,"context_line":"               default\u003d300,"},{"line_number":297,"context_line":"               help\u003d\u0027Determines the Dynamic Policy freshness (in seconds).\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_fc501a34","line":294,"updated":"2015-07-22 19:44:29.000000000","message":"(nit) not sure i\u0027d mention caching here at all. seems like an unrelated implementation detail","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"daa60702d986bbbcf10440ddfedc0ecee02b2e0f","unresolved":false,"context_lines":[{"line_number":291,"context_line":"               \u0027 duration may significantly reduce performance.\u0027),"},{"line_number":292,"context_line":"    cfg.StrOpt(\u0027policy_id\u0027,"},{"line_number":293,"context_line":"               default\u003dNone,"},{"line_number":294,"context_line":"               help\u003d\u0027Defines the Dynamic Policy to fetch and cache.\u0027),"},{"line_number":295,"context_line":"    cfg.IntOpt(\u0027policy_cache_time\u0027,"},{"line_number":296,"context_line":"               default\u003d300,"},{"line_number":297,"context_line":"               help\u003d\u0027Determines the Dynamic Policy freshness (in seconds).\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_170235b4","line":294,"in_reply_to":"3a50d1a3_fc501a34","updated":"2015-07-23 17:44:00.000000000","message":"Actually I removed this option in favor of specifying the endpoint_ids in the next patch set.","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"60e0adbaaaadc4a0ed2ac747f6d082a28ccf44f9","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    cfg.StrOpt(\u0027policy_id\u0027,"},{"line_number":293,"context_line":"               default\u003dNone,"},{"line_number":294,"context_line":"               help\u003d\u0027Defines the Dynamic Policy to fetch and cache.\u0027),"},{"line_number":295,"context_line":"    cfg.IntOpt(\u0027policy_cache_time\u0027,"},{"line_number":296,"context_line":"               default\u003d300,"},{"line_number":297,"context_line":"               help\u003d\u0027Determines the Dynamic Policy freshness (in seconds).\u0027),"},{"line_number":298,"context_line":"    cfg.StrOpt(\u0027memcache_security_strategy\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_a2e26c2d","line":295,"updated":"2015-07-22 19:44:29.000000000","message":"Is there any reason we are not letting the server decide this?","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"daa60702d986bbbcf10440ddfedc0ecee02b2e0f","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    cfg.StrOpt(\u0027policy_id\u0027,"},{"line_number":293,"context_line":"               default\u003dNone,"},{"line_number":294,"context_line":"               help\u003d\u0027Defines the Dynamic Policy to fetch and cache.\u0027),"},{"line_number":295,"context_line":"    cfg.IntOpt(\u0027policy_cache_time\u0027,"},{"line_number":296,"context_line":"               default\u003d300,"},{"line_number":297,"context_line":"               help\u003d\u0027Determines the Dynamic Policy freshness (in seconds).\u0027),"},{"line_number":298,"context_line":"    cfg.StrOpt(\u0027memcache_security_strategy\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_b727c161","line":295,"in_reply_to":"3a50d1a3_a2e26c2d","updated":"2015-07-23 17:44:00.000000000","message":"The server will decide, this is only the first value to be based on...\n\nhmmm, actually we don\u0027t need a first value here, as it will be coming with the first response.\n\nGreat point!","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"60e0adbaaaadc4a0ed2ac747f6d082a28ccf44f9","unresolved":false,"context_lines":[{"line_number":630,"context_line":"                policy_id\u003dpolicy_id)"},{"line_number":631,"context_line":"        else:"},{"line_number":632,"context_line":"            self.log.warning("},{"line_number":633,"context_line":"                _LW(\u0027The policy_id config is not defined. Dynamic Policy fetch\u0027"},{"line_number":634,"context_line":"                    \u0027 and cache is being ignored for this endpoint.\u0027))"},{"line_number":635,"context_line":"            self._policy \u003d None"},{"line_number":636,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_1f604ea4","line":633,"updated":"2015-07-22 19:44:29.000000000","message":"same nit here as above","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"daa60702d986bbbcf10440ddfedc0ecee02b2e0f","unresolved":false,"context_lines":[{"line_number":630,"context_line":"                policy_id\u003dpolicy_id)"},{"line_number":631,"context_line":"        else:"},{"line_number":632,"context_line":"            self.log.warning("},{"line_number":633,"context_line":"                _LW(\u0027The policy_id config is not defined. Dynamic Policy fetch\u0027"},{"line_number":634,"context_line":"                    \u0027 and cache is being ignored for this endpoint.\u0027))"},{"line_number":635,"context_line":"            self._policy \u003d None"},{"line_number":636,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_5723dd55","line":633,"in_reply_to":"3a50d1a3_1f604ea4","updated":"2015-07-23 17:44:00.000000000","message":"Done","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8bc83fa4c67e0a1570d2664eb016e953aae50688","unresolved":false,"context_lines":[{"line_number":737,"context_line":"            self.log.debug(\u0027Received request from %s\u0027 %"},{"line_number":738,"context_line":"                           request.token_auth._log_format)"},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"        if self._policy is not None:"},{"line_number":741,"context_line":"            self._policy.update_policy()"},{"line_number":742,"context_line":""},{"line_number":743,"context_line":"    def process_response(self, response):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_76b22de7","line":740,"updated":"2015-08-17 07:23:15.000000000","message":"Does this mean update_policy will be called each time authtoken filter is invoked? Can we do this on-demand or only in case the policy is out of sync?","commit_id":"a985cc71d141c04ede44004922ad3fbe4998a040"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"226e074ad2ea9bfe055b99b2913fe56bec5615a6","unresolved":false,"context_lines":[{"line_number":737,"context_line":"            self.log.debug(\u0027Received request from %s\u0027 %"},{"line_number":738,"context_line":"                           request.token_auth._log_format)"},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"        if self._policy is not None:"},{"line_number":741,"context_line":"            self._policy.update_policy()"},{"line_number":742,"context_line":""},{"line_number":743,"context_line":"    def process_response(self, response):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_96ed7990","line":740,"in_reply_to":"1a4dcd0f_76b22de7","updated":"2015-08-17 07:38:42.000000000","message":"I think I get the answer, this is controlled by this boolean `enable_centralized_policy`.","commit_id":"a985cc71d141c04ede44004922ad3fbe4998a040"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"07b2d4ca072266817a201ee8be0e1707846e7e39","unresolved":false,"context_lines":[{"line_number":737,"context_line":"            self.log.debug(\u0027Received request from %s\u0027 %"},{"line_number":738,"context_line":"                           request.token_auth._log_format)"},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"        if self._policy is not None:"},{"line_number":741,"context_line":"            self._policy.update_policy()"},{"line_number":742,"context_line":""},{"line_number":743,"context_line":"    def process_response(self, response):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_ca6e0f96","line":740,"in_reply_to":"1a4dcd0f_96ed7990","updated":"2015-08-27 16:51:25.000000000","message":"++","commit_id":"a985cc71d141c04ede44004922ad3fbe4998a040"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c91f04cfc62fd9ce1a0b45a05e14e5c62e05eda","unresolved":false,"context_lines":[{"line_number":661,"context_line":"                      \u0027which is where the Policy API is available.\u0027))"},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"            self._policy \u003d _policy.Policy("},{"line_number":664,"context_line":"                conf\u003dCONF,"},{"line_number":665,"context_line":"                endpoint_id\u003dendpoint_id,"},{"line_number":666,"context_line":"                identity_server\u003dself._identity_server)"},{"line_number":667,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_21426d69","line":664,"updated":"2015-09-09 03:21:30.000000000","message":"use \u0027conf\u0027 instead of CONF?","commit_id":"682a616c6d09f53de717551093d2681ab651c5e4"}],"keystonemiddleware/auth_token/_policy.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"24572285a192fe59e7ffb7bed2472d845ed9fe44","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_policy import policy"},{"line_number":20,"context_line":"from oslo_serialization import jsonutils"},{"line_number":21,"context_line":"from oslo_utils import timeutils"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class Policy(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_4a61a438","line":21,"updated":"2015-07-21 06:03:07.000000000","message":"this should move to the second section, as it is an external library","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"daa60702d986bbbcf10440ddfedc0ecee02b2e0f","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_policy import policy"},{"line_number":20,"context_line":"from oslo_serialization import jsonutils"},{"line_number":21,"context_line":"from oslo_utils import timeutils"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class Policy(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_d732df0f","line":21,"in_reply_to":"3a50d1a3_4a61a438","updated":"2015-07-23 17:44:00.000000000","message":"Done","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"60e0adbaaaadc4a0ed2ac747f6d082a28ccf44f9","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_policy import policy"},{"line_number":20,"context_line":"from oslo_serialization import jsonutils"},{"line_number":21,"context_line":"from oslo_utils import timeutils"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class Policy(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_bfcd9a86","line":21,"in_reply_to":"3a50d1a3_4a61a438","updated":"2015-07-22 19:44:29.000000000","message":"Yes, it looks like section 2 and 3 are reversed.","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"24572285a192fe59e7ffb7bed2472d845ed9fe44","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        self._cache_timeout \u003d cache_timeout"},{"line_number":28,"context_line":"        self._enforcer \u003d policy.Enforcer(conf)"},{"line_number":29,"context_line":"        self._identity_server \u003d identity_server"},{"line_number":30,"context_line":"        self._log \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":"        self._policy_id \u003d policy_id"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        self._fetched_time \u003d datetime.datetime.min"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_eafe7037","line":30,"updated":"2015-07-21 06:03:07.000000000","message":"why is the logger a private method instead of being a constant?","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"daa60702d986bbbcf10440ddfedc0ecee02b2e0f","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        self._cache_timeout \u003d cache_timeout"},{"line_number":28,"context_line":"        self._enforcer \u003d policy.Enforcer(conf)"},{"line_number":29,"context_line":"        self._identity_server \u003d identity_server"},{"line_number":30,"context_line":"        self._log \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":"        self._policy_id \u003d policy_id"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        self._fetched_time \u003d datetime.datetime.min"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_1ab70e3b","line":30,"in_reply_to":"3a50d1a3_eafe7037","updated":"2015-07-23 17:44:00.000000000","message":"It\u0027s done this way in other places in this code. I am just following the pattern.\n\nSee \nhttps://github.com/openstack/keystonemiddleware/blob/master/keystonemiddleware/auth_token/_revocations.py#L35\n\nand\n\nhttps://github.com/openstack/keystonemiddleware/blob/master/keystonemiddleware/auth_token/_identity.py#L138","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"60e0adbaaaadc4a0ed2ac747f6d082a28ccf44f9","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        if timeutils.utcnow() \u003e expiration_time:"},{"line_number":39,"context_line":"            self._log.info(_LI(\u0027Policy cache timeout reached, updating Dynamic\u0027"},{"line_number":40,"context_line":"                               \u0027 Policy %s.\u0027) % self._policy_id)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"            try:"},{"line_number":43,"context_line":"                result \u003d self._identity_server.fetch_policy(self._policy_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_7fa87277","line":40,"updated":"2015-07-22 19:44:29.000000000","message":"Don\u0027t use % in log messages. Use a comma instead.","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"daa60702d986bbbcf10440ddfedc0ecee02b2e0f","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        if timeutils.utcnow() \u003e expiration_time:"},{"line_number":39,"context_line":"            self._log.info(_LI(\u0027Policy cache timeout reached, updating Dynamic\u0027"},{"line_number":40,"context_line":"                               \u0027 Policy %s.\u0027) % self._policy_id)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"            try:"},{"line_number":43,"context_line":"                result \u003d self._identity_server.fetch_policy(self._policy_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_37c2d153","line":40,"in_reply_to":"3a50d1a3_7fa87277","updated":"2015-07-23 17:44:00.000000000","message":"k, will do in the next patch set (after the one I just sent), haven\u0027t seen your messges before, sorry","commit_id":"001f40b5ccc033fa299333ebb5442d858587bfaf"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"9fab984019f26d44cf82d39b2f27d95dccd3291d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                    break"},{"line_number":56,"context_line":"                finally:"},{"line_number":57,"context_line":"                    i +\u003d 1"},{"line_number":58,"context_line":"                    print i"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_92f3480a","line":58,"updated":"2015-07-27 10:44:02.000000000","message":"i think this was for you internal tests ? :-)","commit_id":"db6ebe012c7a53953f6b60d87cb0c259e4f72c0d"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"691f2be3708cf5dfae47f1ed14b06bdd9c0db522","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                    break"},{"line_number":56,"context_line":"                finally:"},{"line_number":57,"context_line":"                    i +\u003d 1"},{"line_number":58,"context_line":"                    print i"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_0ddcfd10","line":58,"in_reply_to":"3a50d1a3_92f3480a","updated":"2015-07-27 11:07:05.000000000","message":"oh","commit_id":"db6ebe012c7a53953f6b60d87cb0c259e4f72c0d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c91f04cfc62fd9ce1a0b45a05e14e5c62e05eda","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            result \u003d self._identity_server.fetch_policy_by_endpoint("},{"line_number":32,"context_line":"                self._endpoint_id)"},{"line_number":33,"context_line":"        except exc.PolicyError as e:"},{"line_number":34,"context_line":"            self._log.error(e.args[0])"},{"line_number":35,"context_line":"        else:"},{"line_number":36,"context_line":"            dynamic_policy \u003d jsonutils.loads(result.blob)"},{"line_number":37,"context_line":"            self._enforcer.update_dynamic_policy(dynamic_policy)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_a1a8bd21","line":34,"updated":"2015-09-09 03:21:30.000000000","message":"while you have the log, maybe log that the policy was updated","commit_id":"682a616c6d09f53de717551093d2681ab651c5e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c91f04cfc62fd9ce1a0b45a05e14e5c62e05eda","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        except exc.PolicyError as e:"},{"line_number":34,"context_line":"            self._log.error(e.args[0])"},{"line_number":35,"context_line":"        else:"},{"line_number":36,"context_line":"            dynamic_policy \u003d jsonutils.loads(result.blob)"},{"line_number":37,"context_line":"            self._enforcer.update_dynamic_policy(dynamic_policy)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_8198191d","line":36,"updated":"2015-09-09 03:21:30.000000000","message":"s/dynamic_policy/centralized_policy","commit_id":"682a616c6d09f53de717551093d2681ab651c5e4"}],"keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8bc83fa4c67e0a1570d2664eb016e953aae50688","unresolved":false,"context_lines":[{"line_number":611,"context_line":"                          conf\u003d{\u0027enable_centralized_policy\u0027: True,"},{"line_number":612,"context_line":"                                \u0027endpoint_id\u0027: uuid.uuid4().hex,"},{"line_number":613,"context_line":"                                \u0027auth_version\u0027: \u0027v2.0\u0027})"},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"    def test_config_revocation_cache_timeout(self):"},{"line_number":616,"context_line":"        conf \u003d {"},{"line_number":617,"context_line":"            \u0027revocation_cache_time\u0027: \u002724\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_a3b5d9d0","line":614,"updated":"2015-08-17 07:23:15.000000000","message":"pls add a testcase with correct config here, the testcases above doesn\u0027t show how it will work.","commit_id":"a985cc71d141c04ede44004922ad3fbe4998a040"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"07b2d4ca072266817a201ee8be0e1707846e7e39","unresolved":false,"context_lines":[{"line_number":611,"context_line":"                          conf\u003d{\u0027enable_centralized_policy\u0027: True,"},{"line_number":612,"context_line":"                                \u0027endpoint_id\u0027: uuid.uuid4().hex,"},{"line_number":613,"context_line":"                                \u0027auth_version\u0027: \u0027v2.0\u0027})"},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"    def test_config_revocation_cache_timeout(self):"},{"line_number":616,"context_line":"        conf \u003d {"},{"line_number":617,"context_line":"            \u0027revocation_cache_time\u0027: \u002724\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_0ab407cf","line":614,"in_reply_to":"1a4dcd0f_a3b5d9d0","updated":"2015-08-27 16:51:25.000000000","message":"Done","commit_id":"a985cc71d141c04ede44004922ad3fbe4998a040"}]}
