Commit version 24.12.13800
This commit is contained in:
@ -4,9 +4,9 @@
|
||||
*
|
||||
* This file is part of Observium.
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage discovery
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2021 Observium Limited
|
||||
* @package observium
|
||||
* @subpackage discovery
|
||||
* @copyright (C) Adam Armstrong
|
||||
*
|
||||
*/
|
||||
|
||||
@ -20,12 +20,11 @@ function discover_entity($device_id, $entity_type, $data)
|
||||
|
||||
if (is_array($GLOBALS['config']['entities'][$entity_type])) {
|
||||
|
||||
$def = $GLOBALS['config']['entities'][$entity_type];
|
||||
$index = $data[$def['table_fields']['index']];
|
||||
$def = $GLOBALS['config']['entities'][$entity_type];
|
||||
$index = $data[$def['table_fields']['index']];
|
||||
$params = $def['params'];
|
||||
|
||||
if (isset($params['table_fields']['index']) && is_array())
|
||||
{
|
||||
if (isset($params['table_fields']['index']) && is_array()) {
|
||||
|
||||
} elseif (isset($params['table_fields']['index'])) {
|
||||
|
||||
@ -34,23 +33,22 @@ function discover_entity($device_id, $entity_type, $data)
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (is_array($GLOBALS['cache'][$def['table']][$index])) {
|
||||
echo 'Exists';
|
||||
|
||||
$db = $GLOBALS['cache'][$def['table']][$index];
|
||||
$id = $db[$def['table_fields']['id']];
|
||||
|
||||
echo 'exists:'.$id.PHP_EOL;
|
||||
echo 'exists:' . $id . PHP_EOL;
|
||||
|
||||
$update = array();
|
||||
foreach ($params as $param)
|
||||
{
|
||||
if ($data[$param] != $db[$param]) { $update[$param] = $data[$param]; }
|
||||
$update = [];
|
||||
foreach ($params as $param) {
|
||||
if ($data[$param] != $db[$param]) {
|
||||
$update[$param] = $data[$param];
|
||||
}
|
||||
}
|
||||
if (count($update))
|
||||
{
|
||||
dbUpdate($update, $def['table'], '`'.$def['table_fields']['id'].'` = ?', array($id));
|
||||
if (count($update)) {
|
||||
dbUpdate($update, $def['table'], '`' . $def['table_fields']['id'] . '` = ?', [$id]);
|
||||
echo('U');
|
||||
} else {
|
||||
echo('.');
|
||||
@ -60,12 +58,13 @@ function discover_entity($device_id, $entity_type, $data)
|
||||
|
||||
echo 'Doesnt Exist';
|
||||
|
||||
$insert = array();
|
||||
$insert = [];
|
||||
$insert['device_id'] = $device_id;
|
||||
foreach ($params as $param)
|
||||
{
|
||||
foreach ($params as $param) {
|
||||
$insert[$param] = $data[$param];
|
||||
if ($data[$param] == NULL) { $insert[$param] = array('NULL'); }
|
||||
if ($data[$param] == NULL) {
|
||||
$insert[$param] = ['NULL'];
|
||||
}
|
||||
}
|
||||
$id = dbInsert($insert, $def['table']);
|
||||
echo("+");
|
||||
@ -93,154 +92,156 @@ function discover_entity($device_id, $entity_type, $data)
|
||||
* Discover WIFI Access Point. Returns ap_id.
|
||||
*
|
||||
* @param array|integer $device
|
||||
* @param array $ap
|
||||
* @param array $ap
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
function discover_wifi_ap($device, $ap) {
|
||||
function discover_wifi_ap($device, $ap)
|
||||
{
|
||||
|
||||
$device_id = is_array($device) ? $device['device_id'] : $device;
|
||||
$params = [ 'ap_mib', 'ap_index',
|
||||
'ap_number', 'ap_name', 'ap_address', 'ap_serial', 'ap_model', 'ap_location', 'ap_fingerprint', // not required
|
||||
'ap_status', 'ap_admin_status' ];
|
||||
$device_id = is_array($device) ? $device['device_id'] : $device;
|
||||
$params = ['ap_mib', 'ap_index',
|
||||
'ap_number', 'ap_name', 'ap_address', 'ap_serial', 'ap_model', 'ap_location', 'ap_fingerprint', // not required
|
||||
'ap_status', 'ap_admin_status'];
|
||||
|
||||
if (is_array($GLOBALS['cache']['wifi_aps'][$ap['ap_index']])) {
|
||||
/* Only insert new APs, for polling ability
|
||||
// Database entry exists. Lets update it!
|
||||
if (is_array($GLOBALS['cache']['wifi_aps'][$ap['ap_index']])) {
|
||||
/* Only insert new APs, for polling ability
|
||||
// Database entry exists. Lets update it!
|
||||
|
||||
$ap_db = $GLOBALS['cache']['wifi_aps'][$ap['ap_index']];
|
||||
$ap_id = $ap_db['wifi_ap_id'];
|
||||
$ap_db = $GLOBALS['cache']['wifi_aps'][$ap['ap_index']];
|
||||
$ap_id = $ap_db['wifi_ap_id'];
|
||||
|
||||
echo 'exists:'.$ap_id.PHP_EOL;
|
||||
echo 'exists:'.$ap_id.PHP_EOL;
|
||||
|
||||
$update = [];
|
||||
foreach ($params as $param) {
|
||||
if ($ap[$param] != $ap_db[$param]) {
|
||||
if (safe_empty($ap[$param])) {
|
||||
$update[$param] = [ 'NULL' ];
|
||||
} else {
|
||||
$update[$param] = $ap[$param];
|
||||
$update = [];
|
||||
foreach ($params as $param) {
|
||||
if ($ap[$param] != $ap_db[$param]) {
|
||||
if (safe_empty($ap[$param])) {
|
||||
$update[$param] = [ 'NULL' ];
|
||||
} else {
|
||||
$update[$param] = $ap[$param];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (count($update)) {
|
||||
dbUpdate($update, 'wifi_aps', '`wifi_ap_id` = ?', array($ap_db['wifi_ap_id']));
|
||||
echo('U');
|
||||
} else {
|
||||
echo('.');
|
||||
}
|
||||
*/
|
||||
$ap_id = $GLOBALS['cache']['wifi_aps'][$ap['ap_index']]['wifi_ap_id'];
|
||||
if ($GLOBALS['cache']['wifi_aps'][$ap['ap_index']]['deleted']) {
|
||||
dbUpdate(['deleted' => 0], 'wifi_aps', '`wifi_ap_id` = ?', [$ap_id]);
|
||||
$GLOBALS['cache']['wifi_aps'][$ap['ap_index']]['deleted'] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (count($update)) {
|
||||
dbUpdate($update, 'wifi_aps', '`wifi_ap_id` = ?', array($ap_db['wifi_ap_id']));
|
||||
echo('U');
|
||||
} else {
|
||||
echo('.');
|
||||
// Database entry doesn't exist. Lets create it!
|
||||
$insert = [];
|
||||
$insert['device_id'] = $device_id;
|
||||
foreach ($params as $param) {
|
||||
$insert[$param] = $ap[$param];
|
||||
if (safe_empty($ap[$param])) {
|
||||
$insert[$param] = ['NULL'];
|
||||
}
|
||||
}
|
||||
print_debug_vars($insert);
|
||||
$ap_id = dbInsert($insert, 'wifi_aps');
|
||||
echo("+");
|
||||
|
||||
$params['wifi_ap_id'] = $ap_id;
|
||||
|
||||
// Populate cache with this entry. Maybe we need it.
|
||||
$GLOBALS['cache']['wifi_aps'][$ap['ap_index']] = $params;
|
||||
}
|
||||
*/
|
||||
$ap_id = $GLOBALS['cache']['wifi_aps'][$ap['ap_index']]['wifi_ap_id'];
|
||||
if ($GLOBALS['cache']['wifi_aps'][$ap['ap_index']]['deleted']) {
|
||||
dbUpdate([ 'deleted' => 0 ], 'wifi_aps', '`wifi_ap_id` = ?', [ $ap_id ]);
|
||||
$GLOBALS['cache']['wifi_aps'][$ap['ap_index']]['deleted'] = 0;
|
||||
}
|
||||
} else {
|
||||
// Database entry doesn't exist. Lets create it!
|
||||
$insert = [];
|
||||
$insert['device_id'] = $device_id;
|
||||
foreach ($params as $param) {
|
||||
$insert[$param] = $ap[$param];
|
||||
if (safe_empty($ap[$param])) {
|
||||
$insert[$param] = array('NULL');
|
||||
}
|
||||
}
|
||||
print_debug_vars($insert);
|
||||
$ap_id = dbInsert($insert, 'wifi_aps');
|
||||
echo("+");
|
||||
|
||||
$params['wifi_ap_id'] = $ap_id;
|
||||
$GLOBALS['valid']['wifi']['aps'][$ap['ap_index']] = $ap_id;
|
||||
|
||||
// Populate cache with this entry. Maybe we need it.
|
||||
$GLOBALS['cache']['wifi_aps'][$ap['ap_index']] = $params;
|
||||
}
|
||||
|
||||
$GLOBALS['valid']['wifi']['aps'][$ap['ap_index']] = $ap_id;
|
||||
|
||||
return $ap_id;
|
||||
return $ap_id;
|
||||
}
|
||||
|
||||
|
||||
function discover_wifi_wlan($device_id, $wlan)
|
||||
{
|
||||
|
||||
$params = array('wlan_admin_status', 'wlan_beacon_period', 'wlan_bssid', 'wlan_bss_type', 'wlan_channel', 'wlan_dtim_period', 'wlan_frag_thresh',
|
||||
'wlan_index', 'wlan_igmp_snoop', 'wlan_name', 'wlan_prot_mode', 'wlan_radio_mode', 'wlan_rts_thresh',
|
||||
'wlan_ssid', 'wlan_ssid_bcast', 'wlan_vlan_id');
|
||||
$params = ['wlan_admin_status', 'wlan_beacon_period', 'wlan_bssid', 'wlan_bss_type', 'wlan_channel', 'wlan_dtim_period', 'wlan_frag_thresh',
|
||||
'wlan_index', 'wlan_igmp_snoop', 'wlan_name', 'wlan_prot_mode', 'wlan_radio_mode', 'wlan_rts_thresh',
|
||||
'wlan_ssid', 'wlan_ssid_bcast', 'wlan_vlan_id'];
|
||||
|
||||
if (is_array($GLOBALS['cache']['wifi_wlans'][$wlan['wlan_index']]))
|
||||
{
|
||||
// Database entry exists. Lets update it!
|
||||
$wlan_db = $GLOBALS['cache']['wifi_wlans'][$wlan['wlan_index']];
|
||||
$wlan_id = $wlan_db['wlan_id'];
|
||||
if (is_array($GLOBALS['cache']['wifi_wlans'][$wlan['wlan_index']])) {
|
||||
// Database entry exists. Lets update it!
|
||||
$wlan_db = $GLOBALS['cache']['wifi_wlans'][$wlan['wlan_index']];
|
||||
$wlan_id = $wlan_db['wlan_id'];
|
||||
|
||||
$update = [];
|
||||
foreach ($params as $param) {
|
||||
if ($wlan[$param] != $wlan_db[$param]) {
|
||||
$update[$param] = $wlan[$param];
|
||||
}
|
||||
}
|
||||
if (count($update)) {
|
||||
dbUpdate($update, 'wifi_wlans', '`wlan_id` = ?', [$wlan_db['wlan_id']]);
|
||||
echo('U');
|
||||
} else {
|
||||
echo('.');
|
||||
}
|
||||
|
||||
$update = array();
|
||||
foreach ($params as $param)
|
||||
{
|
||||
if ($wlan[$param] != $wlan_db[$param]) { $update[$param] = $wlan[$param]; }
|
||||
}
|
||||
if (count($update))
|
||||
{
|
||||
dbUpdate($update, 'wifi_wlans', '`wlan_id` = ?', array($wlan_db['wlan_id']));
|
||||
echo('U');
|
||||
} else {
|
||||
echo('.');
|
||||
// Database entry doesn't exist. Lets create it!
|
||||
|
||||
$insert = [];
|
||||
$insert['device_id'] = $device_id;
|
||||
foreach ($params as $param) {
|
||||
$insert[$param] = $wlan[$param];
|
||||
if (is_null($wlan[$param])) {
|
||||
$insert[$param] = ['NULL'];
|
||||
}
|
||||
}
|
||||
$wlan_id = dbInsert($insert, 'wifi_wlans');
|
||||
echo("+");
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
// Database entry doesn't exist. Lets create it!
|
||||
|
||||
$insert = array();
|
||||
$insert['device_id'] = $device_id;
|
||||
foreach ($params as $param)
|
||||
{
|
||||
$insert[$param] = $wlan[$param];
|
||||
if (is_null($wlan[$param])) { $insert[$param] = array('NULL'); }
|
||||
}
|
||||
$wlan_id = dbInsert($insert, 'wifi_wlans');
|
||||
echo("+");
|
||||
|
||||
}
|
||||
|
||||
return $wlan_id;
|
||||
return $wlan_id;
|
||||
|
||||
}
|
||||
|
||||
function discover_wifi_radio($device_id, $radio) {
|
||||
$params = [ 'radio_ap', 'radio_mib', 'radio_number', 'radio_util', 'radio_type', 'radio_status',
|
||||
'radio_clients', 'radio_txpower', 'radio_channel', 'radio_mac', 'radio_protection', 'radio_bsstype' ];
|
||||
function discover_wifi_radio($device_id, $radio)
|
||||
{
|
||||
$params = ['radio_ap', 'radio_mib', 'radio_number', 'radio_util', 'radio_type', 'radio_status',
|
||||
'radio_clients', 'radio_txpower', 'radio_channel', 'radio_mac', 'radio_protection', 'radio_bsstype'];
|
||||
|
||||
if (is_array($GLOBALS['cache']['wifi_radios'][$radio['radio_ap']][$radio['radio_number']])) {
|
||||
$radio_db = $GLOBALS['cache']['wifi_radios'][$radio['radio_ap']][$radio['radio_number']];
|
||||
}
|
||||
if (is_array($GLOBALS['cache']['wifi_radios'][$radio['radio_ap']][$radio['radio_number']])) {
|
||||
$radio_db = $GLOBALS['cache']['wifi_radios'][$radio['radio_ap']][$radio['radio_number']];
|
||||
}
|
||||
|
||||
if (!isset($radio_db['wifi_radio_id']))
|
||||
{
|
||||
$insert = array();
|
||||
$insert['device_id'] = $device_id;
|
||||
foreach ($params as $param)
|
||||
{
|
||||
$insert[$param] = $radio[$param];
|
||||
if (is_null($radio[$param])) { $insert[$param] = array('NULL'); }
|
||||
}
|
||||
$wifi_radio_id = dbInsert($insert, 'wifi_radios');
|
||||
echo("+");
|
||||
} else {
|
||||
$update = array();
|
||||
foreach ($params as $param)
|
||||
{
|
||||
if ($radio[$param] != $radio_db[$param]) { $update[$param] = $radio[$param]; }
|
||||
}
|
||||
if (count($update))
|
||||
{
|
||||
dbUpdate($update, 'wifi_radios', '`wifi_radio_id` = ?', array($radio_db['wifi_radio_id']));
|
||||
echo('U');
|
||||
if (!isset($radio_db['wifi_radio_id'])) {
|
||||
$insert = [];
|
||||
$insert['device_id'] = $device_id;
|
||||
foreach ($params as $param) {
|
||||
$insert[$param] = $radio[$param];
|
||||
if (is_null($radio[$param])) {
|
||||
$insert[$param] = ['NULL'];
|
||||
}
|
||||
}
|
||||
$wifi_radio_id = dbInsert($insert, 'wifi_radios');
|
||||
echo("+");
|
||||
} else {
|
||||
echo('.');
|
||||
$update = [];
|
||||
foreach ($params as $param) {
|
||||
if ($radio[$param] != $radio_db[$param]) {
|
||||
$update[$param] = $radio[$param];
|
||||
}
|
||||
}
|
||||
if (count($update)) {
|
||||
dbUpdate($update, 'wifi_radios', '`wifi_radio_id` = ?', [$radio_db['wifi_radio_id']]);
|
||||
echo('U');
|
||||
} else {
|
||||
echo('.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$GLOBALS['valid']['wifi']['radio'][$radio['radio_mib']][$wifi_radio_id] = 1;
|
||||
$GLOBALS['valid']['wifi']['radio'][$radio['radio_mib']][$wifi_radio_id] = 1;
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
Reference in New Issue
Block a user