def get_fq_resolver(res): fq_resolver = None resolvers = getResolverList() if res in resolvers: match_res = resolvers.get(res) fq_resolver = getResolverClassName(match_res['type'], match_res['resolvername']) return fq_resolver
def migrate_resolver(self, src=None, target=None, filter_serials=None): """ support the migration of owned tokens from one resolver to a new one the idea is: - get all tokens from one resolver - for each token, the the owner - from the owner get the login name - with the login name get the uid from the target resolver - update the new_id in the token """ _ = context['translate'] ret = {} if not src or not target: raise Exception("Missing src or target resolver defintion!") audit = context.get('audit') now = datetime.now() stime = now.strftime("%s") audit['action_detail'] = ( "migration from %s to %s" % (src['resolvername'], target['resolvername'])) ret['src'] = src ret['target'] = target ret['value'] = False ret['message'] = '' search = getResolverClassName(src['type'], src['resolvername']) target_resolver = getResolverClassName(target['type'], target['resolvername']) # get all tokens of src resolver tokens = self._get_tokens_for_resolver(search, serials=filter_serials) num_migration = 0 serials = set() for token in tokens: serial = token.get('LinOtpTokenSerialnumber') userid = token.get('LinOtpUserid') resolverC = token.get('LinOtpIdResClass') # now do the lookup of the uid in the # src resolver to get the login uInfo = getUserInfo(userid, '', resolverC) login = uInfo.get('username') try: y = getResolverObject(target_resolver) uid = y.getUserId(login) if not uid: log.warning("User %s not found in target resolver %r", login, target_resolver) continue token.LinOtpIdResClass = target_resolver token.LinOtpUserid = uid # TODO: adjust token.LinOtpIdResolver = target['type'] Session.add(token) num_migration += 1 serials.add(serial) except Exception as exx: log.exception( "Faild to set new resolver data for token %s: %r" % (serial, exx)) ret['value'] = True ret['message'] = (_("%d tokens of %d migrated") % (num_migration, len(tokens))) log.info(ret['message']) audit['info'] = "[%s] %s" % (stime, ret['message']) audit['serial'] = ",".join(list(serials)) audit['success'] = True context['audit'] = audit return ret
def migrate_resolver(self, src=None, target=None, filter_serials=None): """ support the migration of owned tokens from one resolver to a new one the idea is: - get all tokens from one resolver - for each token, the the owner - from the owner get the login name - with the login name get the uid from the target resolver - update the new_id in the token """ _ = context['translate'] ret = {} if not src or not target: raise Exception("Missing src or target resolver defintion!") audit = context.get('audit') now = datetime.now() stime = now.strftime("%s") audit['action_detail'] = ("migration from %s to %s" % (src['resolvername'], target['resolvername'])) ret['src'] = src ret['target'] = target ret['value'] = False ret['message'] = '' search = getResolverClassName(src['type'], src['resolvername']) target_resolver = getResolverClassName(target['type'], target['resolvername']) # get all tokens of src resolver tokens = self._get_tokens_for_resolver(search, serials=filter_serials) num_migration = 0 serials = set() for token in tokens: serial = token.get('LinOtpTokenSerialnumber') userid = token.get('LinOtpUserid') resolverC = token.get('LinOtpIdResClass') # now do the lookup of the uid in the # src resolver to get the login uInfo = getUserInfo(userid, '', resolverC) login = uInfo.get('username') try: y = getResolverObject(target_resolver) uid = y.getUserId(login) if not uid: log.warning("User %s not found in target resolver %r", login, target_resolver) continue token.LinOtpIdResClass = target_resolver token.LinOtpUserid = uid # TODO: adjust token.LinOtpIdResolver = target['type'] Session.add(token) num_migration += 1 serials.add(serial) except Exception as exx: log.exception("Faild to set new resolver data for token %s: %r" % (serial, exx)) ret['value'] = True ret['message'] = (_("%d tokens of %d migrated") % (num_migration, len(tokens))) log.info(ret['message']) audit['info'] = "[%s] %s" % (stime, ret['message']) audit['serial'] = ",".join(list(serials)) audit['success'] = True context['audit'] = audit return ret
def migrate_resolver(self, src=None, target=None, filter_serials=None): """ support the migration of owned tokens from one resolver to a new one the idea is: - get all tokens from one resolver - for each token, the the owner - from the owner get the login name - with the login name get the uid from the target resolver - update the new_id in the token """ ret = {} if not src or not target: raise Exception("Missing src or target resolver defintion!") now = datetime.now() stime = now.strftime("%s") g.audit["action_detail"] = "migration from %s to %s" % ( src["resolvername"], target["resolvername"], ) ret["src"] = src ret["target"] = target ret["value"] = False ret["message"] = "" search = getResolverClassName(src["type"], src["resolvername"]) target_resolver = getResolverClassName(target["type"], target["resolvername"]) # get all tokens of src resolver tokens = self._get_tokens_for_resolver(search, serials=filter_serials) num_migration = 0 serials = set() for token in tokens: serial = token.get("LinOtpTokenSerialnumber") userid = token.get("LinOtpUserid") resolverC = token.get("LinOtpIdResClass") # now do the lookup of the uid in the # src resolver to get the login uInfo = getUserInfo(userid, "", resolverC) login = uInfo.get("username") try: y = getResolverObject(target_resolver) uid = y.getUserId(login) if not uid: log.warning( "User %s not found in target resolver %r", login, target_resolver, ) continue token.LinOtpIdResClass = target_resolver token.LinOtpUserid = uid # TODO: adjust token.LinOtpIdResolver = target["type"] db.session.add(token) num_migration += 1 serials.add(serial) except Exception as exx: log.error( "Faild to set new resolver data for token %s: %r", serial, exx, ) ret["value"] = True ret["message"] = _("%d tokens of %d migrated") % ( num_migration, len(tokens), ) g.audit["info"] = "[%s] %s" % (stime, ret["message"]) g.audit["serial"] = ",".join(list(serials)) g.audit["success"] = True return ret