From d40ca501f88cfa6d1ba3c11e91fe8732b524e96e Mon Sep 17 00:00:00 2001 From: Harald Wolff Date: Wed, 17 Apr 2019 18:00:58 +0200 Subject: [PATCH] WIP --- Program.cs | 11 ++++++++++- checks/APC.cs | 2 -- checks/Hostalive.cs | 4 ++-- checks/Ubiquity.cs | 2 +- crawl/CrawlNetwork.cs | 10 +--------- crawl/CrawledSubnet.cs | 1 + crawl/Crawler.cs | 20 +++++++++++++------- crawl/service/HTTP.cs | 2 +- crawl/service/ICMP.cs | 2 +- 9 files changed, 30 insertions(+), 24 deletions(-) diff --git a/Program.cs b/Program.cs index 13f34d2..eeb43fa 100644 --- a/Program.cs +++ b/Program.cs @@ -17,6 +17,8 @@ using ln.types.net; using ln.types.odb; using ln.types.odb.index; using ln.types.odb.values; +using ln.skyscanner.checks; +using System.Linq; namespace ln.skyscanner { @@ -34,9 +36,10 @@ namespace ln.skyscanner Logger.ConsoleLogger.MaxLogLevel = LogLevel.INFO; + SkyScanner skyScanner = new SkyScanner(args); + Initialize(); - SkyScanner skyScanner = new SkyScanner(args); skyScanner.Start(); } @@ -44,6 +47,12 @@ namespace ln.skyscanner { SNMPEngine.DefaultEngine.Timeout = 3500; + if (SkyScanner.Instance.Entities.BlockedNetworks.Count == 0) + { + SkyScanner.Instance.Entities.BlockedNetworks.Insert(Network4.Parse("192.168.0.0/16")); + } + + //using (ODB odb = new ODB("odb")) //{ diff --git a/checks/APC.cs b/checks/APC.cs index f46fa78..4b09584 100644 --- a/checks/APC.cs +++ b/checks/APC.cs @@ -44,8 +44,6 @@ namespace ln.skyscanner.checks "1.3.6.1.2.1.33.1.2.7" }); - CheckState myCheckState = CheckState.OK; - int n = 0; foreach (Sequence[] input in inputs) { diff --git a/checks/Hostalive.cs b/checks/Hostalive.cs index b1113d7..64559a6 100644 --- a/checks/Hostalive.cs +++ b/checks/Hostalive.cs @@ -47,11 +47,11 @@ namespace ln.skyscanner.checks float fSuccess = (float)success / (float)n; - checkState.WritePerformanceValue("replies", fSuccess, 0.8, double.MaxValue, 0.6, double.MaxValue); + checkState.WritePerformanceValue("replies", fSuccess, node.DeviceType == DeviceType.UNKNOWN ? Double.MinValue : 0.8, double.MaxValue, node.DeviceType == DeviceType.UNKNOWN ? Double.MinValue : 0.6, double.MaxValue); if (success > 0) { roundTripTime /= success; - checkState.WritePerformanceValue("rta", roundTripTime, 0, 40, 0, 80); + checkState.WritePerformanceValue("rta", roundTripTime, 0, 80, 0, 140); } checkState.BaseCheckState = CheckState.OK; diff --git a/checks/Ubiquity.cs b/checks/Ubiquity.cs index fc339de..1fbd34e 100644 --- a/checks/Ubiquity.cs +++ b/checks/Ubiquity.cs @@ -37,7 +37,7 @@ namespace ln.skyscanner.checks { ubiquityCheckState.WritePerformanceValue("ptp_rx_capa", (double)((Integer)(row[0].Items[1])).LongValue); ubiquityCheckState.WritePerformanceValue("ptp_tx_capa", (double)((Integer)(row[1].Items[1])).LongValue); - ubiquityCheckState.WritePerformanceValue("ptp_rx_pwr", (double)((Integer)(row[2].Items[1])).LongValue, -65.0,0,-75.0,0); + ubiquityCheckState.WritePerformanceValue("ptp_rx_pwr", (double)((Integer)(row[2].Items[1])).LongValue, -75.0,0,-80.0,0); ubiquityCheckState.WritePerformanceValue("ptp_tx_pwr", (double)((Integer)(row[3].Items[1])).LongValue); long rxBytes = ((Integer)(row[4].Items[1])).LongValue; diff --git a/crawl/CrawlNetwork.cs b/crawl/CrawlNetwork.cs index 69c64cb..f0d7946 100644 --- a/crawl/CrawlNetwork.cs +++ b/crawl/CrawlNetwork.cs @@ -19,7 +19,7 @@ using ln.types.odb; using ln.types.net; namespace ln.skyscanner.crawl { - public class CrawlNetwork : PoolJob, IPersistent + public class CrawlNetwork : PoolJob { [JsonIgnoreAttribute] public Crawler Crawler { get; } @@ -27,8 +27,6 @@ namespace ln.skyscanner.crawl public Network4 Network { get; } - - public CrawlNetwork(Crawler crawler, CrawledSubnet subnet) { Crawler = crawler; @@ -120,11 +118,5 @@ namespace ln.skyscanner.crawl return false; } - - private Guid PersistenceID = Guid.NewGuid(); - public Guid GetPersistenceID() - { - return PersistenceID; - } } } diff --git a/crawl/CrawledSubnet.cs b/crawl/CrawledSubnet.cs index 64b2f5a..9bbb71a 100644 --- a/crawl/CrawledSubnet.cs +++ b/crawl/CrawledSubnet.cs @@ -29,6 +29,7 @@ namespace ln.skyscanner.crawl public DateTime LastScan; public DateTime NextScan; + public bool DisableCrawling; private CrawledSubnet() { diff --git a/crawl/Crawler.cs b/crawl/Crawler.cs index 961173c..30d7d5e 100644 --- a/crawl/Crawler.cs +++ b/crawl/Crawler.cs @@ -9,8 +9,6 @@ // **/ using System; using ln.types.threads; -using System.Net; -using System.Collections.Generic; using System.IO; using ln.logging; using System.Linq; @@ -21,7 +19,6 @@ using ln.types.odb; using ln.skyscanner.crawl.service; using ln.skyscanner.crawl.tests; using ln.types.net; -using ln.types.odb.mapped; namespace ln.skyscanner.crawl { @@ -203,6 +200,13 @@ namespace ln.skyscanner.crawl { Logging.Log(LogLevel.INFO, "Crawler adds new subnet: {0}", network); sn = new CrawledSubnet(network); + + foreach (Network4 blockedNetwork in SkyScanner.Instance.Entities.BlockedNetworks) + { + if (blockedNetwork.Contains(network)) + sn.DisableCrawling = true; + } + SkyScanner.Instance.Entities.CrawledSubnets.Insert(sn); } return sn; @@ -221,15 +225,17 @@ namespace ln.skyscanner.crawl SkyScanner.Entities.GlobalNetwork.Update(); if (CrawlHosts) - foreach (CrawledHost crawledHost in SkyScanner.Instance.Entities.CrawledHosts.Where( host => (host.NextCheck < DateTime.Now))) + foreach (CrawledHost crawledHost in SkyScanner.Instance.Entities.CrawledHosts) { - Crawl(crawledHost); + if (crawledHost.NextCheck < DateTime.Now) + Crawl(crawledHost); } if (CrawlSubnets) - foreach (CrawledSubnet subnet in SkyScanner.Instance.Entities.CrawledSubnets.Where( sn => (sn.NextScan < DateTime.Now ) && sn.Network.Width >= 24)) + foreach (CrawledSubnet subnet in SkyScanner.Instance.Entities.CrawledSubnets) { - Crawl(subnet); + if (!subnet.DisableCrawling && (subnet.NextScan < DateTime.Now) && (subnet.Network.Width >= 24)) + Crawl(subnet); } Thread.Sleep(5000); diff --git a/crawl/service/HTTP.cs b/crawl/service/HTTP.cs index b45608c..7f2ae0d 100644 --- a/crawl/service/HTTP.cs +++ b/crawl/service/HTTP.cs @@ -65,7 +65,7 @@ namespace ln.skyscanner.crawl.service return true; } - catch (WebException e) + catch (WebException) { } } diff --git a/crawl/service/ICMP.cs b/crawl/service/ICMP.cs index ddd0538..59e8a2a 100644 --- a/crawl/service/ICMP.cs +++ b/crawl/service/ICMP.cs @@ -14,7 +14,7 @@ namespace ln.skyscanner.crawl.tests { public class ICMP : CrawlService { - public Ping Ping { get; private set; } = new Ping(); + public static Ping Ping { get; private set; } = new Ping(); public ICMP() :base("ping")