Example #1
0
def run_worker(config, dbengine):
    _cache = cache.CacheManager(dbengine,
                                cache_name='RadiusWorkerCache-%s' %
                                os.getpid())
    logger.info('start radius worker: %s' %
                RADIUSAuthWorker(config, dbengine, radcache=_cache))
    logger.info('start radius worker: %s' %
                RADIUSAcctWorker(config, dbengine, radcache=_cache))
Example #2
0
    def __init__(self, config=None, dbengine=None, **kwargs):

        self.config = config

        settings = dict(
            cookie_secret="12oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=",
            login_url="/login",
            template_path=os.path.join(os.path.dirname(toughnms.__file__), "views"),
            static_path=os.path.join(os.path.dirname(toughnms.__file__), "static"),
            xsrf_cookies=True,
            config=self.config,
            debug=self.config.system.debug,
            xheaders=True,
        )

        self.tp_lookup = TemplateLookup(
            directories=[settings['template_path']],
            default_filters=['decode.utf8'],
            input_encoding='utf-8',
            output_encoding='utf-8',
            encoding_errors='ignore',
            module_directory="/tmp/toughnms"
        )

        self.db_engine = dbengine or get_engine(config)
        self.db = scoped_session(sessionmaker(bind=self.db_engine, autocommit=False, autoflush=False))
        self.session_manager = session.SessionManager(settings["cookie_secret"], self.db_engine, 600)
        self.mcache = cache.CacheManager(self.db_engine)
        self.nagapi = NagiosApi(self.config)
        self.mongodb = MongoDB(self.config.database.mongodb_url,self.config.database.mongodb_port)

        self.aes = utils.AESCipher(key=self.config.system.secret)

        # cache event init
        dispatch.register(self.mcache)

        # app init_route
        load_handlers(handler_path=os.path.join(os.path.abspath(os.path.dirname(__file__))),
            pkg_prefix="toughnms.console", excludes=['base','webserver','radius'])

        self.init_route_permit()

        # app event init
        # event_params= dict(dbengine=self.db_engine, mcache=self.mcache, aes=self.aes)
        # load_events(os.path.join(os.path.abspath(os.path.dirname(toughnms.manage.events.__file__))),
        #     "toughnms.manage.events", excludes=[],event_params=event_params)


        # for g in self.nagapi.list_hostgroup():
        #     for host in g.get_effective_hosts():
        #         permit.add_route(host_perf.HostPerfDataHandler, 
        #             r"/gperfdata?group_name=%s&host_name=%s"%(g.hostgroup_name,host.host_name),
        #             utils.safeunicode(host.alias),
        #             MenuRes,
        #             is_menu=True,
        #             order=7.0005)
        cyclone.web.Application.__init__(self, permit.all_handlers, **settings)
Example #3
0
    def __init__(self, config=None, log=None, **kwargs):

        self.config = config
        self.syslog = log or logger.Logger(config)

        settings = dict(
            cookie_secret="12oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=",
            login_url="/admin/login",
            template_path=os.path.join(os.path.dirname(__file__), "views"),
            static_path=os.path.join(os.path.dirname(toughradius.__file__),
                                     "static"),
            xsrf_cookies=True,
            config=config,
            debug=self.config.system.debug,
            xheaders=True,
        )

        self.tp_lookup = TemplateLookup(
            directories=[settings['template_path']],
            default_filters=['decode.utf8'],
            input_encoding='utf-8',
            output_encoding='utf-8',
            encoding_errors='replace',
            module_directory="/tmp/admin")

        self.db_engine = get_engine(config)
        self.db = scoped_session(
            sessionmaker(bind=self.db_engine,
                         autocommit=False,
                         autoflush=False))
        self.session_manager = session.SessionManager(
            settings["cookie_secret"], self.db_engine, 600)
        self.mcache = cache.CacheManager(self.db_engine)
        self.db_backup = DBBackup(models.get_metadata(self.db_engine),
                                  excludes=[
                                      'tr_online', 'system_session',
                                      'system_cache', 'tr_ticket'
                                  ])

        self.aes = utils.AESCipher(key=self.config.system.secret)

        permit.add_route(
            cyclone.web.StaticFileHandler,
            r"/backup/download/(.*)",
            u"下载数据",
            MenuSys,
            handle_params={"path": self.config.database.backup_path},
            order=1.0405)

        self.init_route()

        self.zauth_agent = authorize.ZAuthAgent(self)
        self.zacct_agent = acctounting.ZAcctAgent(self)

        cyclone.web.Application.__init__(self, permit.all_handlers, **settings)
