def init_livestatus(self, modconf=None, dbmodconf=None, needcache=False): self.livelogs = 'tmp/livelogs.db' + self.testid if modconf is None: modconf = Module({'module_name': 'LiveStatus', 'module_type': 'livestatus', 'port': str(50000 + os.getpid()), 'pnp_path': 'tmp/pnp4nagios_test' + self.testid, 'host': '127.0.0.1', 'socket': 'live', 'name': 'test', #? }) if dbmodconf is None: dbmodconf = Module({'module_name': 'LogStore', 'module_type': 'logstore_sqlite', 'use_aggressive_sql': "0", 'database_file': self.livelogs, 'archive_path': os.path.join(os.path.dirname(self.livelogs), 'archives'), }) modconf.modules = [dbmodconf] self.livestatus_broker = LiveStatus_broker(modconf) self.livestatus_broker.create_queues() #--- livestatus_broker.main self.livestatus_broker.log = logger # this seems to damage the logger so that the scheduler can't use it #self.livestatus_broker.log.load_obj(self.livestatus_broker) self.livestatus_broker.debug_output = [] self.livestatus_broker.modules_manager = ModulesManager('livestatus', modules_dir, []) self.livestatus_broker.modules_manager.set_modules(self.livestatus_broker.modules) # We can now output some previouly silented debug ouput self.livestatus_broker.do_load_modules() for inst in self.livestatus_broker.modules_manager.instances: if inst.properties["type"].startswith('logstore'): f = getattr(inst, 'load', None) if f and callable(f): f(self.livestatus_broker) # !!! NOT self here !!!! break for s in self.livestatus_broker.debug_output: print "errors during load", s del self.livestatus_broker.debug_output self.livestatus_broker.rg = LiveStatusRegenerator() self.livestatus_broker.datamgr = datamgr datamgr.load(self.livestatus_broker.rg) self.livestatus_broker.query_cache = LiveStatusQueryCache() if not needcache: self.livestatus_broker.query_cache.disable() self.livestatus_broker.rg.register_cache(self.livestatus_broker.query_cache) #--- livestatus_broker.main self.livestatus_broker.init() self.livestatus_broker.db = self.livestatus_broker.modules_manager.instances[0] self.livestatus_broker.livestatus = LiveStatus(self.livestatus_broker.datamgr, self.livestatus_broker.query_cache, self.livestatus_broker.db, self.livestatus_broker.pnp_path, self.livestatus_broker.from_q) #--- livestatus_broker.do_main self.livestatus_broker.db.open() if hasattr(self.livestatus_broker.db, 'prepare_log_db_table'): self.livestatus_broker.db.prepare_log_db_table()
def init_livestatus(self): self.livelogs = "bigbigbig" modconf = Module({'module_name': 'LiveStatus', 'module_type': 'livestatus', 'port': str(50000 + os.getpid()), 'pnp_path': 'tmp/livestatus_broker.pnp_path_test' + self.testid, 'host': '127.0.0.1', 'socket': 'live', 'name': 'test', #? }) dbmodconf = Module({'module_name': 'LogStore', 'module_type': 'logstore_mongodb', 'database': 'bigbigbig', 'mongodb_uri': "mongodb://127.0.0.1:27017", #'mongodb_uri': "mongodb://10.0.12.50:27017,10.0.12.51:27017", # 'replica_set': 'livestatus', 'max_logs_age': '7', }) modconf.modules = [dbmodconf] self.livestatus_broker = LiveStatus_broker(modconf) self.livestatus_broker.create_queues() #--- livestatus_broker.main self.livestatus_broker.log = logger # this seems to damage the logger so that the scheduler can't use it #self.livestatus_broker.log.load_obj(self.livestatus_broker) self.livestatus_broker.debug_output = [] self.livestatus_broker.modules_manager = ModulesManager('livestatus', self.livestatus_broker.find_modules_path(), []) self.livestatus_broker.modules_manager.set_modules(self.livestatus_broker.modules) # We can now output some previouly silented debug ouput self.livestatus_broker.do_load_modules() for inst in self.livestatus_broker.modules_manager.instances: if inst.properties["type"].startswith('logstore'): f = getattr(inst, 'load', None) if f and callable(f): f(self.livestatus_broker) # !!! NOT self here !!!! break for s in self.livestatus_broker.debug_output: print "errors during load", s del self.livestatus_broker.debug_output self.livestatus_broker.rg = LiveStatusRegenerator() self.livestatus_broker.datamgr = datamgr datamgr.load(self.livestatus_broker.rg) self.livestatus_broker.query_cache = LiveStatusQueryCache() self.livestatus_broker.query_cache.disable() self.livestatus_broker.rg.register_cache(self.livestatus_broker.query_cache) #--- livestatus_broker.main self.livestatus_broker.init() self.livestatus_broker.db = self.livestatus_broker.modules_manager.instances[0] self.livestatus_broker.livestatus = LiveStatus(self.livestatus_broker.datamgr, self.livestatus_broker.query_cache, self.livestatus_broker.db, self.livestatus_broker.pnp_path, self.livestatus_broker.from_q) #--- livestatus_broker.do_main self.livestatus_broker.db.open()
from multiprocessing import Queue from shinken_test import unittest, ShinkenTest from shinken.objects.module import Module from shinken.modulesctx import modulesctx npcdmod_broker = modulesctx.get_module('npcdmod') Npcd_broker = npcdmod_broker.Npcd_broker sys.setcheckinterval(10000) modconf = Module() modconf.module_name = "ncpd" modconf.module_type = npcdmod_broker.properties['type'] modconf.modules = [] modconf.properties = npcdmod_broker.properties.copy() class TestNpcd(ShinkenTest): def add(self, b): self.broks[b.id] = b def fake_check(self, ref, exit_status, output="OK"): print "fake", ref now = time.time() ref.schedule() check = ref.actions.pop() self.sched.add(check) # check is now in sched.checks[] # fake execution
import os, sys, string, time from multiprocessing import Queue from shinken_test import unittest, ShinkenTest from shinken.objects.module import Module from shinken.modules.npcdmod import module as npcdmod_broker from shinken.modules.npcdmod.module import Npcd_broker sys.setcheckinterval(10000) modconf = Module() modconf.module_name = "ncpd" modconf.module_type = npcdmod_broker.properties['type'] modconf.modules = [] modconf.properties = npcdmod_broker.properties.copy() class TestNpcd(ShinkenTest): def add(self, b): self.broks[b.id] = b def fake_check(self, ref, exit_status, output="OK"): print "fake", ref now = time.time() ref.schedule() check = ref.actions.pop() self.sched.add(check) # check is now in sched.checks[] # fake execution
def init_livestatus(self): self.livelogs = "tmp/livelogs.db" + self.testid modconf = Module( { "module_name": "LiveStatus", "module_type": "livestatus", "port": str(50000 + os.getpid()), "pnp_path": "tmp/pnp4nagios_test" + self.testid, "host": "127.0.0.1", "socket": "live", "name": "test", # ? } ) dbmodconf = Module( { "module_name": "LogStore", "module_type": "logstore_mongodb", "mongodb_uri": "mongodb://127.0.0.1:27017", "database": "testtest" + self.testid, } ) modconf.modules = [dbmodconf] self.livestatus_broker = LiveStatus_broker(modconf) self.livestatus_broker.create_queues() # --- livestatus_broker.main self.livestatus_broker.log = logger # this seems to damage the logger so that the scheduler can't use it # self.livestatus_broker.log.load_obj(self.livestatus_broker) self.livestatus_broker.debug_output = [] self.livestatus_broker.modules_manager = ModulesManager( "livestatus", self.livestatus_broker.find_modules_path(), [] ) self.livestatus_broker.modules_manager.set_modules(self.livestatus_broker.modules) # We can now output some previouly silented debug ouput self.livestatus_broker.do_load_modules() for inst in self.livestatus_broker.modules_manager.instances: if inst.properties["type"].startswith("logstore"): f = getattr(inst, "load", None) if f and callable(f): f(self.livestatus_broker) # !!! NOT self here !!!! break for s in self.livestatus_broker.debug_output: print "errors during load", s del self.livestatus_broker.debug_output self.livestatus_broker.rg = LiveStatusRegenerator() self.livestatus_broker.datamgr = datamgr datamgr.load(self.livestatus_broker.rg) self.livestatus_broker.query_cache = LiveStatusQueryCache() self.livestatus_broker.query_cache.disable() self.livestatus_broker.rg.register_cache(self.livestatus_broker.query_cache) # --- livestatus_broker.main self.livestatus_broker.init() for i in self.livestatus_broker.modules_manager.instances: print "instance", i self.livestatus_broker.db = self.livestatus_broker.modules_manager.instances[0] self.livestatus_broker.livestatus = LiveStatus( self.livestatus_broker.datamgr, self.livestatus_broker.query_cache, self.livestatus_broker.db, self.livestatus_broker.pnp_path, self.livestatus_broker.from_q, ) # --- livestatus_broker.do_main self.livestatus_broker.db.open()