diff --git a/beaker_extensions/riak.py b/beaker_extensions/riak_.py similarity index 68% rename from beaker_extensions/riak.py rename to beaker_extensions/riak_.py index 60a67da..b2407a6 100644 --- a/beaker_extensions/riak.py +++ b/beaker_extensions/riak_.py @@ -23,16 +23,24 @@ def open_connection(self, host, port): self.bucket = self.db_conn.bucket('beaker_cache') def __contains__(self, key): - return self.bucket.get(key).exists() + return self.bucket.get(self._format_key(key)).exists() def set_value(self, key, value): - self.bucket.new(key, value).store() + val = self.bucket.get(self._format_key(key)) + if not val.exists(): + self.bucket.new(self._format_key(key), value).store() + else: + val.set_data(value) + val.store() def __getitem__(self, key): - return self.bucket.get(key) + return self.bucket.get(self._format_key(key)).get_data() def __delitem__(self, key): - self.bucket.get(key).delete() + self.bucket.get(self._format_key(key)).delete() + + def _format_key(self, key): + return 'beaker:%s:%s' % (self.namespace, key.replace(' ', '\302\267')) def do_remove(self): raise Exception("Unimplemented") diff --git a/setup.py b/setup.py index e2841b3..d859230 100644 --- a/setup.py +++ b/setup.py @@ -25,7 +25,7 @@ [beaker.backends] redis = beaker_extensions.redis_:RedisManager tyrant = beaker_extensions.tyrant_:TokyoTyrantManager - riak = beaker_extensions.riak:RiakManager + riak = beaker_extensions.riak_:RiakManager dynomite = beaker_extensions.dynomite_:DynomiteManager ringo = beaker_extensions.ringo:RingoManager cassandra = beaker_extensions.cassandra:CassandraManager