)]}'
{"keystone/common/config.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"9ff8a4bd31c40d78da22ce0897da0118e1e87591","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        cfg.BoolOpt(\u0027caching\u0027, default\u003dTrue,"},{"line_number":218,"context_line":"                    help\u003d\u0027Toggle for trust caching. This has no \u0027"},{"line_number":219,"context_line":"                         \u0027effect unless global caching is enabled.\u0027),"},{"line_number":220,"context_line":"        cfg.IntOpt(\u0027cache_time\u0027,"},{"line_number":221,"context_line":"                   help\u003d\u0027Time to cache trust data (in seconds). This has no \u0027"},{"line_number":222,"context_line":"                        \u0027effect unless global and trust caching are \u0027"},{"line_number":223,"context_line":"                        \u0027enabled.\u0027)],"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_fb3df229","line":220,"updated":"2014-08-12 15:39:07.000000000","message":"I think this actually needs to have a very short default. As written this would cache essentially forever. This is dangerous because switching from None to another value is nearly impossible unless you flush the entire cache.","commit_id":"1e15f757d7a7d9c4caaa217e8cf8e8a599946310"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"709500f2c3385db5052ddf27d39f699af5c6d947","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        cfg.StrOpt(\u0027driver\u0027,"},{"line_number":215,"context_line":"                   default\u003d\u0027keystone.trust.backends.sql.Trust\u0027,"},{"line_number":216,"context_line":"                   help\u003d\u0027Trust backend driver.\u0027),"},{"line_number":217,"context_line":"        cfg.BoolOpt(\u0027caching\u0027, default\u003dTrue,"},{"line_number":218,"context_line":"                    help\u003d\u0027Toggle for trust caching. This has no \u0027"},{"line_number":219,"context_line":"                         \u0027effect unless global caching is enabled.\u0027),"},{"line_number":220,"context_line":"        cfg.IntOpt(\u0027cache_time\u0027, default\u003d600,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_b7fbbb45","line":217,"updated":"2014-08-22 05:43:58.000000000","message":"i don\u0027t see why this option is needed?\n\nwhy not just check if global caching is on?\n\nyou don\u0027t actually use this option in your code.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8f3f59c5a4a9e8d7b9df798b4230a7f974efcd83","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        cfg.StrOpt(\u0027driver\u0027,"},{"line_number":215,"context_line":"                   default\u003d\u0027keystone.trust.backends.sql.Trust\u0027,"},{"line_number":216,"context_line":"                   help\u003d\u0027Trust backend driver.\u0027),"},{"line_number":217,"context_line":"        cfg.BoolOpt(\u0027caching\u0027, default\u003dTrue,"},{"line_number":218,"context_line":"                    help\u003d\u0027Toggle for trust caching. This has no \u0027"},{"line_number":219,"context_line":"                         \u0027effect unless global caching is enabled.\u0027),"},{"line_number":220,"context_line":"        cfg.IntOpt(\u0027cache_time\u0027, default\u003d600,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_0a9c460e","line":217,"in_reply_to":"1abeadc6_6a985a78","updated":"2014-08-22 06:18:31.000000000","message":"neat.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"ad62dd79f5d2c3c00b1390330c2adaedf3cb86e4","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        cfg.StrOpt(\u0027driver\u0027,"},{"line_number":215,"context_line":"                   default\u003d\u0027keystone.trust.backends.sql.Trust\u0027,"},{"line_number":216,"context_line":"                   help\u003d\u0027Trust backend driver.\u0027),"},{"line_number":217,"context_line":"        cfg.BoolOpt(\u0027caching\u0027, default\u003dTrue,"},{"line_number":218,"context_line":"                    help\u003d\u0027Toggle for trust caching. This has no \u0027"},{"line_number":219,"context_line":"                         \u0027effect unless global caching is enabled.\u0027),"},{"line_number":220,"context_line":"        cfg.IntOpt(\u0027cache_time\u0027, default\u003d600,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_6a985a78","line":217,"in_reply_to":"1abeadc6_b7fbbb45","updated":"2014-08-22 06:08:52.000000000","message":"We use this in our code. https://github.com/openstack/keystone/blob/master/keystone/common/cache/core.py#L178-L183 \nWe first check for global caching and then for individual sections for caching flag.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"}],"keystone/trust/core.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7029d4a011f606c4821fd5817a2cb5dec2a799f1","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d config.CONF"},{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":"SHOULD_CACHE \u003d cache.should_cache_fn(\u0027trust\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_54618a03","line":32,"updated":"2014-08-22 00:30:00.000000000","message":"revert the whitespace change on the previous line.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"4ba6aef0b51a54d262a63f43afd8afd8ae19cdc5","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d config.CONF"},{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":"SHOULD_CACHE \u003d cache.should_cache_fn(\u0027trust\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_36a8751f","line":32,"in_reply_to":"1abeadc6_54618a03","updated":"2014-11-26 05:04:35.000000000","message":"++","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"2af697c273e2fb60c74af356f3363e792f3506fd","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d config.CONF"},{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":"SHOULD_CACHE \u003d cache.should_cache_fn(\u0027trust\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_bcec542b","line":32,"in_reply_to":"5a890539_36a8751f","updated":"2014-12-13 13:30:56.000000000","message":"Will rebase it once https://review.openstack.org/#/c/113586/ is merged and revert this whitespace change.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7029d4a011f606c4821fd5817a2cb5dec2a799f1","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d config.CONF"},{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":"SHOULD_CACHE \u003d cache.should_cache_fn(\u0027trust\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def get_expiration_time():"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_f437f6fc","line":33,"updated":"2014-08-22 00:30:00.000000000","message":"give a name to the \u0027trust\u0027 magic string so that readers know what it\u0027s for without having to go looking for the docs.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"4ba6aef0b51a54d262a63f43afd8afd8ae19cdc5","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d config.CONF"},{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":"SHOULD_CACHE \u003d cache.should_cache_fn(\u0027trust\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def get_expiration_time():"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_966849f6","line":33,"in_reply_to":"1abeadc6_f437f6fc","updated":"2014-11-26 05:04:35.000000000","message":"Give the value a name or I would also be happy with calling this as a kwarg.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"098b804ec40ea16160178cbfe663c6588c3abaa8","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d config.CONF"},{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":"SHOULD_CACHE \u003d cache.should_cache_fn(\u0027trust\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def get_expiration_time():"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_400f692e","line":33,"in_reply_to":"1abeadc6_f437f6fc","updated":"2014-11-13 14:48:44.000000000","message":"Might be a good candidate for a comment too.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ce940a8bd7d6d141897de342a0282310c1784219","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d config.CONF"},{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":"SHOULD_CACHE \u003d cache.should_cache_fn(\u0027trust\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def get_expiration_time():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_d73d7990","line":33,"in_reply_to":"3a961159_3c9944c4","updated":"2014-12-13 18:36:23.000000000","message":"rebase this review onto that one if you think it\u0027ll be better.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"2e440292eb85d057583316cf537b7ff7b71951a8","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d config.CONF"},{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":"SHOULD_CACHE \u003d cache.should_cache_fn(\u0027trust\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def get_expiration_time():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_d7c01952","line":33,"in_reply_to":"3a961159_d73d7990","updated":"2014-12-13 18:52:17.000000000","message":"That patch is in merge conflict right now. I think Morgan is working on that. Once that is merged I will change code for this patch use that.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"2af697c273e2fb60c74af356f3363e792f3506fd","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d config.CONF"},{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":"SHOULD_CACHE \u003d cache.should_cache_fn(\u0027trust\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def get_expiration_time():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_3c9944c4","line":33,"in_reply_to":"5a890539_966849f6","updated":"2014-12-13 13:30:56.000000000","message":"This is going to look better once https://review.openstack.org/#/c/113586/ is merged.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"7c0aa0c2d977b0bbca59dd5667d9ff6209047895","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self.driver.delete_trust(trust_id)"},{"line_number":74,"context_line":"        self.get_trust.invalidate(self, trust_id)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @cache.on_arguments(should_cache_fn\u003dSHOULD_CACHE,"},{"line_number":77,"context_line":"                        expiration_time\u003dget_expiration_time)"},{"line_number":78,"context_line":"    def get_trust(self, trust_id):"},{"line_number":79,"context_line":"        return self.driver.get_trust(trust_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_166530ae","line":76,"updated":"2014-11-26 10:22:18.000000000","message":"Not sure whether we need SHOULD_CACHE in the global scope.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"2af697c273e2fb60c74af356f3363e792f3506fd","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self.driver.delete_trust(trust_id)"},{"line_number":74,"context_line":"        self.get_trust.invalidate(self, trust_id)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @cache.on_arguments(should_cache_fn\u003dSHOULD_CACHE,"},{"line_number":77,"context_line":"                        expiration_time\u003dget_expiration_time)"},{"line_number":78,"context_line":"    def get_trust(self, trust_id):"},{"line_number":79,"context_line":"        return self.driver.get_trust(trust_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_5c94508a","line":76,"in_reply_to":"5a890539_166530ae","updated":"2014-12-13 13:30:56.000000000","message":"This is going to look better once https://review.openstack.org/#/c/113586/ is merged.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7029d4a011f606c4821fd5817a2cb5dec2a799f1","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def consume_use(self, trust_id):"},{"line_number":82,"context_line":"        self.driver.consume_use(trust_id)"},{"line_number":83,"context_line":"        self.get_trust.invalidate(self, trust_id)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_ff050f11","line":83,"updated":"2014-08-22 00:30:00.000000000","message":"suggestion - this could be handled with a decorator.","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"2af697c273e2fb60c74af356f3363e792f3506fd","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def consume_use(self, trust_id):"},{"line_number":82,"context_line":"        self.driver.consume_use(trust_id)"},{"line_number":83,"context_line":"        self.get_trust.invalidate(self, trust_id)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_7c8f4c75","line":83,"in_reply_to":"1abeadc6_ff050f11","updated":"2014-12-13 13:30:56.000000000","message":"Thanks for the suggestion. Isn\u0027t a decorator overkill for just this one statement?","commit_id":"c3198ca2831c7f9e70a4f3002f18eb1beecdd056"}]}
