WIP
parent
b1e7d86aea
commit
4cac9fbf56
38
Program.cs
38
Program.cs
|
@ -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()
|
||||
|
|
|
@ -37,6 +37,7 @@ namespace ln.skyscanner
|
|||
intfIPCollection = odDatabase.GetCollection<IntfIP>();
|
||||
subnetCollection = odDatabase.GetCollection<Subnet>();
|
||||
|
||||
nodeCollection.EnsureIndex("PrimaryIP");
|
||||
interfaceCollection.EnsureIndex("NodeID");
|
||||
intfIPCollection.EnsureIndex("interfaceID");
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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>();
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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({
|
||||
|
|
|
@ -41,6 +41,6 @@
|
|||
});
|
||||
|
||||
refreshSubnetTable();
|
||||
skyapi().addRefresh( refreshSubnetTable );
|
||||
//skyapi().addRefresh( refreshSubnetTable );
|
||||
|
||||
</script>
|
||||
|
|
Loading…
Reference in New Issue