mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Device groups rewrite (#10346)
* Device Groups rewrite Updated web ui Static or dynamic groups allowed Alert rule query builder Translation support Permissions support * cleanup, make relationship save, and validate it * builder WIP * rules builder and rules saving/loading * Parse query builder to Laravel Fluent query * Upgrade existing groups when editing. Properly update only dynamic groups when polling. * remove unused old code Update API and other places to use Eloquent * debug output in poller restored * Fix up some things creating static improved validation fix js error on creation Fix static groups in polling * hide pattern for static group * Implement authorization Use in the menu too * update schema * fix rollback * Don't abort on invalid queries * fixes to query builder * add test data, looks like macros aren't handled (omitted them because groups don't use them generally) * Add macro support for QueryBuilderFluentParser * add test for macro that accepts value * More space in forms Retain rules when converted to static no duplicate names allowed * Better error feedback Update related devices on save * Add button icon * format * update docs * fix tests * Fix some QueryBuilderFluentParser issues with OR updated/more test data * Show device groups runtime fix querybuilder.json format * Store table joins in the rules to minimize polling time Update group joins in daily.sh (and when they are saved) * Update daily.php * Add units to time
This commit is contained in:
21
daily.php
21
daily.php
@@ -7,6 +7,7 @@
|
||||
*/
|
||||
|
||||
use App\Models\Device;
|
||||
use App\Models\DeviceGroup;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use LibreNMS\Config;
|
||||
use LibreNMS\Exceptions\LockException;
|
||||
@@ -287,6 +288,26 @@ if ($options['f'] === 'refresh_alert_rules') {
|
||||
}
|
||||
}
|
||||
|
||||
if ($options['f'] === 'refresh_device_groups') {
|
||||
try {
|
||||
if (Config::get('distributed_poller')) {
|
||||
MemcacheLock::lock('refresh_device_groups', 0, 86000);
|
||||
}
|
||||
|
||||
echo 'Refreshing device group table relationships' . PHP_EOL;
|
||||
DeviceGroup::all()->each(function ($deviceGroup) {
|
||||
if ($deviceGroup->type == 'dynamic') {
|
||||
/** @var DeviceGroup $deviceGroup */
|
||||
$deviceGroup->rules = $deviceGroup->getParser()->generateJoins()->toArray();
|
||||
$deviceGroup->save();
|
||||
}
|
||||
});
|
||||
} catch (LockException $e) {
|
||||
echo $e->getMessage() . PHP_EOL;
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
||||
if ($options['f'] === 'notify') {
|
||||
if (isset($config['alert']['default_mail'])) {
|
||||
send_mail(
|
||||
|
Reference in New Issue
Block a user