#!/usr/bin/php ### Clean up the database removing old IPs and links "); } } echo(mysql_result(mysql_query("SELECT COUNT(*) FROM `ports`"), 0) . " ports at start\n"); $interface_query = mysql_query("SELECT interface_id,device_id FROM `ports`"); while ($interface = mysql_fetch_array($interface_query)) { $device_id = $interface['device_id']; $interface_id = $interface['interface_id']; if(mysql_result(mysql_query("SELECT COUNT(*) FROM `devices` WHERE `device_id` = '$device_id'"), 0) == '0') { mysql_query("delete from ports where `interface_id` = '$interface_id'"); echo("Deleting if $interface_id \n"); } } echo(mysql_result(mysql_query("SELECT COUNT(*) FROM `ports`"), 0) . " ports at end\n"); echo(mysql_result(mysql_query("SELECT COUNT(id) FROM `links`"), 0) . " links at start\n"); $link_query = mysql_query("SELECT id,local_interface_id,remote_interface_id FROM `links`"); while ($link = mysql_fetch_array($link_query)) { $id = $link['id']; $src = $link['local_interface_id']; $dst = $link['remote_interface_id']; if(mysql_result(mysql_query("SELECT COUNT(interface_id) FROM `ports` WHERE `interface_id` = '$src'"), 0) == '0' || mysql_result(mysql_query("SELECT COUNT(*) FROM `ports` WHERE `interface_id` = '$dst'"), 0) == '0') { mysql_query("delete from links where `id` = '$id'"); echo("Deleting link $id \n"); } } echo(mysql_result(mysql_query("SELECT COUNT(id) FROM `links`"), 0) . " links at end\n"); echo(mysql_result(mysql_query("SELECT COUNT(adj_id) FROM `adjacencies`"), 0) . " adjacencies at start\n"); $link_query = mysql_query("SELECT * FROM `adjacencies` AS A, `ports` AS I, `devices` AS D, networks AS N WHERE I.interface_id = A.interface_id AND D.device_id = I.device_id AND N.id = A.network_id"); while ($link = mysql_fetch_array($link_query)) { $id = $link['adj_id']; $netid = $link['network_id']; $ifid = $link['interface_id']; if(mysql_result(mysql_query("SELECT COUNT(*) FROM `ports` WHERE `interface_id` = '$ifid'"), 0) == '0' || mysql_result(mysql_query("SELECT COUNT(id) FROM `networks` WHERE `id` = '$netid'"), 0) == '0') { $remove = 1; echo("Removed Interface!\n"); } list($network, $cidr) = explode("/", $link['cidr']); $checksql = "SELECT COUNT(*) FROM `ipaddr` WHERE `interface_id` = '" . $link['interface_id'] . "' AND `cidr` = '$cidr' AND `network` = '$network'"; if(mysql_result(mysql_query($checksql),0) == 0) { $remove = 1; } # echo($link['if'] . " (" . $link['interface_id'] . ") -> " . $link['cidr'] . " \n"); if($link['cidr'] == "") { $remove = 1; echo("Broken CIDR entry!"); } if($remove) { mysql_query("delete from adjacencies where `adj_id` = '$id'"); echo("Deleting link $id (".$link['cidr']." - ". $link['hostname'] ." - ". $link['ifDescr'] .")\n"); } unset($remove); } echo(mysql_result(mysql_query("SELECT COUNT(adj_id) FROM `adjacencies`"), 0) . " adjacencies at end\n"); ?>