Пример #1
0
        public void Initialize()
        {
            NetworkNodeDecoder.Init();
            var privateKey = new PrivateKey(TestPrivateKeyHex);

            _publicKey = privateKey.PublicKey;
            var logManager = LimboLogs.Instance;

            IDiscoveryConfig discoveryConfig = new DiscoveryConfig();

            discoveryConfig.PongTimeout = 100;

            _messageSender = Substitute.For <IMessageSender>();
            var calculator = new NodeDistanceCalculator(discoveryConfig);

            _networkConfig.ExternalIp = "99.10.10.66";
            _networkConfig.LocalIp    = "10.0.0.5";

            _nodeTable = new NodeTable(calculator, discoveryConfig, _networkConfig, logManager);
            _nodeTable.Initialize(TestItem.PublicKeyA);

            _timestamper = Timestamper.Default;

            _ipResolver = new IPResolver(_networkConfig, logManager);

            var evictionManager  = new EvictionManager(_nodeTable, logManager);
            var lifecycleFactory = new NodeLifecycleManagerFactory(_nodeTable, new DiscoveryMessageFactory(_timestamper), evictionManager, new NodeStatsManager(logManager), discoveryConfig, logManager);

            _nodes = new[] { new Node("192.168.1.18", 1), new Node("192.168.1.19", 2) };

            IFullDb nodeDb = new SimpleFilePublicKeyDb("Test", "test_db", logManager);

            _discoveryManager = new DiscoveryManager(lifecycleFactory, _nodeTable, new NetworkStorage(nodeDb, logManager), discoveryConfig, logManager, _ipResolver);
            _discoveryManager.MessageSender = _messageSender;
        }
Пример #2
0
        public void HealthChecksWebhookInfo_returns_expected_results()
        {
            string description = "description";

            IIPResolver ipResolver = Substitute.For <IIPResolver>();

            byte[] ip = { 1, 2, 3, 4 };
            ipResolver.ExternalIp.Returns(new IPAddress(ip));

            IMetricsConfig metricsConfig = new MetricsConfig()
            {
                NodeName = "nodeName"
            };

            string hostname = "hostname";

            HealthChecksWebhookInfo healthChecksWebhookInfo = new HealthChecksWebhookInfo(description, ipResolver, metricsConfig, hostname);

            string expected = "`description`" + Environment.NewLine
                              + "NodeName: `nodeName`" + Environment.NewLine
                              + "Hostname: `hostname`" + Environment.NewLine
                              + "IP (external): `1.2.3.4`";

            Assert.AreEqual(expected, healthChecksWebhookInfo.GetFullInfo());
        }
        public HealthChecksWebhookInfo(string description, IIPResolver ipResolver, IMetricsConfig metricsConfig, string hostname)
        {
            _description = description;
            _hostname    = hostname;
            IPAddress externalIp = ipResolver.ExternalIp;

            _ip       = externalIp.ToString();
            _nodeName = metricsConfig.NodeName;
        }
Пример #4
0
        public void Initialize()
        {
            _discoveryManagerMock = Substitute.For <IDiscoveryManager>();
            _discoveryConfigMock  = Substitute.For <IDiscoveryConfig>();


            NetworkNodeDecoder.Init();
            SetupNodeIds();

            var logManager = LimboLogs.Instance;

            _loggerMock = Substitute.For <ILogger>();
            //setting config to store 3 nodes in a bucket and for table to have one bucket//setting config to store 3 nodes in a bucket and for table to have one bucket

            _configurationProvider    = new ConfigProvider();
            _networkConfig.ExternalIp = "99.10.10.66";
            _networkConfig.LocalIp    = "10.0.0.5";

            IDiscoveryConfig discoveryConfig = _configurationProvider.GetConfig <IDiscoveryConfig>();

            discoveryConfig.PongTimeout  = 50;
            discoveryConfig.BucketSize   = 3;
            discoveryConfig.BucketsCount = 1;

            _ipResolverMock = Substitute.For <IIPResolver>();

            IStatsConfig statsConfig = _configurationProvider.GetConfig <IStatsConfig>();

            var calculator = new NodeDistanceCalculator(discoveryConfig);

            _nodeTable = new NodeTable(calculator, discoveryConfig, _networkConfig, logManager);
            _nodeTable.Initialize(TestItem.PublicKeyA);
            _nodeStatsMock = Substitute.For <INodeStats>();

            _timestamper = Timestamper.Default;

            var evictionManager = new EvictionManager(_nodeTable, logManager);

            _evictionManagerMock = Substitute.For <IEvictionManager>();
            var lifecycleFactory = new NodeLifecycleManagerFactory(_nodeTable, new DiscoveryMessageFactory(_timestamper), evictionManager, new NodeStatsManager(statsConfig, logManager), discoveryConfig, logManager);

            _udpClient = Substitute.For <IMessageSender>();

            var discoveryDb = new SimpleFilePublicKeyDb("Test", "test", logManager);

            _discoveryManager = new DiscoveryManager(lifecycleFactory, _nodeTable, new NetworkStorage(discoveryDb, logManager), discoveryConfig, logManager, _ipResolverMock);
            _discoveryManager.MessageSender = _udpClient;

            _discoveryManagerMock = Substitute.For <IDiscoveryManager>();
        }
Пример #5
0
 public DiscoveryManager(
     INodeLifecycleManagerFactory nodeLifecycleManagerFactory,
     INodeTable nodeTable,
     INetworkStorage discoveryStorage,
     IDiscoveryConfig discoveryConfig,
     ILogManager logManager,
     IIPResolver ipResolver)
 {
     _logger                      = logManager.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     _discoveryConfig             = discoveryConfig ?? throw new ArgumentNullException(nameof(discoveryConfig));
     _nodeLifecycleManagerFactory = nodeLifecycleManagerFactory ?? throw new ArgumentNullException(nameof(nodeLifecycleManagerFactory));
     _nodeTable                   = nodeTable ?? throw new ArgumentNullException(nameof(nodeTable));
     _discoveryStorage            = discoveryStorage ?? throw new ArgumentNullException(nameof(discoveryStorage));
     _nodeLifecycleManagerFactory.DiscoveryManager = this;
     _ipResolver = ipResolver;
 }