broken
Harald Wolff 2019-04-01 15:17:41 +02:00
parent b1e7d86aea
commit 4cac9fbf56
8 changed files with 71 additions and 9 deletions

View File

@ -28,7 +28,6 @@ using ln.snmp.rfc1213;
using ln.types.sync;
using ln.skyscanner.crawl;
using System.Threading;
using System.Net.NetworkInformation;
using ln.skyscanner.crawl.tests;
using Castle.DynamicProxy;
using ln.types.odb;
@ -36,6 +35,8 @@ using System.Net.Sockets;
using ln.skyscanner.entities;
using ln.types.btree;
using ln.types.test;
using ln.types.threads;
using ln.types.net;
namespace ln.skyscanner
{
@ -45,17 +46,50 @@ namespace ln.skyscanner
public static void Main(string[] args)
{
new IPv4(0);
FileLogger fileLogger = new FileLogger("skyscanner.log");
fileLogger.MaxLogLevel = LogLevel.INFO;
Logger.Default.Backends.Add(fileLogger);
Logger.ConsoleLogger.MaxLogLevel = LogLevel.INFO;
Logger.ConsoleLogger.MaxLogLevel = LogLevel.DEBUGDETAIL;
Initialize();
SkyScanner skyScanner = new SkyScanner(args);
skyScanner.Start();
return;
IEnumerable<Node> nodes = skyScanner.Entities.nodeCollection;
foreach (Node node in nodes)
{
Console.WriteLine("Node: {0}", node);
skyScanner.Entities.nodeCollection.Update(node);
foreach (Node checkNode in SkyScanner.Instance.Entities.nodeCollection.Select("PrimaryIP", node.PrimaryIP))
{
Console.WriteLine("Node (lookup primary ip): {0}", checkNode);
if (!checkNode.ID.Equals(node))
{
if ((checkNode.Interfaces.Count() == 0))
{
SkyScanner.Instance.Entities.nodeCollection.Delete(checkNode);
}
}
}
//IEnumerable<NetworkInterface> interfaces = Timing.Meassure("node.Interfaces",() => node.Interfaces);
//foreach (NetworkInterface intf in interfaces)
//{
// Console.WriteLine(" Interface: {0}", intf);
//}
Console.WriteLine("");
Console.WriteLine("");
}
throw new Exception();
}
private static void Initialize()

View File

@ -37,6 +37,7 @@ namespace ln.skyscanner
intfIPCollection = odDatabase.GetCollection<IntfIP>();
subnetCollection = odDatabase.GetCollection<Subnet>();
nodeCollection.EnsureIndex("PrimaryIP");
interfaceCollection.EnsureIndex("NodeID");
intfIPCollection.EnsureIndex("interfaceID");

View File

@ -104,15 +104,16 @@ namespace ln.skyscanner.crawl
while (servicesToCheck.Count > 0)
RunServiceCheck(servicesToCheck[0]);
Host.LastCheckTime = DateTime.Now - dateTime;
Host.LastCheck = dateTime;
Host.NextCheck = dateTime + TimeSpan.FromHours(1);
} catch (Exception e)
{
Logging.Log(LogLevel.ERROR, "Crawl.RunJob(): Caught exception: {0}",e);
Logging.Log(e);
}
Host.LastCheckTime = DateTime.Now - dateTime;
Host.LastCheck = dateTime;
Host.NextCheck = dateTime + TimeSpan.FromHours(1);
bool updated = Crawler.CrawledHosts.Upsert( Host );
setState("Updating global network");

View File

@ -13,6 +13,7 @@ using ln.logging;
using System.Globalization;
using ln.types.threads;
using ln.types.odb.values;
using ln.types.net;
namespace ln.skyscanner.entities
{
@ -96,11 +97,26 @@ namespace ln.skyscanner.entities
public Node FindNodeByIP(CIDR ip)
{
ip = ip.Host;
/*
* ToDo: Alternative Implementation
* a) higher performance (use indexing)
* b) fix bug: Node not found if no interface ips exist...
*/
IntfIP _iip = SkyEntities.intfIPCollection.Where((iip) => iip.IP.Host.Equals(ip)).FirstOrDefault();
return _iip?.NetworkInterface?.Node;
}
public Node FindNodeByIP(IPv4 ip)
{
Node node = SkyEntities.nodeCollection.SelectOne("PrimaryIP", ip);
if (node == null)
{
}
return node;
}
[Unsynced]
private Queue<CrawledHost> updateQueue = new Queue<CrawledHost>();

View File

@ -78,6 +78,10 @@ namespace ln.skyscanner.entities
return false;
}
public override string ToString()
{
return string.Format("[NetworkInterface ID={0} NodeID={1} Name={2}]",ID,NodeID,Name);
}
}

View File

@ -15,6 +15,7 @@ using ln.types.odb;
using Newtonsoft.Json;
using LiteDB;
using ln.types.threads;
using ln.types.net;
namespace ln.skyscanner.entities
{
public class Node
@ -22,7 +23,7 @@ namespace ln.skyscanner.entities
[DocumentID]
public Guid ID { get; set; } = Guid.NewGuid();
public CIDR PrimaryIP { get; set; }
public IPv4 PrimaryIP { get; set; }
public String PrimaryMac { get; set; }
public String Name { get; set; }
@ -102,5 +103,10 @@ namespace ln.skyscanner.entities
return (obj is Node) && (ID.Equals((obj as Node).ID));
}
public override string ToString()
{
return String.Format("[Node ID={0} PrimaryIP={1} Name={2}]",ID,PrimaryIP,Name);
}
}
}

View File

@ -145,7 +145,7 @@
$("#hostTable tbody").on( "click", "button#scan", function(){ scan( $("#hostTable").DataTable().row( $(this).parents('tr') ).data().ID ); } );
refreshHostTable();
skyapi().addRefresh( refreshHostTable );
//skyapi().addRefresh( refreshHostTable );
$("#chHints").DataTable({

View File

@ -41,6 +41,6 @@
});
refreshSubnetTable();
skyapi().addRefresh( refreshSubnetTable );
//skyapi().addRefresh( refreshSubnetTable );
</script>