def del_provider_session(self, gid, provider): keys = self.rc.hkeys(S1.gid_key(gid)) to_clear = [ key for key in keys if key.startswith(S1.destination_session_fmt(provider)) ] if len(to_clear): self.rc.hdel(S1.gid_key(gid), *to_clear)
def set_provider_session(self, gid, session_id, provider, data): """ Use to store arbitrary session data specific to a provider. All session for all providers is cleared when user logs off """ self.rc.hset(S1.gid_key(gid), S1.destination_session_id_fmt(provider, session_id), json.dumps(data))
def forget_source(self, master_gid, gid): """ Removes source gid, unlinks all bindings associated with the source @param master_gid: master gid @param gid: source gid @return: """ self.logger.info('Removing source [{0}:{1}]...'.format( master_gid, gid)) destinations = self.get_destinations(gid) for destination in destinations: users = self.get_destination_users(gid, destination) for user in users: # source gid can be bound to destination that does not belong to this master gid # forget_destination will only remove bindings that belong to this master gid DataApi.forget_destination(self, self.logger, gid, destination, user) # remove the gid from the list of child accounts self.remove_linked_account(master_gid, gid) # clear gid data if no destinations left destinations = self.get_destinations(gid) if not destinations: self.logger.info( 'Source [{0}:{1}] is orphaned, cleaning...'.format( master_gid, gid)) # remove user keys self.rc.delete(S1.gid_key(gid)) self.rc.delete(S1.gid_log_key(gid)) self.rc.delete(S1.links_key(gid)) self.rc.delete(S1.cache_key(gid)) self.del_destination_param(gid, 'cache', '', S1.cache_shorten_urls()) # clear chache and remove gid from poller list self.remove_from_poller(gid) # remove tnc self.rc.hdel(S1.TERMS_OK_KEY, gid)
def is_valid_gid(self, gid): return self.rc.zscore(S1.gid_set('all'), gid) or self.rc.exists( S1.gid_key(gid))
def set_limits(self, gid, limit_tag): if limit_tag: self.rc.hset(S1.gid_key(gid), S1.LIMITS_KEY, limit_tag) else: self.rc.hdel(S1.gid_key(gid), S1.LIMITS_KEY)
def get_limits(self, gid): return self.rc.hget(S1.gid_key(gid), S1.LIMITS_KEY)
def get_provider_session(self, gid, session_id, provider): value = self.rc.hget( S1.gid_key(gid), S1.destination_session_id_fmt(provider, session_id)) return json.loads(value) if value else None
def del_gid_info(self, gid): self.rc.hdel(S1.gid_key(gid), S1.info_key())
def get_gid_info(self, gid): value = self.rc.hget(S1.gid_key(gid), S1.info_key()) return json.loads(value) if value else None
def set_gid_info(self, gid, info): self.rc.hset(S1.gid_key(gid), S1.info_key(), json.dumps(info) if info else '')
def del_gid_credentials(self, gid): self.rc.hdel(S1.gid_key(gid), S1.credentials_key())
def get_gid_credentials(self, gid): return self.rc.hget(S1.gid_key(gid), S1.credentials_key())
def set_gid_credentials(self, gid, json_str): self.rc.hset(S1.gid_key(gid), S1.credentials_key(), json_str)
def set_gid_admin(self, gid, admin=None): self.rc.hset(S1.gid_key(gid), S1.admin_key(), admin if admin else 1)
def get_gid_admin(self, gid): return self.rc.hget(S1.gid_key(gid), S1.admin_key())