public ClusterMonitorService( IServiceProvider sp, IClusterRequestHandler _node, IEntitiesRepository entitiesRepository, MetricManagementService metricManagementService, IMetricTicksRepository metricTicksRepository, IDatabaseMetricsCollector databaseMetricsCollector, NodeStateService nodeStateService, IOptions <ClusterOptions> clusterOptions) { _metricManagementService = metricManagementService; // var sp = serviceProvider.CreateScope().ServiceProvider; _mediator = sp.GetService <IMediator>(); _logger = sp.GetService <ILogger <ClusterMonitorService> >(); _state = sp.GetService <IClusterStateService>(); _logger.LogInformation("Starting clean up service..."); node = _node; _entitiesRepository = entitiesRepository; _metricTicksRepository = metricTicksRepository; _databaseMetricsCollector = databaseMetricsCollector; monitoringTimer = new System.Threading.Timer(CollectMetricsEventHandler); node.MetricGenerated += metricGenerated; _nodeStateService = nodeStateService; _clusterOptions = clusterOptions; Start(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, IBaseRepository <TestState> repository, IRaftService raftService, IDataService dataService, ITaskService taskService, ILogger <Startup> logger, IClusterRequestHandler clusterRequestHandler) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } // node.MetricGenerated += metricGenerated; clusterRequestHandler.MetricGenerated += metricGenerated; app.Use(async(context, next) => { if (context.Request.Path == "/api/kill" && context.Request.Method == "POST") { Killed = true; logger.LogInformation("Killing node"); raftService.SetNodeRole(Domain.Enums.NodeState.Disabled); } if (context.Request.Path == "/api/revive" && context.Request.Method == "POST") { Killed = false; logger.LogInformation("Restoring node"); raftService.SetNodeRole(Domain.Enums.NodeState.Follower); } if (Killed == false) { await next(); } else { context.Abort(); } }); app.UseSwagger(); // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), // specifying the Swagger JSON endpoint. app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseHttpsRedirection(); app.UseMvc(); }
public CreateStepCommandHandler( IEntitiesRepository entitiesRepository, IClusterStateService service, IClusterRequestHandler node) { _entitiesRepository = entitiesRepository; _clusterStateService = service; _node = node; }
public SnapshottingTests() { provider = TestUtility.GetFullNodeProvider(); provider.GetService <IStateMachine <TestState> >().CurrentState = JsonConvert.DeserializeObject <TestState>("{\"Values\":[],\"ObjectLocks\":{},\"Nodes\":{\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\":{\"Name\":\"\",\"TransportAddress\":\"https:\\/\\/localhost:5022\",\"Id\":\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"IsContactable\":true},\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\":{\"Name\":\"\",\"TransportAddress\":\"https:\\/\\/localhost:5023\",\"Id\":\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"IsContactable\":true},\"e3cde308-24ea-41cf-9992-30c5bc200b1c\":{\"Name\":\"\",\"TransportAddress\":\"https:\\/\\/localhost:5021\",\"Id\":\"e3cde308-24ea-41cf-9992-30c5bc200b1c\",\"IsContactable\":true}},\"Indexes\":{\"number\":{\"Type\":\"number\",\"Shards\":[{\"Id\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"PrimaryAllocation\":\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"InsyncAllocations\":[\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"e3cde308-24ea-41cf-9992-30c5bc200b1c\"],\"StaleAllocations\":[\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\"],\"LatestOperationPos\":276}]}},\"ClusterTasks\":{\"4c4dfffe-dce9-4d1f-b09f-72f2c3d4f73b\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"4c4dfffe-dce9-4d1f-b09f-72f2c3d4f73b\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Description\":null,\"NodeId\":\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:02:53.2286185Z\",\"CompletedOn\":\"2020-01-12T14:02:56.3238116Z\",\"ErrorMessage\":null},\"5b2cc49a-08d7-49a3-aef9-581a394b74bd\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"5b2cc49a-08d7-49a3-aef9-581a394b74bd\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Description\":null,\"NodeId\":\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Status\":0,\"CreatedOn\":\"2020-01-12T14:04:23.319406Z\",\"CompletedOn\":null,\"ErrorMessage\":null},\"f2bdf90a-3c63-49c3-bc17-ebd831effd69\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"f2bdf90a-3c63-49c3-bc17-ebd831effd69\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Description\":null,\"NodeId\":\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:03:50.5790822Z\",\"CompletedOn\":\"2020-01-12T14:03:54.5473028Z\",\"ErrorMessage\":null},\"26030ab2-dea5-4e0b-b81f-aaa87371ba7c\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"26030ab2-dea5-4e0b-b81f-aaa87371ba7c\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_76153079-e84a-4ca4-926d-7be8ebcacaad\",\"Description\":null,\"NodeId\":\"76153079-e84a-4ca4-926d-7be8ebcacaad\",\"Status\":0,\"CreatedOn\":\"2020-01-12T14:03:47.4440007Z\",\"CompletedOn\":null,\"ErrorMessage\":null},\"d1332e8c-ff4a-475f-80e1-7d69673d21fb\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"d1332e8c-ff4a-475f-80e1-7d69673d21fb\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Description\":null,\"NodeId\":\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:04:13.8324568Z\",\"CompletedOn\":\"2020-01-12T14:04:16.0778643Z\",\"ErrorMessage\":null},\"0319ec31-c92e-4e3e-a4c5-681974ed6d79\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"0319ec31-c92e-4e3e-a4c5-681974ed6d79\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Description\":null,\"NodeId\":\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:03:54.2887234Z\",\"CompletedOn\":\"2020-01-12T14:03:57.3013951Z\",\"ErrorMessage\":null},\"28b4b747-94a9-465c-ab1f-5329568cf43c\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"28b4b747-94a9-465c-ab1f-5329568cf43c\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_76153079-e84a-4ca4-926d-7be8ebcacaad\",\"Description\":null,\"NodeId\":\"76153079-e84a-4ca4-926d-7be8ebcacaad\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:02:35.3503546Z\",\"CompletedOn\":\"2020-01-12T14:02:36.9445668Z\",\"ErrorMessage\":null},\"b5746552-8323-4f8b-9208-6caf1d190723\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"b5746552-8323-4f8b-9208-6caf1d190723\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_e3cde308-24ea-41cf-9992-30c5bc200b1c\",\"Description\":null,\"NodeId\":\"e3cde308-24ea-41cf-9992-30c5bc200b1c\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:03:47.443823Z\",\"CompletedOn\":\"2020-01-12T14:03:48.3390348Z\",\"ErrorMessage\":null},\"f25c9baf-557b-4e4b-b392-7c002d46265e\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"f25c9baf-557b-4e4b-b392-7c002d46265e\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Description\":null,\"NodeId\":\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:04:13.8325267Z\",\"CompletedOn\":\"2020-01-12T14:04:25.788778Z\",\"ErrorMessage\":null},\"1176fad5-0a7b-4be6-bfee-bb5daab1fd1a\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"1176fad5-0a7b-4be6-bfee-bb5daab1fd1a\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_e3cde308-24ea-41cf-9992-30c5bc200b1c\",\"Description\":null,\"NodeId\":\"e3cde308-24ea-41cf-9992-30c5bc200b1c\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:03:09.0529522Z\",\"CompletedOn\":\"2020-01-12T14:03:12.6117176Z\",\"ErrorMessage\":null},\"b7aac0f6-f5c5-4369-8d35-dda93ab5c8e3\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"b7aac0f6-f5c5-4369-8d35-dda93ab5c8e3\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_e3cde308-24ea-41cf-9992-30c5bc200b1c\",\"Description\":null,\"NodeId\":\"e3cde308-24ea-41cf-9992-30c5bc200b1c\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:04:13.8323067Z\",\"CompletedOn\":\"2020-01-12T14:04:26.7999775Z\",\"ErrorMessage\":null},\"52c1b7f2-5b56-440d-b1ca-972125c56abd\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"52c1b7f2-5b56-440d-b1ca-972125c56abd\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Description\":null,\"NodeId\":\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:03:47.4441459Z\",\"CompletedOn\":\"2020-01-12T14:03:49.0200978Z\",\"ErrorMessage\":null},\"30bbec29-6ee3-45b2-ad3b-3a66de889cc7\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"30bbec29-6ee3-45b2-ad3b-3a66de889cc7\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_76153079-e84a-4ca4-926d-7be8ebcacaad\",\"Description\":null,\"NodeId\":\"76153079-e84a-4ca4-926d-7be8ebcacaad\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:02:53.2285595Z\",\"CompletedOn\":\"2020-01-12T14:02:55.5036054Z\",\"ErrorMessage\":null},\"68972d54-7abf-4b0e-bd1e-baef8bf0911d\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"68972d54-7abf-4b0e-bd1e-baef8bf0911d\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Description\":null,\"NodeId\":\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:02:35.3504115Z\",\"CompletedOn\":\"2020-01-12T14:02:37.57588Z\",\"ErrorMessage\":null},\"3626d27b-19e6-448b-9d2c-39186ad18a90\":{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"3626d27b-19e6-448b-9d2c-39186ad18a90\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_057a4fa5-af06-42ec-94c9-e5849d977a7f\",\"Description\":null,\"NodeId\":\"057a4fa5-af06-42ec-94c9-e5849d977a7f\",\"Status\":0,\"CreatedOn\":\"2020-01-12T14:02:35.3501707Z\",\"CompletedOn\":null,\"ErrorMessage\":null}}}"); provider.GetService <INodeStorage <TestState> >().Logs = JsonConvert.DeserializeObject <SortedList <int, LogEntry> >("{\"45\":{\"Term\":6,\"Index\":45,\"Commands\":[{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":null,\"TasksToRemove\":null,\"TasksToUpdate\":[{\"TaskId\":\"f2bdf90a-3c63-49c3-bc17-ebd831effd69\",\"Status\":5,\"CompletedOn\":\"0001-01-01T00:00:00\",\"ErrorMessage\":null}],\"DebugLog\":null}]},\"46\":{\"Term\":6,\"Index\":46,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"StaleAllocationsToRemove\":[\"76153079-e84a-4ca4-926d-7be8ebcacaad\"],\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null},{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"0319ec31-c92e-4e3e-a4c5-681974ed6d79\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Description\":null,\"NodeId\":\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:03:54.2887234Z\",\"CompletedOn\":\"2020-01-12T14:03:57.3013951Z\",\"ErrorMessage\":null}],\"TasksToRemove\":null,\"TasksToUpdate\":null,\"DebugLog\":null}]},\"47\":{\"Term\":6,\"Index\":47,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"InsyncAllocationsToAdd\":[\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\"],\"StaleAllocationsToRemove\":[\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\"],\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null},{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":null,\"TasksToRemove\":null,\"TasksToUpdate\":[{\"TaskId\":\"f2bdf90a-3c63-49c3-bc17-ebd831effd69\",\"Status\":1,\"CompletedOn\":\"2020-01-12T14:03:54.5473028Z\",\"ErrorMessage\":null}],\"DebugLog\":null}]},\"48\":{\"Term\":6,\"Index\":48,\"Commands\":[{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":null,\"TasksToRemove\":null,\"TasksToUpdate\":[{\"TaskId\":\"0319ec31-c92e-4e3e-a4c5-681974ed6d79\",\"Status\":5,\"CompletedOn\":\"0001-01-01T00:00:00\",\"ErrorMessage\":null}],\"DebugLog\":null}]},\"49\":{\"Term\":6,\"Index\":49,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"InsyncAllocationsToAdd\":[\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\"],\"StaleAllocationsToRemove\":[\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\"],\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null},{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":null,\"TasksToRemove\":null,\"TasksToUpdate\":[{\"TaskId\":\"0319ec31-c92e-4e3e-a4c5-681974ed6d79\",\"Status\":1,\"CompletedOn\":\"2020-01-12T14:03:57.3013951Z\",\"ErrorMessage\":null}],\"DebugLog\":null}]},\"50\":{\"Term\":6,\"Index\":50,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"LatestPos\":226,\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null}]},\"51\":{\"Term\":6,\"Index\":51,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"StaleAllocationsToAdd\":[\"e3cde308-24ea-41cf-9992-30c5bc200b1c\",\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\"],\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null}]},\"52\":{\"Term\":7,\"Index\":52,\"Commands\":[{\"Id\":\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Name\":\"\",\"TransportAddress\":\"https:\\/\\/localhost:5022\",\"IsContactable\":true,\"CommandName\":\"UpsertNodeInformation\",\"DebugLog\":null}]},\"53\":{\"Term\":7,\"Index\":53,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"LatestPos\":252,\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null},{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"b7aac0f6-f5c5-4369-8d35-dda93ab5c8e3\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_e3cde308-24ea-41cf-9992-30c5bc200b1c\",\"Description\":null,\"NodeId\":\"e3cde308-24ea-41cf-9992-30c5bc200b1c\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:04:13.8323067Z\",\"CompletedOn\":\"2020-01-12T14:04:26.7999775Z\",\"ErrorMessage\":null},{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"d1332e8c-ff4a-475f-80e1-7d69673d21fb\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Description\":null,\"NodeId\":\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:04:13.8324568Z\",\"CompletedOn\":\"2020-01-12T14:04:16.0778643Z\",\"ErrorMessage\":null},{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"f25c9baf-557b-4e4b-b392-7c002d46265e\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Description\":null,\"NodeId\":\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Status\":1,\"CreatedOn\":\"2020-01-12T14:04:13.8325267Z\",\"CompletedOn\":\"2020-01-12T14:04:25.788778Z\",\"ErrorMessage\":null}],\"TasksToRemove\":null,\"TasksToUpdate\":null,\"DebugLog\":null}]},\"54\":{\"Term\":7,\"Index\":54,\"Commands\":[{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":null,\"TasksToRemove\":null,\"TasksToUpdate\":[{\"TaskId\":\"d1332e8c-ff4a-475f-80e1-7d69673d21fb\",\"Status\":5,\"CompletedOn\":\"0001-01-01T00:00:00\",\"ErrorMessage\":null}],\"DebugLog\":null}]},\"55\":{\"Term\":7,\"Index\":55,\"Commands\":[{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":null,\"TasksToRemove\":null,\"TasksToUpdate\":[{\"TaskId\":\"b7aac0f6-f5c5-4369-8d35-dda93ab5c8e3\",\"Status\":5,\"CompletedOn\":\"0001-01-01T00:00:00\",\"ErrorMessage\":null}],\"DebugLog\":null}]},\"56\":{\"Term\":7,\"Index\":56,\"Commands\":[{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":null,\"TasksToRemove\":null,\"TasksToUpdate\":[{\"TaskId\":\"f25c9baf-557b-4e4b-b392-7c002d46265e\",\"Status\":5,\"CompletedOn\":\"0001-01-01T00:00:00\",\"ErrorMessage\":null}],\"DebugLog\":null}]},\"57\":{\"Term\":7,\"Index\":57,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"InsyncAllocationsToAdd\":[\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\"],\"StaleAllocationsToRemove\":[\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\"],\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null},{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":null,\"TasksToRemove\":null,\"TasksToUpdate\":[{\"TaskId\":\"d1332e8c-ff4a-475f-80e1-7d69673d21fb\",\"Status\":1,\"CompletedOn\":\"2020-01-12T14:04:16.0778643Z\",\"ErrorMessage\":null}],\"DebugLog\":null}]},\"58\":{\"Term\":7,\"Index\":58,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"StaleAllocationsToAdd\":[\"e3cde308-24ea-41cf-9992-30c5bc200b1c\",\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\"],\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null}]},\"59\":{\"Term\":8,\"Index\":59,\"Commands\":[{\"Id\":\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\",\"Name\":\"\",\"TransportAddress\":\"https:\\/\\/localhost:5022\",\"IsContactable\":true,\"CommandName\":\"UpsertNodeInformation\",\"DebugLog\":null}]},\"60\":{\"Term\":8,\"Index\":60,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"LatestPos\":274,\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null},{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"Name\":\"ResyncShard\",\"Id\":\"5b2cc49a-08d7-49a3-aef9-581a394b74bd\",\"UniqueRunningId\":\"Recover_Shard_ef2209ec-ee65-49f2-9a81-4f20f1dda447_95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Description\":null,\"NodeId\":\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\",\"Status\":0,\"CreatedOn\":\"2020-01-12T14:04:23.319406Z\",\"CompletedOn\":null,\"ErrorMessage\":null}],\"TasksToRemove\":null,\"TasksToUpdate\":null,\"DebugLog\":null}]},\"61\":{\"Term\":8,\"Index\":61,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"InsyncAllocationsToAdd\":[\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\"],\"StaleAllocationsToRemove\":[\"8d3ee6ca-8da9-41c4-a4e5-8b7803f39bc4\"],\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null},{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":null,\"TasksToRemove\":null,\"TasksToUpdate\":[{\"TaskId\":\"f25c9baf-557b-4e4b-b392-7c002d46265e\",\"Status\":1,\"CompletedOn\":\"2020-01-12T14:04:25.788778Z\",\"ErrorMessage\":null}],\"DebugLog\":null}]},\"62\":{\"Term\":8,\"Index\":62,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"InsyncAllocationsToAdd\":[\"e3cde308-24ea-41cf-9992-30c5bc200b1c\"],\"StaleAllocationsToRemove\":[\"e3cde308-24ea-41cf-9992-30c5bc200b1c\"],\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null},{\"CommandName\":\"UpdateClusterTasks\",\"TasksToAdd\":null,\"TasksToRemove\":null,\"TasksToUpdate\":[{\"TaskId\":\"b7aac0f6-f5c5-4369-8d35-dda93ab5c8e3\",\"Status\":1,\"CompletedOn\":\"2020-01-12T14:04:26.7999775Z\",\"ErrorMessage\":null}],\"DebugLog\":null}]},\"63\":{\"Term\":8,\"Index\":63,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"LatestPos\":275,\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null}]},\"64\":{\"Term\":8,\"Index\":64,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"InsyncAllocationsToRemove\":[\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\"],\"StaleAllocationsToAdd\":[\"95ae4a5b-20eb-47fb-ba99-96115e3dacab\"],\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null}]},\"65\":{\"Term\":8,\"Index\":65,\"Commands\":[{\"ShardId\":\"ef2209ec-ee65-49f2-9a81-4f20f1dda447\",\"Type\":\"number\",\"LatestPos\":276,\"CommandName\":\"UpdateShardMetadataAllocations\",\"DebugLog\":null}]}}"); provider.GetService <INodeStorage <TestState> >().LastSnapshotIncludedIndex = 44; Node = provider.GetService <IClusterRequestHandler>(); provider.GetService <NodeStateService>().CommitIndex = 65; }
public AppendStepLogCommandHandler(IEntitiesRepository entitiesRepository, ILogger <AppendStepLogCommandHandler> logger, IClusterRequestHandler node ) { _entitiesRepository = entitiesRepository; Logger = logger; _node = node; }
public UpdateExecutionScheduleCommandHandler(IEntitiesRepository entitiesRepository, IClusterStateService service, IClusterRequestHandler node, IMediator mediator) { _entitiesRepository = entitiesRepository; _clusterStateService = service; _node = node; _mediator = mediator; }
public CreateUserCommandHandler( IEntitiesRepository entitiesRepository, ILogger <CreateUserCommandHandler> logger, IServiceProvider prov, IDataRouter router, IClusterRequestHandler node ) { _entitiesRepository = entitiesRepository; _node = (IClusterRequestHandler)prov.GetService(typeof(IClusterRequestHandler)); }
public CreateWorkflowCommandHandler( IEntitiesRepository entitiesRepository, IMediator mediator, IClusterRequestHandler node, ILogger <CreateWorkflowCommandHandler> logger) { _entitiesRepository = entitiesRepository; _mediator = mediator; _node = node; _logger = logger; }
public MetricManagementService( ILogger <MetricManagementService> logger, IClusterRequestHandler node, NodeStateService nodeStateService, IEntitiesRepository entitiesRepository, IConfiguration configuration ) { _logger = logger; _logger.LogInformation("Populating Metrics..."); _metricLibrary = new MetricLibrary(); _node = node; _nodeStateService = nodeStateService; _entitiesRepository = entitiesRepository; _configuration = configuration; EnableMetrics = _configuration.GetValue <bool>("EnableMonitoring"); if (EnableMetrics) { writeThread = new Task(async() => { MetricTick tick; while (true) { // Console.WriteLine("Number of tasks " + _ticks.Count()); if (_nodeStateService.InCluster) { if (_ticks.TryDequeue(out tick)) { tick.Date = tick.Date.ToUniversalTime(); tick.Id = Guid.NewGuid(); var startTime = DateTime.Now; await _node.Handle(new AddShardWriteOperation() { WaitForSafeWrite = true, Operation = ConsensusCore.Domain.Enums.ShardOperationOptions.Create, Data = tick, Metric = false // Do not metric the metric write operations }); _logger.LogDebug("Total write time took " + (DateTime.Now - startTime).TotalMilliseconds + " total ticks left in queue " + _ticks.Count()); if (_ticks.Count > 100) { _logger.LogWarning("Tick count is greater then 100..."); } } } await Task.Delay(10); } }); writeThread.Start(); } }
public UnassignStepCommandHandler(IEntitiesRepository entitiesRepository, ILogger <UnassignStepCommandHandler> logger, IOptionsMonitor <CindiClusterOptions> options, IClusterRequestHandler node) { _entitiesRepository = entitiesRepository; _node = node; Logger = logger; options.OnChange((change) => { _option = change; }); }
public AssignStepCommandHandler( IEntitiesRepository entitiesRepository, IClusterStateService stateService, ILogger <AssignStepCommandHandler> logger, IClusterRequestHandler node, IMemoryCache cache ) { _entitiesRepository = entitiesRepository; _clusterStateService = stateService; Logger = logger; _node = node; _cache = cache; }
public NodeController(IClusterRequestHandler handler, ILogger <NodeController <State> > logger, NodeStateService nodeStateService, IStateMachine <State> stateMachine, INodeStorage <State> nodeStorage, IClusterConnectionPool clusterConnectionPool, IShardRepository shardRepository) { _handler = handler; Logger = logger; _nodeStateService = nodeStateService; _stateMachine = stateMachine; _nodeStorage = nodeStorage; _clusterConnectionPool = clusterConnectionPool; _shardRepository = shardRepository; }
public CompleteStepCommandHandler(IEntitiesRepository entitiesRepository, IClusterStateService clusterStateService, ILogger <CompleteStepCommandHandler> logger, CindiClusterOptions options, IMediator mediator, IClusterRequestHandler node, NodeStateService nodeStateService ) { _entitiesRepository = entitiesRepository; _clusterStateService = clusterStateService; Logger = logger; _option = options; _node = node; _mediator = mediator; }
public ScanWorkflowCommandHandler(IEntitiesRepository entitiesRepository, IClusterStateService clusterStateService, ILogger <ScanWorkflowCommandHandler> logger, IOptionsMonitor <CindiClusterOptions> options, IMediator mediator, IClusterRequestHandler node ) { _entitiesRepository = entitiesRepository; _clusterStateService = clusterStateService; Logger = logger; _option = options.CurrentValue; options.OnChange((change) => { _option = change; }); _mediator = mediator; _node = node; }
public ClusterStateService( ILogger <ClusterStateService> logger, IServiceScopeFactory serviceProvider, IClusterRequestHandler node, IStateMachine <CindiClusterState> stateMachine) { _node = node; _stateMachine = stateMachine; Initialized = state == null ? false : state.Initialized; _logger = logger; if (state == null) { _logger.LogWarning("Existing cluster state not found. Creating new state."); } else { Console.WriteLine("Existing cluster state found with name " + state.Id + ". Loading existing state."); } }
public CreateStepTemplateCommandHandler(IEntitiesRepository entitiesRepository, IClusterRequestHandler node, ILogger <CreateStepTemplateCommandHandler> logger) { _entitiesRepository = entitiesRepository; _node = node; Logger = logger; }
public DeleteEntityCommandHandler(IClusterRequestHandler node, IEntitiesRepository entitiesRepository) { _node = node; _entitiesRepository = entitiesRepository; }
public UpdateClusterStateCommandHandler(IClusterRequestHandler node, IClusterStateService state) { _state = state; _node = node; }
public CreateGlobalValueCommandHandler(IEntitiesRepository entitiesRepository, IClusterRequestHandler node) { _entitiesRepository = entitiesRepository; _node = node; }
public UpdateNonceCommandHandler(IMediator mediator, IClusterRequestHandler node) { _mediator = mediator; _node = node; }
public DataConcurrency_Tests() { Node = TestUtility.GetFullNodeProvider().GetService <IClusterRequestHandler>(); }
public CreateBotKeyCommandHandler(IClusterRequestHandler node) { _node = node; }
public UpdateBotKeyCommandHandler(IEntitiesRepository entitiesRepository, IClusterRequestHandler node) { _entitiesRepository = entitiesRepository; _node = node; }