Example #1
0
 public ResourceMonitor(ILogger <ResourceMonitor> logger, IProcessResourceUsage processor, KongoOptions opts)
 {
     _logger    = logger;
     _processor = processor;
     _opts      = opts;
     _sb        = new StringBuilder();
 }
Example #2
0
 public Maintenance(ILogger <Maintenance> logger, KongoOptions opts, IRunDatabaseMaintenance databaseMaintenance)
 {
     _logger = logger;
     _sb     = new StringBuilder();
     _opts   = opts;
     _databaseMaintenance = databaseMaintenance;
 }
Example #3
0
        private static object LoadKongoOptions(KongoOptions opts)
        {
            _opts = opts;
            _opts.ApplicationStartedOn = DateTimeOffset.UtcNow;

            // parse database path and create db connection string
            try
            {
                if (File.Exists(_opts.DatabasePath) && !Directory.Exists(_opts.DatabasePath))
                {
                    _dbConnectionString = $"Data Source={_opts.DatabasePath};";
                }
                else
                {
                    if (_opts.DatabasePath.EndsWith(".sqlite", StringComparison.InvariantCultureIgnoreCase))
                    {
                        _dbConnectionString = $"Data Source={_opts.DatabasePath};";
                    }
                    else
                    {
                        if (!Directory.Exists(_opts.DatabasePath))
                        {
                            Directory.CreateDirectory(_opts.DatabasePath);
                        }

                        _dbConnectionString = $"Data Source={Path.Combine(_opts.DatabasePath, "Kongo.SQlite")};";
                    }
                }
            }
            catch (Exception ex)
            {
                var currentForeground = Console.ForegroundColor;
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Exception occured parsing DatabasePath");
                Console.WriteLine($"Excaption: {ex}, {ex.Message}");
                Console.ForegroundColor = currentForeground;

                _dbConnectionString = "Data Source=Kongo.SQlite;";
            }

            // validate urls info
            if (!string.IsNullOrEmpty(_opts.ServerUrls))
            {
                if (string.IsNullOrEmpty(_opts.CertificateSubject))
                {
                    if (string.IsNullOrEmpty(_opts.CertificatePath) || string.IsNullOrEmpty(_opts.CertificatePassword))
                    {
                        var message = "Missing dependent property:  (--server.url --cert-subject) or (--server.url --cert-path --cert-password) are required";
                        Console.WriteLine(message);
                        throw new KongoOptionsException(message);
                    }
                }
            }

            // initialize Kongo Status model
            _kongoStatus = new KongoStatusModel()
            {
                CurrentBlockHeight    = 0,
                CurrentChartTimeframe = TimeRangeEnum.OneHour,
                LastBlockReceivedAt   = default,
Example #4
0
 public NetworkStats(ILogger <NetworkStats> logger, IProcessNetworkStatistics processor, KongoOptions opts)
 {
     _logger     = logger;
     _httpClient = new HttpClient();
     _processor  = processor;
     _sb         = new StringBuilder();
     _opts       = opts;
 }
Example #5
0
 public Fragments(ILogger <Fragments> logger, IProcessFragments processor, KongoOptions opts)
 {
     _logger     = logger;
     _httpClient = new HttpClient();
     _processor  = processor;
     _sb         = new StringBuilder();
     _opts       = opts;
 }
Example #6
0
 public Leaders(ILogger <Leaders> logger, IProcessLeaders processor, KongoOptions opts)
 {
     _logger     = logger;
     _httpClient = new HttpClient();
     _processor  = processor;
     _sb         = new StringBuilder();
     _opts       = opts;
 }
Example #7
0
 public StakePools(ILogger <StakePools> logger, IProcessStakePools processor, KongoOptions opts)
 {
     _logger     = logger;
     _httpClient = new HttpClient();
     _processor  = processor;
     _sb         = new StringBuilder();
     _opts       = opts;
 }
Example #8
0
 public NodeStats(ILogger <NodeStats> logger, IProcessNodeStatistics processor, KongoOptions opts, KongoStatusModel kongoStatus)
 {
     _logger      = logger;
     _httpClient  = new HttpClient();
     _processor   = processor;
     _sb          = new StringBuilder();
     _opts        = opts;
     _kongoStatus = kongoStatus;
 }
Example #9
0
        //private readonly NodeConfigurationModel _nodeConfiguration;

        public ProcessStdErr(ILogger <ProcessStdErr> logger, LogIngestionConfigModel logIngestionConfig, IProcessStdError processor, KongoOptions opts)
        {
            _logger             = logger;
            _processor          = processor;
            _opts               = opts;
            _watcher            = new FileSystemWatcher();
            _logIngestionConfig = logIngestionConfig;
            _stopwatch          = new Stopwatch();
            _sb = new StringBuilder();
        }
        public void InvalidNodeStatisticStream_Throws_ArgumentException(string value)
        {
            var storage = new KongoDataStorage($"Data Source={Path.GetRandomFileName()}");

            storage.Database.EnsureCreated();
            var opts = new KongoOptions()
            {
                ApplicationStartedOn = DateTimeOffset.UtcNow
            };

            _processor = new NodeStatisticsProcessor(storage, opts);
            storage.Database.EnsureDeleted();
            Assert.ThrowsAsync <ArgumentException>(() => _processor.ProcessNodeStatistics(value));
        }
        public async Task ProcessLeaders(string value)
        {
            var storage = new KongoDataStorage($"Data Source={Path.GetRandomFileName()}");

            storage.Database.EnsureCreated();
            var opts = new KongoOptions()
            {
                ApplicationStartedOn = DateTimeOffset.UtcNow
            };

            _processor = new LeadersProcessor(storage, opts);
            var processedLeaders = await _processor.ProcessLeaders(value);

            storage.Database.EnsureDeleted();
            Assert.True(processedLeaders.Leaders.Count > 0);
        }
Example #12
0
        public async Task ProcessSettings(string value)
        {
            var storage = new KongoDataStorage($"Data Source={Path.GetRandomFileName()}");

            storage.Database.EnsureCreated();
            var opts = new KongoOptions()
            {
                ApplicationStartedOn = DateTimeOffset.UtcNow
            };

            _processor = new SettingsProcessor(storage, opts);
            var settings = await _processor.ProcessSettings(value);

            storage.Database.EnsureDeleted();
            Assert.True(settings.Coefficient == 50);
        }
        public async Task ProcessValidNodeStatisticStream(string value)
        {
            var storage = new KongoDataStorage($"Data Source={Path.GetRandomFileName()}");

            storage.Database.EnsureCreated();
            var opts = new KongoOptions()
            {
                ApplicationStartedOn = DateTimeOffset.UtcNow
            };

            _processor = new NodeStatisticsProcessor(storage, opts);
            var nodeStats = await _processor.ProcessNodeStatistics(value);

            storage.Database.EnsureDeleted();
            Assert.True(nodeStats != null, "nodeStats == null");
            Assert.True(nodeStats.BlockRecvCnt > 0, $"BlockRecvCnt = {nodeStats.BlockRecvCnt}");
            Assert.True(nodeStats.LastBlockTime != default, $"LastBlockTime = {nodeStats.LastBlockTime}");
        }
        public async Task ProcessLeadersLogs(string value)
        {
            var storage = new KongoDataStorage($"Data Source={Path.GetRandomFileName()}");

            storage.Database.EnsureCreated();
            var opts = new KongoOptions()
            {
                ApplicationStartedOn = DateTimeOffset.UtcNow
            };

            _processor = new LeadersProcessor(storage, opts);
            var processedLeaders = await _processor.ProcessLeadersLogs(value);

            storage.Database.EnsureDeleted();

            var leadersLogs = JsonConvert.DeserializeObject <List <StoredLeadersLogsModel> >(processedLeaders.LeadersLogsJson);

            Assert.True(leadersLogs.Count > 0);
            Assert.False(leadersLogs[0].Scheduled_at_date.Equals(default));
Example #15
0
 public StakeProcessor(KongoDataStorage database, KongoOptions opts)
 {
     _database = database;
     _opts     = opts;
 }
Example #16
0
 public DatabaseMaintenance(KongoDataStorage database, KongoOptions opts)
 {
     _database = database;
     _opts     = opts;
 }
Example #17
0
 public NodeStatisticsProcessor(KongoDataStorage database, KongoOptions opts)
 {
     _database = database;
     _opts     = opts;
 }