def install(self, arguments): conf = Settings.get() conf.set_string('/modules', 'test_disk', 'CheckDisk') conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'test_w32sys', 'test_w32_file.py') conf.save()
def init(pid, plugin_alias, script_alias): global world_status, plugin_id plugin_id = pid conf = Settings.get(plugin_id) conf.register_path( '/settings/cool script', "Sample script config", "This is a sample script which demonstrates how to interact with NSClient++" ) conf.register_key('/settings/cool script', 'world', 'string', "A key", "Never ever change this key: or the world will break", "safe") world_status = conf.get_string('/settings/cool script', 'world', 'true') if world_status != 'safe': log('My god: its full of stars: %s' % world_status) log('Adding a simple function/cmd line') reg = Registry.get(plugin_id) reg.simple_cmdline('help', get_help) reg.simple_function('check_world', check_world, 'Check if the world is safe') reg.simple_function('break_world', break_world, 'Break the world') reg.simple_function('fix_world', fix_world, 'Fix the world') reg.simple_function('save_world', save_world, 'Save the world') reg.simple_function('show_metrics', fun_show_metrics, 'Enable displaying metrics or not') reg.submit_metrics(submit_metrics) reg.fetch_metrics(fetch_metrics)
def test_one_crypto(self, crypto, length=512): conf = Settings.get() conf.set_string('/settings/NSCA/test_nsca_server', 'encryption', '%s'%crypto) conf.set_string('/settings/NSCA/test_nsca_server', 'password', 'pwd-%s'%crypto) conf.set_int('/settings/NSCA/test_nsca_server', 'payload length', length) core.reload('test_nsca_server') conf.set_string('/settings/NSCA/test_nsca_client/targets/default', 'address', 'nsca://127.0.0.1:35667') conf.set_string('/settings/NSCA/test_nsca_client/targets/default', 'encryption', '%s'%crypto) conf.set_string('/settings/NSCA/test_nsca_client/targets/default', 'password', 'default-%s'%crypto) conf.set_int('/settings/NSCA/test_nsca_client/targets/default', 'payload length', length*3) conf.set_string('/settings/NSCA/test_nsca_client/targets/invalid', 'address', 'nsca://127.0.0.1:25667') conf.set_string('/settings/NSCA/test_nsca_client/targets/invalid', 'encryption', 'none') conf.set_string('/settings/NSCA/test_nsca_client/targets/invalid', 'password', 'invalid-%s'%crypto) conf.set_int('/settings/NSCA/test_nsca_client/targets/invalid', 'payload length', length*2) conf.set_string('/settings/NSCA/test_nsca_client/targets/valid', 'address', 'nsca://127.0.0.1:15667') conf.set_string('/settings/NSCA/test_nsca_client/targets/valid', 'encryption', '%s'%crypto) conf.set_string('/settings/NSCA/test_nsca_client/targets/valid', 'password', 'pwd-%s'%crypto) conf.set_int('/settings/NSCA/test_nsca_client/targets/valid', 'payload length', length) core.reload('test_nsca_client') result = TestResult('Testing: %s/%d'%(crypto, length)) result.add_message(isOpen('localhost', 15667), 'Checking that port is open') for target in ['valid', 'test_rp', 'invalid']: result.add(self.test_one_crypto_full(crypto, status.UNKNOWN, 'unknown', target, length)) result.add(self.test_one_crypto_full(crypto, status.OK, 'ok', target, length)) result.add(self.test_one_crypto_full(crypto, status.WARNING, 'warn', target, length)) result.add(self.test_one_crypto_full(crypto, status.CRITICAL, 'crit', target, length)) return result
def init(self, plugin_id, prefix): self.key = '_%stest_command' % prefix self.reg = Registry.get(plugin_id) self.core = Core.get(plugin_id) self.conf = Settings.get(plugin_id) None
def do_one_test(self, ssl=True): conf = Settings.get() conf.set_bool('/settings/nscp/test_nscp_server', 'use ssl', ssl) conf.set_bool('/settings/nscp/test_nscp_server', 'allow arguments', True) # TODO: conf.set_string('/settings/nscp/test_nscp_server', 'certificate', ssl) core.reload('test_nscp_server') conf.set_string('/settings/nscp/test_nscp_client/targets/default', 'address', 'nscp://127.0.0.1:35668') conf.set_bool('/settings/nscp/test_nscp_client/targets/default', 'use ssl', not ssl) conf.set_string('/settings/nscp/test_nscp_client/targets/invalid', 'address', 'nscp://127.0.0.1:25668') conf.set_bool('/settings/nscp/test_nscp_client/targets/invalid', 'use ssl', not ssl) conf.set_string('/settings/nscp/test_nscp_client/targets/valid', 'address', 'nscp://127.0.0.1:15668') conf.set_bool('/settings/nscp/test_nscp_client/targets/valid', 'use ssl', ssl) core.reload('test_nscp_client') result = TestResult() #result.add_message(isOpen('127.0.0.1', 15668), 'Checking that port is open (server is up)') #result.add(self.test_one(ssl, length, state = status.UNKNOWN, tag = 'unknown')) result.add(self.test_one(ssl, state=status.OK, tag='ok')) #result.add(self.test_one(ssl, length, state = status.WARNING, tag = 'warn')) #result.add(self.test_one(ssl, length, state = status.CRITICAL, tag = 'crit')) return result
def __init__(self, plugin_id, plugin_alias, script_alias): self.plugin_id = plugin_id self.plugin_alias = plugin_alias self.script_alias = script_alias self.conf = Settings.get(self.plugin_id) self.registry = Registry.get(self.plugin_id) self.core = Core.get(self.plugin_id)
def do_one_test(self, ssl=True, length=1024): conf = Settings.get() conf.set_int('/settings/NRPE/test_nrpe_server', 'payload length', length) conf.set_bool('/settings/NRPE/test_nrpe_server', 'use ssl', ssl) conf.set_bool('/settings/NRPE/test_nrpe_server', 'allow arguments', True) # TODO: conf.set_string('/settings/NRPE/test_nrpe_server', 'certificate', ssl) core.reload('test_nrpe_server') conf.set_string('/settings/NRPE/test_nrpe_client/targets/default', 'address', 'nrpe://127.0.0.1:35666') conf.set_bool('/settings/NRPE/test_nrpe_client/targets/default', 'use ssl', not ssl) conf.set_int('/settings/NRPE/test_nrpe_client/targets/default', 'payload length', length*3) conf.set_string('/settings/NRPE/test_nrpe_client/targets/invalid', 'address', 'nrpe://127.0.0.1:25666') conf.set_bool('/settings/NRPE/test_nrpe_client/targets/invalid', 'use ssl', not ssl) conf.set_int('/settings/NRPE/test_nrpe_client/targets/invalid', 'payload length', length*2) conf.set_string('/settings/NRPE/test_nrpe_client/targets/valid', 'address', 'nrpe://127.0.0.1:15666') conf.set_bool('/settings/NRPE/test_nrpe_client/targets/valid', 'use ssl', ssl) conf.set_int('/settings/NRPE/test_nrpe_client/targets/valid', 'payload length', length) core.reload('test_nrpe_client') result = TestResult() result.add_message(isOpen('127.0.0.1', 15666), 'Checking that port is open (server is up)') result.add(self.test_one(ssl, length, state = status.UNKNOWN, tag = 'unknown')) result.add(self.test_one(ssl, length, state = status.OK, tag = 'ok')) result.add(self.test_one(ssl, length, state = status.WARNING, tag = 'warn')) result.add(self.test_one(ssl, length, state = status.CRITICAL, tag = 'crit')) return result
def init(pid, plugin_alias, script_alias): global world_status, plugin_id plugin_id = pid conf = Settings.get(plugin_id) conf.register_path('/settings/cool script', "Sample script config", "This is a sample script which demonstrates how to interact with NSClient++") conf.register_key('/settings/cool script', 'world', 'string', "A key", "Never ever change this key: or the world will break", "safe") world_status = conf.get_string('/settings/cool script', 'world', 'true') if world_status != 'safe': log('My god: its full of stars: %s'%world_status) log('Adding a simple function/cmd line') reg = Registry.get(plugin_id) reg.simple_cmdline('help', get_help) reg.simple_function('check_world', check_world, 'Check if the world is safe') reg.simple_function('break_world', break_world, 'Break the world') reg.simple_function('fix_world', fix_world, 'Fix the world') reg.simple_function('save_world', save_world, 'Save the world') reg.simple_function('show_metrics', fun_show_metrics, 'Enable displaying metrics or not') reg.submit_metrics(submit_metrics) reg.fetch_metrics(fetch_metrics)
def init(self, plugin_id, prefix): self.key = '_%stest_command'%prefix self.reg = Registry.get(plugin_id) self.core = Core.get(plugin_id) self.conf = Settings.get(plugin_id) None
def install(self, arguments): conf = Settings.get() conf.set_string('/modules', 'test_system', 'CheckWMI') conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'test_w32wmi', 'test_w32_wmi.py') conf.save()
def init(pid, plugin_alias, script_alias): global plugin_id, icinga_url, icinga_auth, path plugin_id = pid core = Core.get(plugin_id) path = core.expand_path("${module-path}") conf = Settings.get(plugin_id) conf.register_path( '/settings/remote-modules', "Remote module", "Keys for the remote-modules module which handles downloading remote modules on demand" ) conf.register_path( '/settings/remote-modules/modules', "Remote modules", "A list of remote modules to fetch the key is not used.") reg = Registry.get(plugin_id) reg.simple_function('remote_module_update', update, 'Update all or one remote module') for mod in conf.get_section('/settings/remote-modules/modules'): url = conf.get_string('/settings/remote-modules/modules', mod, '') log("Adding module %s as %s" % (mod, url)) conf.register_key('/settings/remote-modules/modules', mod, 'string', "A remote module to fetch", "A remote module to fetch", "") if not update_modules(): log_error("Failed to update modules") else: enable_modules()
def install_test(arguments): log('-+---==(TEST INSTALLER)==---------------------------------------------------+-' ) log(' | Setup nessecary configuration for running test |' ) log(' | This includes: Loading the PythonScript module at startup |' ) log(' | To use this please run nsclient++ in "test mode" like so: |' ) log(' | nscp --test |' ) log(' | Then start the pytest_test command by typing it and press enter like so: |' ) log(' | pytest_test |' ) log(' | Lastly exit by typing exit like so: |' ) log(' | exit |' ) log('-+--------------------------------------------------------==(DAS ENDE!)==---+-' ) conf = Settings.get() conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'pytest', 'test.py') conf.save()
def install(self, arguments): conf = Settings.get() conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'test_pb', 'test_pb.py') conf.save()
def init(pid, plugin_alias, script_alias): global server_name, plugin_id, icinga_url, icinga_auth plugin_id = pid server_name = socket.gethostname() reg = Registry.get(plugin_id) core = Core.get(plugin_id) reg.event('name', on_event) reg.submit_metrics(submit_metrics) conf = Settings.get(plugin_id) conf.register_key('/settings/icinga', 'url', 'string', "The URL of the icinga API port", "The icinga base for the api: https://icinga.com:5665", "") conf.register_key('/settings/icinga', 'user', 'string', "The user id of the icinga API", "The icinga API user: root", "") conf.register_key('/settings/icinga', 'password', 'string', "The user id of the icinga API", "The icinga API password: hopefully not icinga", "") icinga_url = conf.get_string('/settings/icinga', 'url', '') usr = conf.get_string('/settings/icinga', 'user', '') pwd = conf.get_string('/settings/icinga', 'password', '') icinga_auth = requests.auth.HTTPBasicAuth(usr, pwd) (res, os_version, perf) = core.simple_query('check_os_version', ["top-syntax=${list}"]) add_host(server_name, socket.gethostbyname(server_name), os_version) add_nrpe_service(server_name, 'check_cpu', 'check_cpu', 'CPU Load') add_nrpe_service(server_name, 'check_memory', 'check_memory', 'CPU Load') for k in ['check_cpu', 'check_memory']: conf.set_string('/settings/scheduler/schedules/%s'%k, 'command', k) conf.set_string('/settings/scheduler/schedules/%s'%k, 'channel', 'icinga_passive') conf.set_string('/settings/scheduler/schedules/%s'%k, 'interval', '30s') core.load_module('Scheduler', '') reg.simple_subscription('icinga_passive', icinga_passive)
def setup(self, plugin_id, prefix): self.reg = Registry.get(plugin_id) self.reg.simple_function(self.command, StressTest.random_check_handler, 'This is a simple noop command') self.reg.simple_subscription(self.python_channel, StressTest.on_stress_handler) conf = Settings.get() conf.set_string(self.sched_base_path, 'threads', '%d'%use_threads) core.reload(self.sched_alias)
def __init__(self, plugin_id, plugin_alias, script_alias): self.plugin_id = plugin_id self.plugin_alias = plugin_alias self.script_alias = script_alias self.conf = Settings.get(self.plugin_id) self.registry = Registry.get(self.plugin_id) self.core = Core.get(self.plugin_id) self.command_cache = {} self.folder = None
def setup(self, plugin_id, prefix): log('Loading Python unit tests') self.key = '_%stest_command'%prefix self.reg = Registry.get(plugin_id) self.reg.simple_function('py_stress_noop', PythonTest.noop_handler, 'This is a simple noop command') self.reg.simple_subscription('py_stress_test', PythonTest.stress_handler) conf = Settings.get() conf.set_string('/settings/test_scheduler', 'threads', '50') core.reload('test_scheduler')
def setup(self, plugin_id, prefix): self.reg = Registry.get(plugin_id) self.reg.simple_function(self.command, StressTest.random_check_handler, 'This is a simple noop command') self.reg.simple_subscription(self.python_channel, StressTest.on_stress_handler) conf = Settings.get() conf.set_string(self.sched_base_path, 'threads', '%d' % use_threads) core.reload(self.sched_alias)
def install(self, arguments): conf = Settings.get() conf.set_string('/modules', 'pytest', 'PythonScript') fn = os.path.basename(self.__source__) (sn, ext) = os.path.splitext(fn) conf.register_key('/settings/pytest/scripts', sn, 'string', 'UNIT TEST SCRIPT: %s'%self.title(), 'A script for running unittests for: %s'%self.desc(), fn) conf.set_string('/settings/pytest/scripts', sn, fn) conf.save()
def install(self, arguments): global is_windows, route_via_python, route_via_nsca, use_threads conf = Settings.get() # Configure required modules if route_via_python: conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/modules', self.sched_alias, 'Scheduler') if is_windows: conf.set_string('/modules', 'CheckSystem', 'enabled') conf.set_string('/modules', 'CheckHelpers', 'enabled') if route_via_nsca: conf.set_string('/modules', self.nsca_server_alias, 'NSCAServer') conf.set_string('/modules', self.nsca_client_alias, 'NSCAClient') # Configure NSCA Server conf.set_string('/settings/NSCA/%s'%self.nsca_server_alias, 'port', '%d'%self.port) conf.set_string('/settings/NSCA/%s'%self.nsca_server_alias, 'inbox', self.python_channel) conf.set_string('/settings/NSCA/%s'%self.nsca_server_alias, 'encryption', 'aes') # Configure NSCA Client conf.set_string('/settings/NSCA/%s/targets/default'%self.nsca_client_alias, 'address', 'nsca://127.0.0.1:%d'%self.port) conf.set_string('/settings/NSCA/%s/targets/default'%self.nsca_client_alias, 'encryption', 'aes') conf.set_string('/settings/NSCA/%s'%self.nsca_client_alias, 'channel', self.nsca_channel) # Configure python if route_via_python: conf.set_string('/settings/pytest/scripts', 'test_stress', 'test_stress.py') # Configure Scheduler if route_via_python: conf.set_string(self.sched_base_path, 'threads', '0') else: conf.set_string(self.sched_base_path, 'threads', '50') default_path = '%s/default'%self.sched_base_path if route_via_nsca: conf.set_string(default_path, 'channel', self.nsca_channel) else: conf.set_string(default_path, 'channel', self.python_channel) conf.set_string(default_path, 'alias', 'stress') #conf.set_string(default_path, 'target', 'stress_001') use_command = self.command if not route_via_python: use_command = 'CheckOK' conf.set_string(default_path, 'command', use_command) conf.set_string(default_path, 'interval', '5s') for i in range(1, (check_per_second*5)+1): alias = 'stress_python_%i'%i conf.set_string('%s/schedules'%(self.sched_base_path), alias, use_command) conf.save()
def enable_modules(module=None): ret = False conf = Settings.get(plugin_id) core = Core.get(plugin_id) for mod in conf.get_section('/settings/remote-modules/modules'): if module and not mod == module: continue url = conf.get_string('/settings/remote-modules/modules', mod, '') file = get_module_name(url) log("Loading module %s" % file) core.load_module(file, "") return ret
def update_modules(module=None): ret = False conf = Settings.get(plugin_id) for mod in conf.get_section('/settings/remote-modules/modules'): if module and not mod == module: continue url = conf.get_string('/settings/remote-modules/modules', mod, '') log("Fetching module %s as %s" % (mod, url)) file = get_target_file(url) if not download_module(url, file): log_error("Failed to fetch module: %s" % mod) continue ret = True return ret
def install(self, arguments): conf = Settings.get() conf.set_string('/modules', 'test_nscp_server', 'NSCPServer') conf.set_string('/modules', 'test_nscp_client', 'NSCPClient') conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'test_nscp', 'test_nscp.py') conf.set_string('/settings/nscp/test_nscp_server', 'port', '15668') conf.set_string('/settings/nscp/test_nscp_server', 'inbox', 'nscp_test_inbox') conf.set_string('/settings/nscp/test_nscp_client/targets', 'nscp_test_local', 'nscp://127.0.0.1:15668') conf.set_string('/settings/nscp/test_nscp_client', 'channel', 'nscp_test_outbox') conf.save()
def install_test(arguments): log('-+---==(TEST INSTALLER)==---------------------------------------------------+-') log(' | Setup nessecary configuration for running test |') log(' | This includes: Loading the PythonScript module at startup |') log(' | To use this please run nsclient++ in "test mode" like so: |') log(' | nscp --test |') log(' | Then start the pytest_test command by typing it and press enter like so: |') log(' | pytest_test |') log(' | Lastly exit by typing exit like so: |') log(' | exit |') log('-+--------------------------------------------------------==(DAS ENDE!)==---+-') conf = Settings.get() conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'pytest', 'test.py') conf.save()
def install(self, arguments): conf = Settings.get() conf.set_string('/modules', 'test_nrpe_server', 'NRPEServer') conf.set_string('/modules', 'test_nrpe_client', 'NRPEClient') conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'test_nrpe', 'test_nrpe.py') conf.set_string('/settings/NRPE/test_nrpe_server', 'port', '15666') conf.set_string('/settings/NRPE/test_nrpe_server', 'inbox', 'nrpe_test_inbox') conf.set_string('/settings/NRPE/test_nrpe_server', 'encryption', '1') conf.set_string('/settings/NRPE/test_nrpe_client/targets', 'nrpe_test_local', 'nrpe://127.0.0.1:15666') conf.set_string('/settings/NRPE/test_nrpe_client', 'channel', 'nrpe_test_outbox') conf.save()
def install(self, arguments): conf = Settings.get() conf.set_string("/modules", "pytest", "PythonScript") fn = os.path.basename(self.__source__) (sn, ext) = os.path.splitext(fn) conf.register_key( "/settings/pytest/scripts", sn, "string", "UNIT TEST SCRIPT: %s" % self.title(), "A script for running unittests for: %s" % self.desc(), fn, ) conf.set_string("/settings/pytest/scripts", sn, fn) conf.save()
def install(self, arguments): conf = Settings.get() conf.set_string('/modules', 'test_nsca_server', 'NSCAServer') conf.set_string('/modules', 'test_nsca_client', 'NSCAClient') conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'test_nsca', 'test_nsca.py') conf.set_string('/settings/NSCA/test_nsca_server', 'port', '15667') conf.set_string('/settings/NSCA/test_nsca_server', 'inbox', 'nsca_test_inbox') conf.set_string('/settings/NSCA/test_nsca_server', 'encryption', '1') conf.set_string('/settings/NSCA/test_nsca_client/targets', 'nsca_test_local', 'nsca://127.0.0.1:15667') conf.set_string('/settings/NSCA/test_nsca_client', 'channel', 'nsca_test_outbox') conf.save()
def install(self, arguments): conf = Settings.get() conf.set_string('/modules', 'pytest_eventlog', 'CheckEventLog') conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'test_eventlog', 'test_eventlog.py') conf.set_string('/settings/pytest_eventlog/real-time', 'enabled', 'true') conf.set_string('/settings/pytest_eventlog/real-time', 'filter', 'id = 1000 and category = 0') conf.set_string('/settings/pytest_eventlog/real-time/filters', 'test', 'id = 1000 and category = 1') conf.set_string('/settings/pytest_eventlog/real-time', 'maximum age', '5s') conf.set_string('/settings/pytest_eventlog/real-time', 'destination', 'pytest_evlog') conf.set_string('/settings/pytest_eventlog/real-time', 'language', 'english') conf.set_string('/settings/pytest_eventlog/real-time', 'debug', 'true') conf.set_string('/settings/pytest_eventlog/real-time', 'enable active', 'true') conf.save()
def found_nic(name, alias): global plugin_id, nics if not alias in nics: nics.append(alias) id = 'check_nic_%d' % len(nics) add_nrpe_service(server_name, id, 'check_network', alias, ["filter=name='%s'" % name]) conf = Settings.get(plugin_id) conf.set_string( '/settings/scheduler/schedules/%s' % id, 'command', 'check_network %s "filter=name=%s"' % (alias, "'%s'" % name)) conf.set_string('/settings/scheduler/schedules/%s' % id, 'channel', 'icinga_passive') conf.set_string('/settings/scheduler/schedules/%s' % id, 'interval', '30s') return True return False
def init(plugin_id, plugin_alias, script_alias): conf = Settings.get(plugin_id) if conf.get_string('/settings/icamp', 'configured', 'false') == 'false': conf.set_string('/settings/icamp', 'configured', 'true') conf.set_string('/modules', 'GraphiteClient', 'enabled') conf.set_string('/modules', 'Scheduler', 'enabled') conf.set_string('/modules', 'CheckSystem', 'enabled') conf.set_string('/modules', 'ElasticClient', 'enabled') conf.set_string('/modules', 'CheckEventlog', 'enabled') conf.set_string('/settings/graphite/client/targets/default', 'host', '127.0.0.1') conf.set_string('/settings/scheduler/schedules/default', 'interval', '5s') conf.set_string('/settings/scheduler/schedules/default', 'channel', 'graphite') conf.set_string('/settings/scheduler/schedules', 'cpu', 'check_cpu') conf.set_string('/settings/elastic/client', 'address', 'http://127.0.0.1:9200/_bulk') conf.set_string('/settings/elastic/client', 'events', 'eventlog:errors,system.process:notepad') conf.set_string('/settings/eventlog/real-time', 'enabled', 'true') conf.set_string('/settings/eventlog/real-time/filters/errors', 'log', 'application') conf.set_string('/settings/eventlog/real-time/filters/errors', 'destination', 'events') conf.set_string('/settings/eventlog/real-time/filters/errors', 'filter', "level='error'") conf.set_string('/settings/system/windows/real-time/process/notepad', 'process', "notepad.exe") conf.set_string('/settings/system/windows/real-time/process/notepad', 'filter', "new = 1") conf.set_string('/settings/system/windows/real-time/process/notepad', 'destination', "events") conf.save() core = Core.get(plugin_id) core.reload('service')
def init(pid, plugin_alias, script_alias): global prefix global plugin_id plugin_id = pid if script_alias: prefix = '%s_'%script_alias conf = Settings.get() #val = conf.get_string('/modules', 'PythonScript', 'foo') #log('Got it: %s'%val) log('Testing to register a function') reg = Registry.get(plugin_id) reg.simple_cmdline('help', get_help) reg.simple_cmdline('install_python_test', install_test) reg.simple_function('%stest'%prefix, test, 'Run python unittest')
def install(self, arguments): conf = Settings.get() conf.set_string('/modules', 'test_scheduler', 'Scheduler') conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'test_python', 'test_python.py') base_path = '/settings/test_scheduler' conf.set_string(base_path, 'threads', '0') default_path = '%s/schedules/default'%base_path conf.set_string(default_path, 'channel', 'py_stress_test') conf.set_string(default_path, 'alias', 'stress') conf.set_string(default_path, 'command', 'py_stress_noop') conf.set_string(default_path, 'interval', '5s') for i in range(1, install_checks): alias = 'stress_python_%i'%i conf.set_string('%s/schedules'%(base_path), alias, 'py_stress_noop') conf.save()
def install(self, arguments): conf = Settings.get() conf.set_string('/modules', 'pytest_eventlog', 'CheckEventLog') conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'test_eventlog', 'test_eventlog.py') conf.set_string('/settings/pytest_eventlog/real-time', 'enabled', 'true') self.install_filter(conf, '/settings/pytest_eventlog/real-time/filters/default', 'pytest_evlog_01', 'id = 1000 and category = 0', '%type% %source%: %message%','OK') self.install_filter(conf, '/settings/pytest_eventlog/real-time/filters/py_test_001', 'pytest_evlog_01', 'id = 1000 and category = 1', 'X1 %type% %source%: %message%', 'WARNING') self.install_filter(conf, '/settings/pytest_eventlog/real-time/filters/py_test_002', 'pytest_evlog_02', 'id = 1000 and category = 2', 'X2 %type% %source%: %message%', 'CRITICAL') self.install_filter(conf, '/settings/pytest_eventlog/real-time/filters/py_test_003', None, 'id = 1000 and category = 3', 'X3 %type% %source%: %message%', 'UNKNOWN') self.install_filter(conf, '/settings/pytest_eventlog/real-time/filters/py_test_004', None, None , 'X4 %type% %source%: %message%', None) conf.set_string('/settings/pytest_eventlog/real-time', 'maximum age', '5s') conf.set_string('/settings/pytest_eventlog/real-time', 'debug', 'true') conf.set_string('/settings/pytest_eventlog/real-time', 'enable active', 'true') conf.save()
def install(self, arguments): conf = Settings.get() conf.set_string('/modules', 'pytest_eventlog', 'CheckEventLog') conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/settings/pytest/scripts', 'test_eventlog', 'test_eventlog.py') conf.set_string('/settings/pytest_eventlog/real-time', 'enabled', 'true') self.install_filter( conf, '/settings/pytest_eventlog/real-time/filters/default', 'pytest_evlog_01', 'id = 1000 and category = 0', '%type% %source%: %message%', 'OK') self.install_filter( conf, '/settings/pytest_eventlog/real-time/filters/py_test_001', 'pytest_evlog_01', 'id = 1000 and category = 1', 'X1 %type% %source%: %message%', 'WARNING') self.install_filter( conf, '/settings/pytest_eventlog/real-time/filters/py_test_002', 'pytest_evlog_02', 'id = 1000 and category = 2', 'X2 %type% %source%: %message%', 'CRITICAL') self.install_filter( conf, '/settings/pytest_eventlog/real-time/filters/py_test_003', None, 'id = 1000 and category = 3', 'X3 %type% %source%: %message%', 'UNKNOWN') self.install_filter( conf, '/settings/pytest_eventlog/real-time/filters/py_test_004', None, None, 'X4 %type% %source%: %message%', None) conf.set_string('/settings/pytest_eventlog/real-time', 'maximum age', '5s') conf.set_string('/settings/pytest_eventlog/real-time', 'debug', 'true') conf.set_string('/settings/pytest_eventlog/real-time', 'enable active', 'true') conf.save()
def init(self, plugin_id, prefix): self.plugin_id = plugin_id self.reg = Registry.get(plugin_id) self.core = Core.get(plugin_id) self.conf = Settings.get(plugin_id)
def init(self, plugin_id, prefix): self.reg = Registry.get(plugin_id) self.core = Core.get(plugin_id) self.conf = Settings.get(plugin_id)
def teardown(self): conf = Settings.get() conf.set_string('/settings/test_scheduler', 'threads', '0') core.reload('test_scheduler') None
def teardown(self): if not self.background: conf = Settings.get() conf.set_string(self.sched_base_path, 'threads', '0') core.reload(self.sched_alias)
def save_world(arguments): global world_status, plugin_id conf = Settings.get(plugin_id) conf.set_string('/settings/cool script', 'world', world_status) conf.save() return (status.OK, 'The world is saved: %s'%world_status)
def install(self, arguments): global is_windows, route_via_python, route_via_nsca, use_threads conf = Settings.get() # Configure required modules if route_via_python: conf.set_string('/modules', 'pytest', 'PythonScript') conf.set_string('/modules', self.sched_alias, 'Scheduler') if is_windows: conf.set_string('/modules', 'CheckSystem', 'enabled') conf.set_string('/modules', 'CheckHelpers', 'enabled') if route_via_nsca: conf.set_string('/modules', self.nsca_server_alias, 'NSCAServer') conf.set_string('/modules', self.nsca_client_alias, 'NSCAClient') # Configure NSCA Server conf.set_string('/settings/NSCA/%s' % self.nsca_server_alias, 'port', '%d' % self.port) conf.set_string('/settings/NSCA/%s' % self.nsca_server_alias, 'inbox', self.python_channel) conf.set_string('/settings/NSCA/%s' % self.nsca_server_alias, 'encryption', 'aes') # Configure NSCA Client conf.set_string( '/settings/NSCA/%s/targets/default' % self.nsca_client_alias, 'address', 'nsca://127.0.0.1:%d' % self.port) conf.set_string( '/settings/NSCA/%s/targets/default' % self.nsca_client_alias, 'encryption', 'aes') conf.set_string('/settings/NSCA/%s' % self.nsca_client_alias, 'channel', self.nsca_channel) # Configure python if route_via_python: conf.set_string('/settings/pytest/scripts', 'test_stress', 'test_stress.py') # Configure Scheduler if route_via_python: conf.set_string(self.sched_base_path, 'threads', '0') else: conf.set_string(self.sched_base_path, 'threads', '50') default_path = '%s/default' % self.sched_base_path if route_via_nsca: conf.set_string(default_path, 'channel', self.nsca_channel) else: conf.set_string(default_path, 'channel', self.python_channel) conf.set_string(default_path, 'alias', 'stress') #conf.set_string(default_path, 'target', 'stress_001') use_command = self.command if not route_via_python: use_command = 'CheckOK' conf.set_string(default_path, 'command', use_command) conf.set_string(default_path, 'interval', '5s') for i in range(1, (check_per_second * 5) + 1): alias = 'stress_python_%i' % i conf.set_string('%s/schedules' % (self.sched_base_path), alias, use_command) conf.save()
def save_world(arguments): global world_status, plugin_id conf = Settings.get(plugin_id) conf.set_string('/settings/cool script', 'world', world_status) conf.save() return (status.OK, 'The world is saved: %s' % world_status)