Пример #1
0
 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)
Пример #2
0
 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))
Пример #3
0
    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)
Пример #4
0
 def is_valid_gid(self, gid):
     return self.rc.zscore(S1.gid_set('all'), gid) or self.rc.exists(
         S1.gid_key(gid))
Пример #5
0
 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)
Пример #6
0
 def get_limits(self, gid):
     return self.rc.hget(S1.gid_key(gid), S1.LIMITS_KEY)
Пример #7
0
 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
Пример #8
0
 def del_gid_info(self, gid):
     self.rc.hdel(S1.gid_key(gid), S1.info_key())
Пример #9
0
 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
Пример #10
0
 def set_gid_info(self, gid, info):
     self.rc.hset(S1.gid_key(gid), S1.info_key(),
                  json.dumps(info) if info else '')
Пример #11
0
 def del_gid_credentials(self, gid):
     self.rc.hdel(S1.gid_key(gid), S1.credentials_key())
Пример #12
0
 def get_gid_credentials(self, gid):
     return self.rc.hget(S1.gid_key(gid), S1.credentials_key())
Пример #13
0
 def set_gid_credentials(self, gid, json_str):
     self.rc.hset(S1.gid_key(gid), S1.credentials_key(), json_str)
Пример #14
0
 def set_gid_admin(self, gid, admin=None):
     self.rc.hset(S1.gid_key(gid), S1.admin_key(), admin if admin else 1)
Пример #15
0
 def get_gid_admin(self, gid):
     return self.rc.hget(S1.gid_key(gid), S1.admin_key())