mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
refactor: Move nested defaults to Config::processConfig() (#8429)
* Move nested defaults to Config::processConfig() Fixes log_file when users set log_dir for example. Removed stuff: mibdir dp_autocreate base_url: setting http/https before config.php is loaded... moved collectd setting to it's own config file * add base_url mod back. I thought that since definitions is called before config.php it was useless, but it changes the built in definition between http and https.
This commit is contained in:
committed by
Neil Lathwood
parent
6f509f4e88
commit
85d0e3b98e
@ -368,18 +368,25 @@ class Config
|
||||
ini_set('session.cookie_secure', 1);
|
||||
}
|
||||
|
||||
// If we're on SSL, let's properly detect it
|
||||
if (isset($_SERVER['HTTPS'])) {
|
||||
self::set('base_url', preg_replace('/^http:/', 'https:', self::get('base_url')));
|
||||
}
|
||||
|
||||
// Define some variables if they aren't set by user definition in config.php
|
||||
self::setDefault('html_dir', '%s/html', ['install_dir']);
|
||||
self::setDefault('rrd_dir', '%s/rrd', ['install_dir']);
|
||||
self::setDefault('mib_dir', '%s/mibs', ['install_dir']);
|
||||
self::setDefault('log_dir', '%s/logs', ['install_dir']);
|
||||
self::setDefault('log_file', '%s/%s.log', ['log_dir', 'project_id']);
|
||||
self::setDefault('plugin_dir', '%s/plugins', ['html_dir']);
|
||||
// self::setDefault('email_from', '"%s" <%s@' . php_uname('n') . '>', ['project_name', 'email_user']); // FIXME email_from set because alerting config
|
||||
|
||||
// deprecated variables
|
||||
if (self::has('rrdgraph_real_95th')) {
|
||||
self::set('rrdgraph_real_percentile', self::get('rrdgraph_real_95th'));
|
||||
}
|
||||
self::deprecatedVariable('rrdgraph_real_95th', 'rrdgraph_real_percentile');
|
||||
self::deprecatedVariable('fping_options.millisec', 'fping_options.interval');
|
||||
self::deprecatedVariable('discovery_modules.cisco-vrf', 'discovery_modules.vrf');
|
||||
|
||||
if (self::has('fping_options.millisec')) {
|
||||
self::set('fping_options.interval', self::get('fping_options.millisec'));
|
||||
}
|
||||
|
||||
if (self::has('discovery_modules.cisco-vrf')) {
|
||||
self::set('discovery_modules.vrf', self::get('discovery_modules.cisco-vrf'));
|
||||
}
|
||||
|
||||
// make sure we have full path to binaries in case PATH isn't set
|
||||
foreach (array('fping', 'fping6', 'snmpgetnext', 'rrdtool') as $bin) {
|
||||
@ -388,4 +395,37 @@ class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set default values for defaults that depend on other settings, if they are not already loaded
|
||||
*
|
||||
* @param string $key
|
||||
* @param string $value value to set to key or vsprintf() format string for values below
|
||||
* @param array $format_values array of keys to send to vsprintf()
|
||||
*/
|
||||
private static function setDefault($key, $value, $format_values = [])
|
||||
{
|
||||
if (!self::has($key)) {
|
||||
if (is_string($value)) {
|
||||
$format_values = array_map('self::get', $format_values);
|
||||
self::set($key, vsprintf($value, $format_values));
|
||||
} else {
|
||||
self::set($key, $value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy data from old variables to new ones.
|
||||
*
|
||||
* @param $old
|
||||
* @param $new
|
||||
*/
|
||||
private static function deprecatedVariable($old, $new)
|
||||
{
|
||||
if (self::has($old)) {
|
||||
d_echo("Copied deprecated config $old to $new\n");
|
||||
self::set($new, self::get($old));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,11 @@
|
||||
* Configuration file for Collectd graph browser
|
||||
*/
|
||||
|
||||
if (isset($config['rrdgraph_def_text'])) {
|
||||
$config['rrdgraph_def_text'] = str_replace(' ', ' ', $config['rrdgraph_def_text']);
|
||||
$config['rrd_opts_array'] = explode(' ', trim($config['rrdgraph_def_text']));
|
||||
}
|
||||
|
||||
// Array of paths when collectd's rrdtool plugin writes RRDs
|
||||
$config['datadirs'] = array($config['collectd_dir']);
|
||||
// Width of graph to be generated by rrdgraph
|
||||
|
@ -614,26 +614,6 @@ $config['device_types'][$i]['icon'] = 'workstation.png';
|
||||
//
|
||||
$config['project_name_version'] = $config['project_name'];
|
||||
|
||||
if (isset($config['rrdgraph_def_text'])) {
|
||||
$config['rrdgraph_def_text'] = str_replace(' ', ' ', $config['rrdgraph_def_text']);
|
||||
$config['rrd_opts_array'] = explode(' ', trim($config['rrdgraph_def_text']));
|
||||
}
|
||||
|
||||
if (isset($config['cdp_autocreate'])) {
|
||||
$config['dp_autocreate'] = $config['cdp_autocreate'];
|
||||
}
|
||||
|
||||
if (!isset($config['mibdir'])) {
|
||||
$config['mibdir'] = $config['install_dir'].'/mibs';
|
||||
}
|
||||
|
||||
$config['mib_dir'] = $config['mibdir'];
|
||||
|
||||
// If we're on SSL, let's properly detect it
|
||||
if (isset($_SERVER['HTTPS'])) {
|
||||
$config['base_url'] = preg_replace('/^http:/', 'https:', $config['base_url']);
|
||||
}
|
||||
|
||||
// Set some times needed by loads of scripts (it's dynamic, so we do it here!)
|
||||
$config['time']['now'] = time();
|
||||
$config['time']['now'] -= ($config['time']['now'] % 300);
|
||||
@ -673,24 +653,3 @@ $config['ipmi_unit']['Watts'] = 'power';
|
||||
$config['ipmi_unit']['Amps'] = 'current';
|
||||
$config['ipmi_unit']['percent'] = 'load';
|
||||
$config['ipmi_unit']['discrete'] = '';
|
||||
|
||||
// Define some variables if they aren't set by user definition in config.php
|
||||
if (!isset($config['html_dir'])) {
|
||||
$config['html_dir'] = $config['install_dir'].'/html';
|
||||
}
|
||||
|
||||
if (!isset($config['rrd_dir'])) {
|
||||
$config['rrd_dir'] = $config['install_dir'].'/rrd';
|
||||
}
|
||||
|
||||
if (!isset($config['log_dir'])) {
|
||||
$config['log_dir'] = $config['install_dir'].'/logs';
|
||||
}
|
||||
|
||||
if (!isset($config['log_file'])) {
|
||||
$config['log_file'] = $config['log_dir'].'/'.$config['project_id'].'.log';
|
||||
}
|
||||
|
||||
if (!isset($config['plugin_dir'])) {
|
||||
$config['plugin_dir'] = $config['html_dir'].'/plugins';
|
||||
}
|
||||
|
Reference in New Issue
Block a user