mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Refactor datastores to classes (#9179)
* Datastores to object oriented code, using the Laravel IoC container Change instantiation better DI move OpenTSDB Small re-orgs remove unused stuff Fix graphs and other scripts Use DI for all except rrd fix up connection error handling Add tests, fix up a "few" things Add Config::forget() Style fixes Don't reference legacy code remove accidental code paste Add datastores phpunit groups some tests * rebase fixes * some test fixes * shorter tests * shorter tests * Don't except when rrdtool can't be started. * restore tests * fix rrd tests * fix iterable change upstream * fix isValidDataset * fix invalid data bug * fix mysql incorrect ds * fix issue with data that is too long * use regular data_update() * Use log facade * OpenTSDB mis-ordered arguments fix * Making a singleton with different options makes different singletons. Just use the global config settings to disable datastores. * only filter tags for datastores that won't it don't modify the tags permanently * Update copyrights to include original authors. * Stats for all datastores * Fix mysql sends different rrd / other ds names * fix snmp last stats not initialized remove unused function * remove unused function and move single use function closer to its use * InfluxDB does not need to update null or U values. Skip write if all fields are empty * Fix smart value checks * fix style issues
This commit is contained in:
@@ -30,8 +30,9 @@ use LibreNMS\Exceptions\InvalidRrdTypeException;
|
||||
|
||||
class RrdDefinition
|
||||
{
|
||||
private static $types = array('GAUGE', 'DERIVE', 'COUNTER', 'ABSOLUTE', 'DCOUNTER', 'DDERIVE');
|
||||
private $dataSets = array();
|
||||
private static $types = ['GAUGE', 'DERIVE', 'COUNTER', 'ABSOLUTE', 'DCOUNTER', 'DDERIVE'];
|
||||
private $dataSets = [];
|
||||
private $skipNameCheck = false;
|
||||
|
||||
/**
|
||||
* Make a new empty RrdDefinition
|
||||
@@ -58,14 +59,14 @@ class RrdDefinition
|
||||
d_echo("DS must be set to a non-empty string.");
|
||||
}
|
||||
|
||||
$ds = array();
|
||||
$ds[] = $this->escapeName($name);
|
||||
$ds[] = $this->checkType($type);
|
||||
$ds[] = is_null($heartbeat) ? Config::get('rrd.heartbeat') : $heartbeat;
|
||||
$ds[] = is_null($min) ? 'U' : $min;
|
||||
$ds[] = is_null($max) ? 'U' : $max;
|
||||
|
||||
$this->dataSets[] = $ds;
|
||||
$name = $this->escapeName($name);
|
||||
$this->dataSets[$name] = [
|
||||
$name,
|
||||
$this->checkType($type),
|
||||
is_null($heartbeat) ? Config::get('rrd.heartbeat') : $heartbeat,
|
||||
is_null($min) ? 'U' : $min,
|
||||
is_null($max) ? 'U' : $max,
|
||||
];
|
||||
|
||||
return $this;
|
||||
}
|
||||
@@ -82,6 +83,22 @@ class RrdDefinition
|
||||
}, '');
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the give dataset name is valid for this definition
|
||||
*
|
||||
* @param $name
|
||||
* @return bool
|
||||
*/
|
||||
public function isValidDataset($name)
|
||||
{
|
||||
return $this->skipNameCheck || isset($this->dataSets[$name]);
|
||||
}
|
||||
|
||||
public function disableNameChecking()
|
||||
{
|
||||
$this->skipNameCheck = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that the data set type is valid.
|
||||
*
|
||||
|
Reference in New Issue
Block a user