2012-01-18 08:12:37 +00:00
<? php
2015-07-13 20:10:26 +02:00
if ( is_numeric ( $vars [ 'vsvr' ])) {
2015-07-10 13:36:21 +02:00
// print_optionbar_start();
// echo("<span style='font-weight: bold;'>VServer</span> » ");
// echo('<a href="'.generate_url($vars, array('vsvr' => NULL)).'">All</a>');
// print_optionbar_end();
$graph_types = array (
'bits' => 'Bits' ,
'pkts' => 'Packets' ,
'conns' => 'Connections' ,
'reqs' => 'Requests' ,
'hitmiss' => 'Hit/Miss' ,
);
$i = 0 ;
2019-05-20 15:56:53 +02:00
echo "<div style='margin: 0px;'><table class='table'>" ;
// Table header
echo "<tr><th width=320>VServer</th><th width=320>VIP and port</th><th width=100>State</th>" ;
echo "<th width=320>Type</th><th width=320>Inbound traffic</th><th width=320>Outbound traffic</th></tr>" ;
// Vserver graphs
// Can this really return more than one row?
$vservers = dbFetchRows ( 'SELECT * FROM `netscaler_vservers` WHERE `device_id` = ? AND `vsvr_id` = ? ORDER BY `vsvr_name`' , array ( $device [ 'device_id' ], $vars [ 'vsvr' ]));
foreach ( $vservers as $vsvr ) {
2015-07-10 13:36:21 +02:00
if ( is_integer ( $i / 2 )) {
2019-06-23 00:29:12 -05:00
$bg_colour = \LibreNMS\Config :: get ( 'list_colour.even' );
2016-08-18 20:28:22 -05:00
} else {
2019-06-23 00:29:12 -05:00
$bg_colour = \LibreNMS\Config :: get ( 'list_colour.odd' );
2015-07-10 13:36:21 +02:00
}
if ( $vsvr [ 'vsvr_state' ] == 'up' ) {
2019-05-20 15:56:53 +02:00
$vsvr_label = 'success' ;
} elseif ( $vsvr [ 'vsvr_state' ] == 'down' ) {
$vsvr_label = 'danger' ;
2016-08-18 20:28:22 -05:00
} else {
2019-05-20 15:56:53 +02:00
$vsvr_label = 'default' ;
2015-07-10 13:36:21 +02:00
}
echo "<tr bgcolor=' $bg_colour '>" ;
2019-05-20 15:56:53 +02:00
echo '<td><a href="' . generate_url ( $vars , array ( 'vsvr' => $vsvr [ 'vsvr_id' ], 'view' => null , 'graph' => null )) . '">' . $vsvr [ 'vsvr_name' ] . '</a></td>' ;
echo '<td>' . $vsvr [ 'vsvr_ip' ] . ':' . $vsvr [ 'vsvr_port' ] . '</td>' ;
echo "<td><span class='label label-" . $vsvr_label . "'>" . $vsvr [ 'vsvr_state' ] . '</span></td>' ;
echo '<td><span class="label label-default">' . $vsvr [ 'vsvr_type' ] . '</span></td>' ;
echo ( '<td>' . format_si (( $vsvr [ 'vsvr_bps_in' ] * 8 )) . 'bps</a></td>' );
echo ( '<td>' . format_si (( $vsvr [ 'vsvr_bps_out' ] * 8 )) . 'bps</a></td>' );
2015-07-10 13:36:21 +02:00
echo '</tr>' ;
foreach ( $graph_types as $graph_type => $graph_text ) {
$i ++ ;
echo '<tr class="list-bold" bgcolor="' . $bg_colour . '">' ;
2019-05-23 17:04:35 +02:00
echo '<td colspan="6">' ;
2015-07-10 13:36:21 +02:00
$graph_type = 'netscalervsvr_' . $graph_type ;
$graph_array [ 'height' ] = '100' ;
$graph_array [ 'width' ] = '213' ;
2019-06-23 00:29:12 -05:00
$graph_array [ 'to' ] = \LibreNMS\Config :: get ( 'time.now' );
2015-07-10 13:36:21 +02:00
$graph_array [ 'id' ] = $vsvr [ 'vsvr_id' ];
$graph_array [ 'type' ] = $graph_type ;
echo '<h3>' . $graph_text . '</h3>' ;
2019-04-11 23:26:42 -05:00
include 'includes/html/print-graphrow.inc.php' ;
2015-07-10 13:36:21 +02:00
echo '
2012-01-21 05:51:58 +00:00
</td>
2015-07-10 13:36:21 +02:00
</tr>' ;
}
} //end foreach
2012-01-18 08:12:37 +00:00
2015-07-10 13:36:21 +02:00
echo '</table></div>' ;
2016-08-18 20:28:22 -05:00
} else {
2015-07-10 13:36:21 +02:00
print_optionbar_start ();
echo "<span style='font-weight: bold;'>VServers</span> » " ;
$menu_options = array ( 'basic' => 'Basic' );
if ( ! $vars [ 'view' ]) {
$vars [ 'view' ] = 'basic' ;
}
$sep = '' ;
foreach ( $menu_options as $option => $text ) {
if ( $vars [ 'view' ] == $option ) {
echo "<span class='pagemenu-selected'>" ;
}
echo '<a href="' . generate_url ( $vars , array ( 'view' => 'basic' , 'graph' => null )) . '">' . $text . '</a>' ;
if ( $vars [ 'view' ] == $option ) {
echo '</span>' ;
}
echo ' | ' ;
}
unset ( $sep );
echo ' Graphs: ' ;
$graph_types = array (
'bits' => 'Bits' ,
'pkts' => 'Packets' ,
'conns' => 'Connections' ,
'reqs' => 'Requests' ,
'hitmiss' => 'Hit/Miss' ,
);
foreach ( $graph_types as $type => $descr ) {
echo " $type_sep " ;
if ( $vars [ 'graph' ] == $type ) {
echo "<span class='pagemenu-selected'>" ;
}
echo '<a href="' . generate_url ( $vars , array ( 'view' => 'graphs' , 'graph' => $type )) . '">' . $descr . '</a>' ;
if ( $vars [ 'graph' ] == $type ) {
echo '</span>' ;
}
$type_sep = ' | ' ;
}
print_optionbar_end ();
2019-05-20 15:56:53 +02:00
echo "<div style='margin: 0px;'><table class='table'>" ;
// Table header
echo "<tr><th width=320><a href=" . generate_url ( $vars , array ( 'sort' => "vsvr_name" )) . ">VServer</a></th>" ;
echo "<th width=320>VIP and port</th><th width=100>State</th><th width=320>Type</th>" ;
echo "<th width=320><a href=" . generate_url ( $vars , array ( 'sort' => "vsvr_bps_in" )) . ">Inbound traffic</a></th>" ;
echo "<th width=320><a href=" . generate_url ( $vars , array ( 'sort' => "vsvr_bps_out" )) . ">Outbound traffic</a></th></tr>" ;
// Vserver list
$vservers = dbFetchRows ( 'SELECT * FROM `netscaler_vservers` WHERE `device_id` = ? ORDER BY `vsvr_name`' , array ( $device [ 'device_id' ]));
// Vserver sorting
$valid_sort_keys = array ( 'vsvr_bps_in' , 'vsvr_bps_out' , 'vsrv_name' );
if ( isset ( $vars [ 'sort' ]) && in_array ( $vars [ 'sort' ], $valid_sort_keys )) {
$sort_key = $vars [ 'sort' ];
} else {
$sort_key = 'vsvr_name' ;
}
switch ( $sort_key ) {
case 'vsvr_bps_in' :
case 'vsvr_bps_out' :
$sort_direction = SORT_DESC ;
break ;
default :
$sort_direction = SORT_ASC ;
}
$vservers = array_sort_by_column ( $vservers , $sort_key , $sort_direction );
2015-07-10 13:36:21 +02:00
$i = '0' ;
2019-05-20 15:56:53 +02:00
foreach ( $vservers as $vsvr ) {
2015-07-10 13:36:21 +02:00
if ( is_integer ( $i / 2 )) {
2019-06-23 00:29:12 -05:00
$bg_colour = \LibreNMS\Config :: get ( 'list_colour.even' );
2016-08-18 20:28:22 -05:00
} else {
2019-06-23 00:29:12 -05:00
$bg_colour = \LibreNMS\Config :: get ( 'list_colour.odd' );
2015-07-10 13:36:21 +02:00
}
if ( $vsvr [ 'vsvr_state' ] == 'up' ) {
2019-05-20 15:56:53 +02:00
$vsvr_label = 'success' ;
} elseif ( $vsvr [ 'vsvr_state' ] == 'down' ) {
$vsvr_label = 'danger' ;
2016-08-18 20:28:22 -05:00
} else {
2019-05-20 15:56:53 +02:00
$vsvr_label = 'default' ;
2015-07-10 13:36:21 +02:00
}
echo "<tr bgcolor=' $bg_colour '>" ;
2019-05-20 15:56:53 +02:00
echo '<td><a href="' . generate_url ( $vars , array ( 'vsvr' => $vsvr [ 'vsvr_id' ], 'view' => null , 'graph' => null )) . '">' . $vsvr [ 'vsvr_name' ] . '</a></td>' ;
echo '<td>' . $vsvr [ 'vsvr_ip' ] . ':' . $vsvr [ 'vsvr_port' ] . '</td>' ;
echo "<td><span class='label label-" . $vsvr_label . "'>" . $vsvr [ 'vsvr_state' ] . '</span></td>' ;
echo '<td><span class="label label-default">' . $vsvr [ 'vsvr_type' ] . '</span></td>' ;
echo ( '<td>' . format_si (( $vsvr [ 'vsvr_bps_in' ] * 8 )) . 'bps</a></td>' );
echo ( '<td>' . format_si (( $vsvr [ 'vsvr_bps_out' ] * 8 )) . 'bps</a></td>' );
2015-07-10 13:36:21 +02:00
echo '</tr>' ;
if ( $vars [ 'view' ] == 'graphs' ) {
echo '<tr class="list-bold" bgcolor="' . $bg_colour . '">' ;
2019-05-23 17:04:35 +02:00
echo '<td colspan="6">' ;
2015-07-10 13:36:21 +02:00
$graph_type = 'netscalervsvr_' . $vars [ 'graph' ];
$graph_array [ 'height' ] = '100' ;
$graph_array [ 'width' ] = '213' ;
2019-06-23 00:29:12 -05:00
$graph_array [ 'to' ] = \LibreNMS\Config :: get ( 'time.now' );
2015-07-10 13:36:21 +02:00
$graph_array [ 'id' ] = $vsvr [ 'vsvr_id' ];
$graph_array [ 'type' ] = $graph_type ;
2019-04-11 23:26:42 -05:00
include 'includes/html/print-graphrow.inc.php' ;
2015-07-10 13:36:21 +02:00
echo '
2012-01-18 08:12:37 +00:00
</td>
2015-07-10 13:36:21 +02:00
</tr>' ;
}
2012-01-18 08:12:37 +00:00
2015-07-10 13:36:21 +02:00
echo '</td>' ;
echo '</tr>' ;
2012-01-18 08:12:37 +00:00
2015-07-10 13:36:21 +02:00
$i ++ ;
} //end foreach
2012-01-21 05:51:58 +00:00
2015-07-10 13:36:21 +02:00
echo '</table></div>' ;
} //end if