mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
* Add inline command_runner library * New service/discovery/poller wrapper * Convert old wrapper scripts to bootstrap loaders for wrapper.py * Add command_runner to current requirements * Move wrapper.py to LibreNMS module directory * Reformat files * File reformatting * bootstrap files reformatting * Fusion service and wrapper database connections and get_config_data functions * Moved subprocess calls to command_runner * LibreNMS library and __init__ fusion * Reformat files * Normalize logging use * Reformatting code * Fix missing argument for error log * Fix refactor typo in DBConfig class * Add default timeout for config.php data fetching * distributed discovery should finish with a timestamp instead of an epoch * Fix docstring inside dict prevents service key to work * Fix poller insert statement * Fix service wrapper typo * Update docstring since we changed function behavior * Normalize SQL statements * Convert optparse to argparse * Revert discovery thread number * Handle debug logging * Fix file option typo * Reformat code * Add credits to source package * Rename logs depending on the wrapper type * Cap max logfile size to 10MB * Reformat code * Add exception for Redis < 5.0 * Make sure we always log something from service * Fix bogus description
58 lines
1.6 KiB
Python
Executable File
58 lines
1.6 KiB
Python
Executable File
#! /usr/bin/env python3
|
|
"""
|
|
This is a Bootstrap script for wrapper.py, in order to retain compatibility with earlier LibreNMS setups
|
|
"""
|
|
|
|
import os
|
|
from argparse import ArgumentParser
|
|
|
|
import LibreNMS
|
|
import LibreNMS.wrapper as wrapper
|
|
|
|
WRAPPER_TYPE = "poller"
|
|
DEFAULT_WORKERS = 16
|
|
|
|
"""
|
|
Take the amount of threads we want to run in parallel from the commandline
|
|
if None are given or the argument was garbage, fall back to default
|
|
"""
|
|
usage = (
|
|
"usage: %(prog)s [options] <amount_of_workers> (Default: {}"
|
|
"(Do not set too high, or you will get an OOM)".format(DEFAULT_WORKERS)
|
|
)
|
|
description = "Spawn multiple poller.php processes in parallel."
|
|
parser = ArgumentParser(usage=usage, description=description)
|
|
parser.add_argument(dest="amount_of_workers", default=DEFAULT_WORKERS)
|
|
parser.add_argument(
|
|
"-d",
|
|
"--debug",
|
|
dest="debug",
|
|
action="store_true",
|
|
default=False,
|
|
help="Enable debug output. WARNING: Leaving this enabled will consume a lot of disk space.",
|
|
)
|
|
args = parser.parse_args()
|
|
|
|
config = LibreNMS.get_config_data(os.path.dirname(os.path.realpath(__file__)))
|
|
log_dir = config["log_dir"]
|
|
log_file = os.path.join(log_dir, WRAPPER_TYPE + ".log")
|
|
logger = LibreNMS.logger_get_logger(log_file, debug=args.debug)
|
|
|
|
try:
|
|
amount_of_workers = int(args.amount_of_workers)
|
|
except (IndexError, ValueError):
|
|
amount_of_workers = DEFAULT_WORKERS
|
|
logger.warning(
|
|
"Bogus number of workers given. Using default number ({}) of workers.".format(
|
|
amount_of_workers
|
|
)
|
|
)
|
|
|
|
wrapper.wrapper(
|
|
WRAPPER_TYPE,
|
|
amount_of_workers=amount_of_workers,
|
|
config=config,
|
|
log_dir=log_dir,
|
|
_debug=args.debug,
|
|
)
|