summaryrefslogtreecommitdiffstats
path: root/frontends/php/discovery.php
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-03-21 13:17:24 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-03-21 13:17:24 +0000
commit8ef6917ea5eaae24bc2a15a06a99b3b1f24d1f35 (patch)
tree86b9957c4a9a6c4da386064fb497a69cad9fad03 /frontends/php/discovery.php
parent2547403188f63f0042a15aff4d17e04e2e80d715 (diff)
downloadzabbix-8ef6917ea5eaae24bc2a15a06a99b3b1f24d1f35.tar.gz
zabbix-8ef6917ea5eaae24bc2a15a06a99b3b1f24d1f35.tar.xz
zabbix-8ef6917ea5eaae24bc2a15a06a99b3b1f24d1f35.zip
- added quick help for overview (Eugene)
- developed Dicovery system (Alexei/Eugene) git-svn-id: svn://svn.zabbix.com/trunk@3904 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/discovery.php')
-rw-r--r--frontends/php/discovery.php138
1 files changed, 138 insertions, 0 deletions
diff --git a/frontends/php/discovery.php b/frontends/php/discovery.php
new file mode 100644
index 00000000..ce056123
--- /dev/null
+++ b/frontends/php/discovery.php
@@ -0,0 +1,138 @@
+<?php
+/*
+** ZABBIX
+** Copyright (C) 2000-2005 SIA Zabbix
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+**/
+?>
+<?php
+ require_once "include/config.inc.php";
+ require_once "include/discovery.inc.php";
+
+ $page["file"] = "discovery.php";
+ $page["title"] = "S_STATUS_OF_DISCOVERY";
+
+include_once "include/page_header.php";
+
+?>
+<?php
+// VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION
+ $fields=array(
+ "druleid"=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null),
+ );
+
+ check_fields($fields);
+
+?>
+<?php
+ $r_form = new CForm();
+
+ $druleid = get_request('druleid', 0);
+
+ $cmbDRules = new CComboBox('druleid',$druleid,'submit()');
+ $cmbDRules->AddItem(0,S_ALL_SMALL);
+ $db_drules = DBselect('select distinct * from drules where '.DBid2nodeid('druleid').'='.$ZBX_CURNODEID." order by name");
+ while($drule_data = DBfetch($db_drules))
+ $cmbDRules->AddItem($drule_data['druleid'],$drule_data['name']);
+ $r_form->AddItem(array(S_DISCOVERY_RULE.SPACE,$cmbDRules));
+
+ show_table_header(S_STATUS_OF_DISCOVERY_BIG, $r_form);
+?>
+<?php
+ $db_dhosts = DBselect('select * from dhosts'.
+ ($druleid > 0 ? ' where druleid='.$druleid : '').
+ ' order by status,ip'
+ );
+
+ $services = array();
+
+ while($drule_data = DBfetch($db_dhosts))
+ {
+ $class = 'enabled';
+ $time = 'lastup';
+ if(DHOST_STATUS_DISABLED == $drule_data['status'])
+ {
+ $class = 'disabled';
+ $time = 'lastdown';
+ }
+
+ $discovery_info[$drule_data['ip']] = array('class' => $class, 'time' => $drule_data[$time]);
+
+ $db_dservices = DBselect('select * from dservices where dhostid='.$drule_data['dhostid'].' order by status,type,port');
+ while($dservice_data = DBfetch($db_dservices))
+ {
+ $class = 'active';
+ $time = 'lastup';
+
+ if(DSVC_STATUS_DISABLED == $dservice_data['status'])
+ {
+ $class = 'disabled';
+ $time = 'lastdown';
+ }
+
+ $service_name = discovery_check_type2str($dservice_data['type']).':'.$dservice_data['port'];
+
+ $services[$service_name] = 1;
+
+ $discovery_info
+ [$drule_data['ip']]
+ ['services']
+ [$service_name] = array('class' => $class, 'time' => $dservice_data[$time]);
+ }
+ }
+
+ ksort($services);
+
+ $header = array(
+ new CCol(S_HOST, 'center'),
+ new CCol(S_UPTIME.'/'.BR.S_DOWNTIME,'center')
+ );
+
+ foreach($services as $name => $foo)
+ {
+ $header[] = new CImg('vtext.php?text='.$name);
+ }
+
+ $table = new CTableInfo();
+ $table->SetHeader($header,'vertical_header');
+
+ foreach($discovery_info as $ip => $h_data)
+ {
+ $table_row = array(
+ new CSpan($ip, $h_data['class']),
+ new CSpan(convert_units(time() - $h_data['time'], 'uptime'), $h_data['class'])
+ );
+ foreach($services as $name => $foo)
+ {
+ $class = null; $time = SPACE;
+
+ if(isset($h_data['services'][$name]))
+ {
+ $class = $h_data['services'][$name]['class'];
+ $time = $h_data['services'][$name]['time'];
+ }
+ $table_row[] = new CCol(SPACE, $class);
+ }
+ $table->AddRow($table_row);
+ }
+
+ $table->Show();
+?>
+<?php
+
+include_once "include/page_footer.php";
+
+?>