)]}'
{"oslo_cache/_opts.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"4af2350b4dda02f9b1ce5ac01f36387dc69c7e1f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                   help\u003d\u0027Number of seconds that an operation will wait to get \u0027"},{"line_number":95,"context_line":"                        \u0027a memcache client connection.\u0027),"},{"line_number":96,"context_line":"        cfg.StrOpt(\u0027invalidation_strategy\u0027,"},{"line_number":97,"context_line":"                   default\u003d_DEFAULT_INVALIDATION_STRATEGY,"},{"line_number":98,"context_line":"                   help\u003d\u0027Dogpile.cache region invalidation strategy. \u0027"},{"line_number":99,"context_line":"                        \u0027\"default\" and \"backend\" strategies are available.\u0027),"},{"line_number":100,"context_line":"    ],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a57fde8_166d8804","line":97,"range":{"start_line":97,"start_character":0,"end_line":97,"end_character":58},"updated":"2017-01-12 15:46:52.000000000","message":"Use parameter choices \u003d (\u0027default\u0027, \u0027backend\u0027) to strict input value.","commit_id":"1af404956a3c3830c696155bfdae7b86ca82e22f"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"cf96d1f93e8dd302fdb9a019bf65bc3d7007b82e","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                   help\u003d\u0027Number of seconds that an operation will wait to get \u0027"},{"line_number":95,"context_line":"                        \u0027a memcache client connection.\u0027),"},{"line_number":96,"context_line":"        cfg.StrOpt(\u0027invalidation_strategy\u0027,"},{"line_number":97,"context_line":"                   default\u003d_DEFAULT_INVALIDATION_STRATEGY,"},{"line_number":98,"context_line":"                   help\u003d\u0027Dogpile.cache region invalidation strategy. \u0027"},{"line_number":99,"context_line":"                        \u0027\"default\" and \"backend\" strategies are available.\u0027),"},{"line_number":100,"context_line":"    ],"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_77e9cde5","line":97,"range":{"start_line":97,"start_character":0,"end_line":97,"end_character":58},"in_reply_to":"9a57fde8_166d8804","updated":"2017-01-17 17:35:11.000000000","message":"++ that way we can avoid the exception further down. I prefer to limit options than to raise an exception due to config explicitly in the code.","commit_id":"1af404956a3c3830c696155bfdae7b86ca82e22f"}],"oslo_cache/core.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"3f52ab90fdc5fd47139cd443888f635648fa0372","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"class DistributedRegionInvalidationStrategy("},{"line_number":177,"context_line":"        dogpile.cache.RegionInvalidationStrategy):"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def __init__(self, region):"},{"line_number":180,"context_line":"        self.region \u003d region"},{"line_number":181,"context_line":"        region_key \u003d \u0027_RegionExpiration.%s.%s\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_27f7dbf6","line":178,"updated":"2016-08-12 16:47:57.000000000","message":"docstring is necessary","commit_id":"52c99108dfd4a990d314febd3825a7b668c2f300"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"d8f72250a4273639bc3fb58e38942caaf93825eb","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"class DistributedRegionInvalidationStrategy("},{"line_number":177,"context_line":"        dogpile.cache.RegionInvalidationStrategy):"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def __init__(self, region):"},{"line_number":180,"context_line":"        self.region \u003d region"},{"line_number":181,"context_line":"        region_key \u003d \u0027_RegionExpiration.%s.%s\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_79fd1ab0","line":178,"in_reply_to":"9ad45d7e_27f7dbf6","updated":"2016-08-18 17:39:17.000000000","message":"Done","commit_id":"52c99108dfd4a990d314febd3825a7b668c2f300"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"3f52ab90fdc5fd47139cd443888f635648fa0372","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def __init__(self, region):"},{"line_number":180,"context_line":"        self.region \u003d region"},{"line_number":181,"context_line":"        region_key \u003d \u0027_RegionExpiration.%s.%s\u0027"},{"line_number":182,"context_line":"        self.soft_region_key \u003d region_key % (\u0027soft\u0027, str(self.region.name))"},{"line_number":183,"context_line":"        self.hard_region_key \u003d region_key % (\u0027hard\u0027, str(self.region.name))"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_c7b87f2d","line":182,"range":{"start_line":182,"start_character":57,"end_line":182,"end_character":73},"updated":"2016-08-12 16:47:57.000000000","message":"there is no requirement for the region to have a name. Many regions are nameless, for example in keystone.\n\nOne of the options here would be to raise an exception if name is None.\nAnother option is to rely on some other attribute.\n\nI\u0027d vote for the first one.","commit_id":"52c99108dfd4a990d314febd3825a7b668c2f300"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"d8f72250a4273639bc3fb58e38942caaf93825eb","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def __init__(self, region):"},{"line_number":180,"context_line":"        self.region \u003d region"},{"line_number":181,"context_line":"        region_key \u003d \u0027_RegionExpiration.%s.%s\u0027"},{"line_number":182,"context_line":"        self.soft_region_key \u003d region_key % (\u0027soft\u0027, str(self.region.name))"},{"line_number":183,"context_line":"        self.hard_region_key \u003d region_key % (\u0027hard\u0027, str(self.region.name))"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_d92ece41","line":182,"range":{"start_line":182,"start_character":57,"end_line":182,"end_character":73},"in_reply_to":"9ad45d7e_c7b87f2d","updated":"2016-08-18 17:39:17.000000000","message":"Done","commit_id":"52c99108dfd4a990d314febd3825a7b668c2f300"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"3f52ab90fdc5fd47139cd443888f635648fa0372","unresolved":false,"context_lines":[{"line_number":291,"context_line":"            _LOG.debug(\"Adding cache-proxy \u0027%s\u0027 to backend.\", class_path)"},{"line_number":292,"context_line":"            region.wrap(cls)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        invalidator \u003d DistributedRegionInvalidationStrategy(region)"},{"line_number":295,"context_line":"        region.region_invalidator \u003d invalidator"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    return region"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_670f132f","line":294,"range":{"start_line":294,"start_character":8,"end_line":294,"end_character":67},"updated":"2016-08-12 16:47:57.000000000","message":"it should not be done by default. I suggest to leave it to users whether to use the strategy or not.\n\nLets add an argument to configure_cache_region that would control that.","commit_id":"52c99108dfd4a990d314febd3825a7b668c2f300"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"d8f72250a4273639bc3fb58e38942caaf93825eb","unresolved":false,"context_lines":[{"line_number":291,"context_line":"            _LOG.debug(\"Adding cache-proxy \u0027%s\u0027 to backend.\", class_path)"},{"line_number":292,"context_line":"            region.wrap(cls)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        invalidator \u003d DistributedRegionInvalidationStrategy(region)"},{"line_number":295,"context_line":"        region.region_invalidator \u003d invalidator"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    return region"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_2d3995d9","line":294,"range":{"start_line":294,"start_character":8,"end_line":294,"end_character":67},"in_reply_to":"9ad45d7e_670f132f","updated":"2016-08-18 17:39:17.000000000","message":"Done","commit_id":"52c99108dfd4a990d314febd3825a7b668c2f300"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"3f52ab90fdc5fd47139cd443888f635648fa0372","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            region.wrap(cls)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        invalidator \u003d DistributedRegionInvalidationStrategy(region)"},{"line_number":295,"context_line":"        region.region_invalidator \u003d invalidator"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    return region"},{"line_number":298,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_47b3ef0a","line":295,"range":{"start_line":295,"start_character":8,"end_line":295,"end_character":47},"updated":"2016-08-12 16:47:57.000000000","message":"isn\u0027t there some kind of setter method for that in `region`?","commit_id":"52c99108dfd4a990d314febd3825a7b668c2f300"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"d8f72250a4273639bc3fb58e38942caaf93825eb","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            region.wrap(cls)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        invalidator \u003d DistributedRegionInvalidationStrategy(region)"},{"line_number":295,"context_line":"        region.region_invalidator \u003d invalidator"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    return region"},{"line_number":298,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_2daeb5e7","line":295,"range":{"start_line":295,"start_character":8,"end_line":295,"end_character":47},"in_reply_to":"9ad45d7e_47b3ef0a","updated":"2016-08-18 17:39:17.000000000","message":"No, this is a workaround as CacheRegion.configure_from_config has no idea about invalidation strategies.","commit_id":"52c99108dfd4a990d314febd3825a7b668c2f300"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"cf96d1f93e8dd302fdb9a019bf65bc3d7007b82e","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    def __init__(self, region):"},{"line_number":182,"context_line":"        self.region \u003d region"},{"line_number":183,"context_line":"        region_key \u003d \u0027_RegionExpiration.%s.%s\u0027"},{"line_number":184,"context_line":"        region_name \u003d str(self.region.name)"},{"line_number":185,"context_line":"        if not region_name:"},{"line_number":186,"context_line":"            raise exception.NamelessRegion("},{"line_number":187,"context_line":"                _(\u0027Region has no name to identify it in distributed \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_170c09ec","line":184,"updated":"2017-01-17 17:35:11.000000000","message":"Is this sufficient? This feels like something we should fix higher up and make region.name *always* a string?","commit_id":"1af404956a3c3830c696155bfdae7b86ca82e22f"}]}
