)]}'
{"keystone/common/cache/core.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"203ff7c6fa7ac02c1ad67b533a7043eb9bcfa0ba","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    REGION_KEY_PREFIX \u003d \u0027\u003c\u003c\u003cregion\u003e\u003e\u003e:\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @property"},{"line_number":40,"context_line":"    def region_key(self):"},{"line_number":41,"context_line":"        return self.REGION_KEY_PREFIX + self._region.name"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_68ae24e7","line":39,"updated":"2016-08-23 14:12:37.000000000","message":"Most of these properties are duplicated below and I have extracted them to a separate class.","commit_id":"b0ea9ae3af5f7f0d480bcae65c32699eafe8c84e"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"d4a657f3eceeb2ae991e8d567b1e8e7fd9fea2ad","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    @property"},{"line_number":44,"context_line":"    def region_id(self):"},{"line_number":45,"context_line":"        value \u003d self._region.backend.get(self.region_key)"},{"line_number":46,"context_line":"        if not value:"},{"line_number":47,"context_line":"            value \u003d uuid.uuid4().hex"},{"line_number":48,"context_line":"            # TODO(dstanek): this should last forever"},{"line_number":49,"context_line":"            self._region.backend.set(self.region_key, value)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_98a5b3a3","line":46,"updated":"2016-08-23 13:17:35.000000000","message":"(nit) There is special NO_VALUE constant declared in dogpile.cache to be sure that it\u0027s not the case when None is stored, however here that\u0027s indifferent.","commit_id":"b0ea9ae3af5f7f0d480bcae65c32699eafe8c84e"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"203ff7c6fa7ac02c1ad67b533a7043eb9bcfa0ba","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    @property"},{"line_number":44,"context_line":"    def region_id(self):"},{"line_number":45,"context_line":"        value \u003d self._region.backend.get(self.region_key)"},{"line_number":46,"context_line":"        if not value:"},{"line_number":47,"context_line":"            value \u003d uuid.uuid4().hex"},{"line_number":48,"context_line":"            # TODO(dstanek): this should last forever"},{"line_number":49,"context_line":"            self._region.backend.set(self.region_key, value)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_e82cd49a","line":46,"in_reply_to":"1ac06dbe_98a5b3a3","updated":"2016-08-23 14:12:37.000000000","message":"Yeah, I was using this in the tests of another review. Not sure why I\u0027m not doing it here.","commit_id":"b0ea9ae3af5f7f0d480bcae65c32699eafe8c84e"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"d4a657f3eceeb2ae991e8d567b1e8e7fd9fea2ad","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    def __call__(self, key):"},{"line_number":94,"context_line":"        if key !\u003d self.region_key:"},{"line_number":95,"context_line":"            key \u003d \u0027%s:%s\u0027 % (key, self.region_id)"},{"line_number":96,"context_line":"        return cache._sha1_mangle_key(key)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"def create_region(name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_432350a7","line":96,"updated":"2016-08-23 13:17:35.000000000","message":"(nit) murmur is about 2x faster than sha1","commit_id":"b0ea9ae3af5f7f0d480bcae65c32699eafe8c84e"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"203ff7c6fa7ac02c1ad67b533a7043eb9bcfa0ba","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    def __call__(self, key):"},{"line_number":94,"context_line":"        if key !\u003d self.region_key:"},{"line_number":95,"context_line":"            key \u003d \u0027%s:%s\u0027 % (key, self.region_id)"},{"line_number":96,"context_line":"        return cache._sha1_mangle_key(key)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"def create_region(name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_e87a1487","line":96,"in_reply_to":"1ac06dbe_432350a7","updated":"2016-08-23 14:12:37.000000000","message":"I\u0027ve actually changed this a little bit. I\u0027m using _sha1_mangle_key only if another mangler isn\u0027t set. I\u0027m using this because it\u0027s the default in oslo.cache.","commit_id":"b0ea9ae3af5f7f0d480bcae65c32699eafe8c84e"}]}