Example #4
0
def run_worker(config, dbengine):
    _cache = None
    redisconf = config.get('redis')
    if redisconf:
        _cache = redis_cache.CacheManager(redisconf,
                                          cache_name='RadiusWorkerCache-%s' %
                                          os.getpid())
        _cache.print_hit_stat(10)
    else:
        _cache = cache.CacheManager(dbengine,
                                    cache_name='RadiusWorkerCache-%s' %
                                    os.getpid())
    logger.info('start radius worker: %s' %
                RADIUSAuthWorker(config, dbengine, radcache=_cache))
    logger.info('start radius worker: %s' %
                RADIUSAcctWorker(config, dbengine, radcache=_cache))
Example #5
0
    def __init__(self, config=None, dbengine=None, **kwargs):

        self.config = config
        self.db_engine = dbengine or get_engine(config)
        self.cache = cache.CacheManager(self.db_engine)
        self.db = scoped_session(
            sessionmaker(bind=self.db_engine,
                         autocommit=False,
                         autoflush=False))
        # init task
        self.expire_notify_task = expire_notify.ExpireNotifyTask(self)
        self.ddns_update_task = ddns_update.DdnsUpdateTask(self)
        self.radius_stat_task = radius_stat.RadiusStatTask(self)
        self.online_stat_task = online_stat.OnlineStatTask(self)
        self.flow_stat_task = flow_stat.FlowStatTask(self)

        dispatch.register(radius_events.__call__(self.db_engine, self.cache))
Example #6
0
    def __init__(self, config=None, dbengine=None, **kwargs):

        self.config = config
        self.db_engine = dbengine or get_engine(config,pool_size=20)
        redisconf = config.get('redis')
        if redisconf:
            self.cache = redis_cache.CacheManager(redisconf,cache_name='RadiusTaskCache-%s'%os.getpid())
            self.cache.print_hit_stat(10)
        else:
            self.cache = cache.CacheManager(self.db_engine,cache_name='RadiusTaskCache-%s'%os.getpid())
        self.db = scoped_session(sessionmaker(bind=self.db_engine, autocommit=False, autoflush=False))
        # init task
        self.expire_notify_task = expire_notify.ExpireNotifyTask(self)
        self.ddns_update_task = ddns_update.DdnsUpdateTask(self)
        self.radius_stat_task = radius_stat.RadiusStatTask(self)
        self.online_stat_task = online_stat.OnlineStatTask(self)
        self.flow_stat_task = flow_stat.FlowStatTask(self)

        dispatch.register(radius_events.__call__(self.db_engine,self.cache))
Example #7
0
    def __init__(self, config=None, dbengine=None, **kwargs):

        self.config = config

        settings = dict(
            cookie_secret="12oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=",
            login_url="/admin/login",
            template_path=os.path.join(os.path.dirname(toughradius.__file__),
                                       "views"),
            static_path=os.path.join(os.path.dirname(toughradius.__file__),
                                     "static"),
            xsrf_cookies=True,
            config=self.config,
            debug=self.config.system.debug,
            xheaders=True,
        )

        self.tp_lookup = TemplateLookup(
            directories=[settings['template_path']],
            default_filters=['decode.utf8'],
            input_encoding='utf-8',
            output_encoding='utf-8',
            encoding_errors='ignore',
            module_directory="/tmp/admin")

        self.db_engine = dbengine or get_engine(config)
        self.db = scoped_session(
            sessionmaker(bind=self.db_engine,
                         autocommit=False,
                         autoflush=False))
        self.session_manager = session.SessionManager(
            settings["cookie_secret"], self.db_engine, 600)
        self.mcache = cache.CacheManager(self.db_engine)
        self.db_backup = DBBackup(models.get_metadata(self.db_engine),
                                  excludes=[
                                      'tr_online', 'system_session',
                                      'system_cache', 'tr_ticket'
                                  ])

        self.aes = utils.AESCipher(key=self.config.system.secret)

        # cache event init
        dispatch.register(self.mcache)

        # app init_route
        load_handlers(handler_path=os.path.join(
            os.path.abspath(os.path.dirname(__file__))),
                      pkg_prefix="toughradius.manage",
                      excludes=['views', 'webserver', 'radius'])

        self.init_route_permit()

        # app event init
        event_params = dict(dbengine=self.db_engine,
                            mcache=self.mcache,
                            aes=self.aes)
        load_events(os.path.join(
            os.path.abspath(os.path.dirname(
                toughradius.manage.events.__file__))),
                    "toughradius.manage.events",
                    excludes=[],
                    event_params=event_params)

        permit.add_route(
            cyclone.web.StaticFileHandler,
            r"/admin/backup/download/(.*)",
            u"下载数据",
            MenuSys,
            handle_params={"path": self.config.database.backup_path},
            order=5.0005)
        cyclone.web.Application.__init__(self, permit.all_handlers, **settings)