def load(name): key = Role.KEY_STRING % name if redis.exists(key): r = Role(**{'name': name, 'description': redis.get(key)}) r._is_new = False return r else: return None
def save(self): if self._is_new and redis.exists(self.key): print "Save failed. Key '%s' exists." % self.key return False else: redis.set( self.key, json.dumps({'name':self.name,'description':self.description}) ) self._is_new = False return True
def save(self): if self._is_new and redis.exists(self.key): print "Save failed. Key '%s' exists." % self.key return False else: redis.hset( self.key, "num_of_channels", self.num_of_channels ) redis.sadd(self.INDEX_KEY, self.card_id) self._is_new = False return True
def find_by_timestamp(start, end, sort_len = False, page = 0, min_len = 0, channel = -1): if(page > 0): start_limit = app.config['RECORDS_PER_PAGE'] * (page - 1) else: start_limit = 0 #Search key : recording:tmp:search:<ch_id>:<min_len>:<start>:<end> search_key = "recording:tmp:search:%s:%s:%s:%s" % (int(channel), int(min_len), int(start), int(end)) if not redis.exists(search_key): recordings = redis.zrangebyscore(Recording.TIMESTAMPS_KEY, start, end) #filter recordings by lenght and channel_id if(min_len > 0 or channel >= 0): recordings_filtered = [] for r_id in recordings: recording = Recording.load(r_id) if(min_len > recording.duration): continue; if(channel >= 0 and channel != recording.channel_id): continue; recordings_filtered.append(r_id) recordings = recordings_filtered pipe = redis.pipeline() map(lambda r: pipe.sadd(search_key, r), recordings) pipe.execute() #Set expiration time redis.expire(search_key, 3600); if(sort_len): #Return all records recordings = redis.sort(search_key, None, None, "recording:*->duration", None, True) else: recordings = redis.smembers(search_key) lenght = len(recordings) if(page > 0): recordings = recordings[start_limit : start_limit + app.config['RECORDS_PER_PAGE']] return (map(lambda r_id: Recording.load(r_id), recordings), lenght)
def save(self): if self._is_new and redis.exists(self.key): print "Save failed. Key '%s' exists." % self.key return False else: with redis.pipeline() as pipe: try: pipe.set(self.key, self.description) pipe.sadd(self.INDEX_KEY, self.name) pipe.execute() return True except ValueError, KeyError: return False
def save(self): if self._is_new and redis.exists(self.key): print "Save failed. Key '%s' exists." % self.key return False else: with redis.pipeline() as pipe: try: pipe.hset( self.key, "password", self.password ) pipe.delete(self.roles_key) for role in self.roles: pipe.sadd(self.roles_key, role) pipe.sadd(self.INDEX_KEY, self.email) self._is_new = False pipe.execute() return True except ValueError, KeyError: return False