mirror of
https://github.com/webmin/webmin.git
synced 2026-02-03 14:13:29 +00:00
Add API to return current monitors status
https://github.com/virtualmin/authentic-theme/issues/1574#issuecomment-1003697841 Output example: ``` 'bind8' => { 'icon' => '/status/images/down.gif', 'icon_title' => 'Local', 'status' => 0, 'status_text' => '<font color=#ff0000>Down</font>', 'title' => 'BIND DNS Server' }, ```
This commit is contained in:
@@ -657,5 +657,39 @@ return $up == 1 ? $text{'mon_up'} :
|
||||
"<font color=#ff0000>$text{'mon_down'}</font>";
|
||||
}
|
||||
|
||||
sub get_services_current_status
|
||||
{
|
||||
my (@serv) = @_;
|
||||
my %monitors;
|
||||
foreach my $s (@serv) {
|
||||
my $title = &html_escape($s->{'desc'});
|
||||
my %monitor;
|
||||
$monitor{'title'} = $title;
|
||||
my @stats = &service_status($s, 1);
|
||||
if ($s->{'depend'}) {
|
||||
my $ds = &get_service($s->{'depend'});
|
||||
if ($ds) {
|
||||
my @dstats = &service_status($ds, 1);
|
||||
if ($dstats[0]->{'up'} != 1) {
|
||||
@stats = map {{ 'up' => -4 }} @stats;
|
||||
}
|
||||
}
|
||||
}
|
||||
my @ups = map {$_->{'up'}} @stats;
|
||||
my @remotes = map {$_->{'remote'}} @stats;
|
||||
for (my $i = 0; $i < @ups; $i++) {
|
||||
my $up = $ups[$i];
|
||||
my $h = $remotes[$i];
|
||||
$h = $text{'index_local'} if ($h eq '*');
|
||||
$monitor{'status'} = $up;
|
||||
$monitor{'status_text'} = &status_to_string($h);
|
||||
$monitor{'icon'} = &get_status_icon($up);
|
||||
$monitor{'icon_title'} = &html_escape($h);
|
||||
}
|
||||
$monitors{$s->{'id'}} = \%monitor;
|
||||
}
|
||||
return %monitors;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user