Migrate xDSL code to module, and add support for VDSL2 MIB (#14207)

* use component to discover if xDSL polling is needed

use component to discover if xDSL polling is needed

* Components OK, Polling in correct files, no DB for VDSL

* GUI

GUI_suite

* per port as well

* rename

* interface listing

* draytek_snmpsim

* fix arraymerge

fix names and max value

* schema

schema

style

* remove one dbFetchRows

remove 2x dbFetchCell

style

style

remove Legacy dbFetchRow

tests

tests

eloquent

more eloquent

more eloquent

one more gone

* fix properties access

eloquent_insert_update

style

tests

tests

tests

tests

* tests

tests

tests

* adslLineCoding

* Models

* fix not nullable cols in DB from code

default values

typo

rename

typo

schema

fix

fix

vdsl fix now

typo

typo

fix size

fix size

* Power values for VDSL

Power values for VDSL

Power values for VDSL

DB

* cleanup

* Rrd::checkRrdExists

* always enable DSL discovery

style

* xdsl module

* cleanup and move to Module

cleanup and move to Module

cleanup and move to Module

cleanup and move to Module

* Fix display

* fix polling and tenth

* remove legacy poller

* Style and Cosmetics

Cosmetics

Cleanup

* Translations

Translations

* exists

exists

* add test support for xdsl

* remove last component call

unused

* translations

* remove non standard onclick event on xdsl line

* Update Discovery Support.md

Update Poller Support.md

toner_gone

* Notification for removal of lnms config:set enable_ports_adsl true

* enable on devices with potential DSL interfaces

* tests are working now

fix teldat tests

* os_schema

* teldat

* move to new module structure

* move to new module structure

* wrong dump function

* wrong dump function

* laravel_through_key hidden

* Update notifications.rss

* Update notifications.rss

Co-authored-by: Tony Murray <murraytony@gmail.com>
This commit is contained in:
PipoCanaja
2022-09-08 02:29:17 +02:00
committed by GitHub
parent b44f1546a2
commit 53bfb24ef9
56 changed files with 4079 additions and 278 deletions

View File

@@ -1,5 +1,9 @@
<?php
use App\Models\Device;
use App\Models\Port;
use App\Models\PortAdsl;
use App\Models\PortVdsl;
use App\Plugins\Hooks\PortTabHook;
use LibreNMS\Util\Rewrite;
use LibreNMS\Util\Url;
@@ -81,11 +85,13 @@ if (dbFetchCell("SELECT COUNT(*) FROM `sensors` WHERE `device_id` = ? AND `entPh
$menu_options['sensors'] = 'Health';
}
if (dbFetchCell("SELECT COUNT(*) FROM `ports_adsl` WHERE `port_id` = '" . $port->port_id . "'")) {
$menu_options['adsl'] = 'ADSL';
if (PortAdsl::where('port_id', $port->port_id)->exists()) {
$menu_options['xdsl'] = 'xDSL';
} elseif (PortVdsl::where('port_id', $port->port_id)->exists()) {
$menu_options['xdsl'] = 'xDSL';
}
if (dbFetchCell("SELECT COUNT(*) FROM `ports` WHERE `pagpGroupIfIndex` = '" . $port->ifIndex . "' and `device_id` = '" . $device['device_id'] . "'")) {
if (DeviceCache::getPrimary()->ports()->where('pagpGroupIfIndex', $port->ifIndex)->exists()) {
$menu_options['pagp'] = 'PAgP';
}
@@ -103,7 +109,7 @@ if (count($components) > 0) {
$menu_options['cbqos'] = 'CBQoS';
}
$portModel = \App\Models\Port::find($port->port_id);
$portModel = Port::find($port->port_id);
if (LibreNMS\Plugins::countHooks('port_container') || \PluginManager::hasHooks(PortTabHook::class, ['port' => $portModel])) {
// Checking if any plugin implements the port_container. If yes, allow to display the menu_option

View File

@@ -1,6 +1,6 @@
<?php
if (file_exists(get_port_rrdfile_path($device['hostname'], $port['port_id'], 'adsl'))) {
if (Rrd::checkRrdExists(Rrd::name($device['hostname'], Rrd::portName($port['port_id'], 'adsl')))) {
echo '<div class=graphhead>ADSL Current Line Speed</div>';
$graph_type = 'port_adsl_speed';
@@ -26,3 +26,20 @@ if (file_exists(get_port_rrdfile_path($device['hostname'], $port['port_id'], 'ad
include 'includes/html/print-interface-graphs.inc.php';
}
if (Rrd::checkRrdExists(Rrd::name($device['hostname'], Rrd::portName($port['port_id'], 'xdsl2LineStatusAttainableRate')))) {
echo '<div class=graphhead>VDSL Current Line Speed</div>';
$graph_type = 'port_vdsl_speed';
include 'includes/html/print-interface-graphs.inc.php';
echo '<div class=graphhead>VDSL Attainable Speed</div>';
$graph_type = 'port_vdsl_attainable';
include 'includes/html/print-interface-graphs.inc.php';
echo '<div class=graphhead>VDSL Output Powers</div>';
$graph_type = 'port_vdsl_power';
include 'includes/html/print-interface-graphs.inc.php';
}

View File

@@ -33,8 +33,8 @@ if (dbFetchCell("SELECT * FROM links AS L, ports AS I WHERE I.device_id = '" . $
$menu_options['neighbours'] = 'Neighbours';
}
if (dbFetchCell("SELECT COUNT(*) FROM `ports` WHERE `ifType` = 'adsl'")) {
$menu_options['adsl'] = 'ADSL';
if (DeviceCache::getPrimary()->portsAdsl()->exists() || DeviceCache::getPrimary()->portsVdsl()->exists()) {
$menu_options['xdsl'] = 'xDSL';
}
$sep = '';
@@ -123,7 +123,7 @@ if ($vars['view'] == 'minigraphs') {
}
echo '</div>';
} elseif ($vars['view'] == 'arp' || $vars['view'] == 'adsl' || $vars['view'] == 'neighbours' || $vars['view'] == 'fdb') {
} elseif ($vars['view'] == 'arp' || $vars['view'] == 'xdsl' || $vars['view'] == 'neighbours' || $vars['view'] == 'fdb') {
include 'ports/' . $vars['view'] . '.inc.php';
} else {
if ($vars['view'] == 'details') {

View File

@@ -1,15 +0,0 @@
<?php
echo "<div style='margin: 5px;'><table border=0 cellspacing=0 cellpadding=5 width=100%>";
echo '<tr><th>Port</th><th>Traffic</th><th>Sync Speed</th><th>Attainable Speed</th><th>Attenuation</th><th>SNR Margin</th><th>Output Powers</th></tr>';
$i = '0';
$ports = dbFetchRows("select * from `ports` AS P, `ports_adsl` AS A WHERE P.device_id = ? AND A.port_id = P.port_id AND P.deleted = '0' ORDER BY `ifIndex` ASC", [$device['device_id']]);
foreach ($ports as $port) {
include 'includes/html/print-interface-adsl.inc.php';
$i++;
}
echo '</table></div>';
echo "<div style='min-height: 150px;'></div>";

View File

@@ -0,0 +1,28 @@
<?php
echo "<div style='margin: 5px;'><table border=0 cellspacing=0 cellpadding=5 width=100%>";
echo '<tr><th>Port</th><th>Traffic</th><th>Sync Speed</th><th>Attainable Speed</th><th>Attenuation</th><th>SNR Margin</th><th>Output Powers</th></tr>';
$i = '0';
$ports = DeviceCache::getPrimary()->ports()->join('ports_adsl', 'ports.port_id', 'ports_adsl.port_id')
->where('ports.deleted', '0')
->orderby('ports.ifIndex', 'ASC')
->get();
foreach ($ports as $port) {
include 'includes/html/print-interface-adsl.inc.php';
$i++;
}
$ports = DeviceCache::getPrimary()->ports()->join('ports_vdsl', 'ports.port_id', '=', 'ports_vdsl.port_id')
->where('ports.deleted', '0')
->orderby('ports.ifIndex', 'ASC')
->get();
foreach ($ports as $port) {
include 'includes/html/print-interface-vdsl.inc.php';
$i++;
}
echo '</table></div>';
echo "<div style='min-height: 150px;'></div>";