* 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
* Make usage of logger, also harden exception logging
* Make usage of hardened command_runner
This is a hardened version of subprocess.call which handles timeout, encoding and various errors that may happen during execution
* Remove unused exception logging
* Fix bogus exception logging
* Rename exception to match log line
* Make command_runner pylint friendly under Unix
* Add copyrights to my parts of code
When mysqld is configured to listen on a non localhost port, pymysql.install_as_MySQLdb() has inconsistent behavior.
Try to import MySQLdb first which has the correct behavior.