mirror of
https://github.com/stylersnico/librenms.git
synced 2026-07-30 16:14:21 +02:00
- Pre-Init the $options array.
In some scenarios $options was already set with a previous filter. - Remove RRD file checking, test for existance of components instead.
This commit is contained in:
@@ -87,9 +87,14 @@ if (dbFetchCell("SELECT COUNT(*) FROM `ports_vlans` WHERE `port_id` = '".$port['
|
|||||||
$menu_options['vlans'] = 'VLANs';
|
$menu_options['vlans'] = 'VLANs';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Are there any CBQoS rrd's for this ifIndex?
|
// Are there any CBQoS components for this device?
|
||||||
$cbqos = glob($config['rrd_dir'].'/'.$device['hostname'].'/port-'.$port['ifIndex'].'-cbqos-*.rrd');
|
require_once "../includes/component.php";
|
||||||
if (!empty($cbqos)) {
|
$component = new component();
|
||||||
|
$options = array(); // Re-init array in case it has been declared previously.
|
||||||
|
$options['filter']['type'] = array('=','Cisco-CBQOS');
|
||||||
|
$components = $component->getComponents($device['device_id'],$options);
|
||||||
|
$components = $components[$device['device_id']]; // We only care about our device id.
|
||||||
|
if (count($components) > 0) {
|
||||||
$menu_options['cbqos'] = 'CBQoS';
|
$menu_options['cbqos'] = 'CBQoS';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,90 +41,79 @@ function find_child($components,$parent,$level) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$rrdarr = glob($config['rrd_dir'].'/'.$device['hostname'].'/port-'.$port['ifIndex'].'-cbqos-*.rrd');
|
if (!isset($vars['policy'])) {
|
||||||
if (!empty($rrdarr)) {
|
// not set, find the first parent and use it.
|
||||||
require_once "../includes/component.php";
|
|
||||||
$component = new component();
|
|
||||||
$options['filter']['type'] = array('=','Cisco-CBQOS');
|
|
||||||
$components = $component->getComponents($device['device_id'],$options);
|
|
||||||
|
|
||||||
// We only care about our device id.
|
|
||||||
$components = $components[$device['device_id']];
|
|
||||||
|
|
||||||
if (!isset($vars['policy'])) {
|
|
||||||
// not set, find the first parent and use it.
|
|
||||||
foreach ($components as $id => $array) {
|
|
||||||
if ( ($array['qos-type'] == 1) && ($array['ifindex'] == $port['ifIndex']) && ($array['parent'] == 0) ) {
|
|
||||||
// Found the first policy
|
|
||||||
$vars['policy'] = $id;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
echo "\n\n";
|
|
||||||
|
|
||||||
// Display the ingress policy at the top of the page.
|
|
||||||
echo "<div class='col-md-6'><ul class='mktree' id='ingress'>";
|
|
||||||
echo '<div><strong><i class="fa fa-sign-in"></i> Ingress Policy:</strong></div>';
|
|
||||||
$found = false;
|
|
||||||
foreach ($components as $id => $array) {
|
foreach ($components as $id => $array) {
|
||||||
if ( ($array['qos-type'] == 1) && ($array['ifindex'] == $port['ifIndex']) && ($array['direction'] == 1) && ($array['parent'] == 0) ) {
|
if ( ($array['qos-type'] == 1) && ($array['ifindex'] == $port['ifIndex']) && ($array['parent'] == 0) ) {
|
||||||
echo "<li class='liOpen'>";
|
// Found the first policy
|
||||||
echo('<a href="' . generate_url($vars, array('policy' => $id)) . '">' . $array['label'] . '</a>');
|
$vars['policy'] = $id;
|
||||||
find_child($components,$id,1);
|
continue;
|
||||||
echo "</li>";
|
|
||||||
$found = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!$found) {
|
|
||||||
// No Ingress policies
|
|
||||||
echo '<div><i>No Policies</i></div>';
|
|
||||||
}
|
|
||||||
echo '</ul></div>';
|
|
||||||
|
|
||||||
// Display the egress policy at the top of the page.
|
|
||||||
echo "<div class='col-md-6'><ul class='mktree' id='egress'>";
|
|
||||||
echo '<div><strong><i class="fa fa-sign-out"></i> Egress Policy:</strong></div>';
|
|
||||||
$found = false;
|
|
||||||
foreach ($components as $id => $array) {
|
|
||||||
if ( ($array['qos-type'] == 1) && ($array['ifindex'] == $port['ifIndex']) && ($array['direction'] == 2) && ($array['parent'] == 0) ) {
|
|
||||||
echo "<li class='liOpen'>";
|
|
||||||
echo('<a href="' . generate_url($vars, array('policy' => $id)) . '">' . $array['label'] . '</a>');
|
|
||||||
find_child($components,$id,1);
|
|
||||||
echo "</li>";
|
|
||||||
$found = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!$found) {
|
|
||||||
// No Egress policies
|
|
||||||
echo '<div><i>No Policies</i></div>';
|
|
||||||
}
|
|
||||||
echo "</ul></div>\n\n";
|
|
||||||
|
|
||||||
// Let's make sure the policy we are trying to access actually exists.
|
|
||||||
foreach ($components as $id => $array) {
|
|
||||||
if ( ($array['qos-type'] == 1) && ($array['ifindex'] == $port['ifIndex']) && ($id == $vars['policy']) ) {
|
|
||||||
// The policy exists.
|
|
||||||
|
|
||||||
echo "<div class='col-md-12'> </div>\n\n";
|
|
||||||
|
|
||||||
// Display each graph row.
|
|
||||||
echo "<div class='col-md-12'>";
|
|
||||||
echo "<div class='graphhead'>Traffic by CBQoS Class - ".$components[$vars['policy']]['label']."</div>";
|
|
||||||
$graph_array['policy'] = $vars['policy'];
|
|
||||||
$graph_type = 'port_cbqos_traffic';
|
|
||||||
include 'includes/print-interface-graphs.inc.php';
|
|
||||||
|
|
||||||
echo "<div class='graphhead'>QoS Drops by CBQoS Class - ".$components[$vars['policy']]['label']."</div>";
|
|
||||||
$graph_array['policy'] = $vars['policy'];
|
|
||||||
$graph_type = 'port_cbqos_bufferdrops';
|
|
||||||
include 'includes/print-interface-graphs.inc.php';
|
|
||||||
|
|
||||||
echo "<div class='graphhead'>Buffer Drops by CBQoS Class - ".$components[$vars['policy']]['label']."</div>";
|
|
||||||
$graph_array['policy'] = $vars['policy'];
|
|
||||||
$graph_type = 'port_cbqos_qosdrops';
|
|
||||||
include 'includes/print-interface-graphs.inc.php';
|
|
||||||
echo "</div>\n\n";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
echo "\n\n";
|
||||||
|
|
||||||
|
// Display the ingress policy at the top of the page.
|
||||||
|
echo "<div class='col-md-6'><ul class='mktree' id='ingress'>";
|
||||||
|
echo '<div><strong><i class="fa fa-sign-in"></i> Ingress Policy:</strong></div>';
|
||||||
|
$found = false;
|
||||||
|
foreach ($components as $id => $array) {
|
||||||
|
if ( ($array['qos-type'] == 1) && ($array['ifindex'] == $port['ifIndex']) && ($array['direction'] == 1) && ($array['parent'] == 0) ) {
|
||||||
|
echo "<li class='liOpen'>";
|
||||||
|
echo('<a href="' . generate_url($vars, array('policy' => $id)) . '">' . $array['label'] . '</a>');
|
||||||
|
find_child($components,$id,1);
|
||||||
|
echo "</li>";
|
||||||
|
$found = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$found) {
|
||||||
|
// No Ingress policies
|
||||||
|
echo '<div><i>No Policies</i></div>';
|
||||||
|
}
|
||||||
|
echo '</ul></div>';
|
||||||
|
|
||||||
|
// Display the egress policy at the top of the page.
|
||||||
|
echo "<div class='col-md-6'><ul class='mktree' id='egress'>";
|
||||||
|
echo '<div><strong><i class="fa fa-sign-out"></i> Egress Policy:</strong></div>';
|
||||||
|
$found = false;
|
||||||
|
foreach ($components as $id => $array) {
|
||||||
|
if ( ($array['qos-type'] == 1) && ($array['ifindex'] == $port['ifIndex']) && ($array['direction'] == 2) && ($array['parent'] == 0) ) {
|
||||||
|
echo "<li class='liOpen'>";
|
||||||
|
echo('<a href="' . generate_url($vars, array('policy' => $id)) . '">' . $array['label'] . '</a>');
|
||||||
|
find_child($components,$id,1);
|
||||||
|
echo "</li>";
|
||||||
|
$found = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$found) {
|
||||||
|
// No Egress policies
|
||||||
|
echo '<div><i>No Policies</i></div>';
|
||||||
|
}
|
||||||
|
echo "</ul></div>\n\n";
|
||||||
|
|
||||||
|
// Let's make sure the policy we are trying to access actually exists.
|
||||||
|
foreach ($components as $id => $array) {
|
||||||
|
if ( ($array['qos-type'] == 1) && ($array['ifindex'] == $port['ifIndex']) && ($id == $vars['policy']) ) {
|
||||||
|
// The policy exists.
|
||||||
|
|
||||||
|
echo "<div class='col-md-12'> </div>\n\n";
|
||||||
|
|
||||||
|
// Display each graph row.
|
||||||
|
echo "<div class='col-md-12'>";
|
||||||
|
echo "<div class='graphhead'>Traffic by CBQoS Class - ".$components[$vars['policy']]['label']."</div>";
|
||||||
|
$graph_array['policy'] = $vars['policy'];
|
||||||
|
$graph_type = 'port_cbqos_traffic';
|
||||||
|
include 'includes/print-interface-graphs.inc.php';
|
||||||
|
|
||||||
|
echo "<div class='graphhead'>QoS Drops by CBQoS Class - ".$components[$vars['policy']]['label']."</div>";
|
||||||
|
$graph_array['policy'] = $vars['policy'];
|
||||||
|
$graph_type = 'port_cbqos_bufferdrops';
|
||||||
|
include 'includes/print-interface-graphs.inc.php';
|
||||||
|
|
||||||
|
echo "<div class='graphhead'>Buffer Drops by CBQoS Class - ".$components[$vars['policy']]['label']."</div>";
|
||||||
|
$graph_array['policy'] = $vars['policy'];
|
||||||
|
$graph_type = 'port_cbqos_qosdrops';
|
||||||
|
include 'includes/print-interface-graphs.inc.php';
|
||||||
|
echo "</div>\n\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user