diff --git a/html/pages/delhost.inc.php b/html/pages/delhost.inc.php index 1c89e4297..58b3b89a5 100644 --- a/html/pages/delhost.inc.php +++ b/html/pages/delhost.inc.php @@ -23,7 +23,7 @@ if (is_numeric($_REQUEST['id'])) '); if ($_REQUEST['confirm']) { - print_message(delete_device(mres($_REQUEST['id']))."\n"); + print_message(nl2br(delete_device(mres($_REQUEST['id'])))."\n"); } else { diff --git a/includes/functions.php b/includes/functions.php index 161757107..0f4620cd9 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -236,7 +236,7 @@ function renamehost($id, $new, $source = 'console') function delete_device($id) { - global $config; + global $config, $debug; $ret = ''; $host = dbFetchCell("SELECT hostname FROM devices WHERE device_id = ?", array($id)); @@ -249,19 +249,20 @@ function delete_device($id) $ret .= "Removed interface $int_id ($int_if)\n"; } - dbDelete('devices', "`device_id` = ?", array($id)); - - $device_tables = array('entPhysical', 'devices_attribs', 'devices_perms', 'bgpPeers', 'vlans', 'vrfs', 'storage', 'alerts', 'eventlog', - 'syslog', 'ports', 'services', 'toner', 'frequency', 'current', 'sensors','ciscoASA'); - - foreach ($device_tables as $table) - { - dbDelete($table, "`device_id` = ?", array($id)); + $fields = array('device_id','host'); + foreach( $fields as $field ) { + foreach( dbFetch("SELECT table_name FROM information_schema.columns WHERE table_schema = ? AND column_name = ?",array($config['db_name'],$field)) as $table ) { + $table = $table['table_name']; + $entries = (int) dbDelete($table, "`$field` = ?", array($id)); + if( $entries > 0 && $debug === true ) { + $ret .= "$field@$table = #$entries\n"; + } + } } shell_exec("rm -rf ".trim($config['rrd_dir'])."/$host"); - $ret = "Removed device $host"; + $ret .= "Removed device $host\n"; return $ret; }