feat: register ManagementActor on Central with ClusterClientReceptionist
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
using Akka.Actor;
|
using Akka.Actor;
|
||||||
using Akka.Cluster;
|
using Akka.Cluster;
|
||||||
|
using Akka.Cluster.Tools.Client;
|
||||||
using Akka.Cluster.Tools.Singleton;
|
using Akka.Cluster.Tools.Singleton;
|
||||||
using Akka.Configuration;
|
using Akka.Configuration;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
@@ -175,6 +176,15 @@ akka {{
|
|||||||
var commService = _serviceProvider.GetService<CommunicationService>();
|
var commService = _serviceProvider.GetService<CommunicationService>();
|
||||||
commService?.SetCommunicationActor(centralCommActor);
|
commService?.SetCommunicationActor(centralCommActor);
|
||||||
|
|
||||||
|
// Management Service — accessible via ClusterClient
|
||||||
|
var mgmtLogger = _serviceProvider.GetRequiredService<ILoggerFactory>()
|
||||||
|
.CreateLogger<ScadaLink.ManagementService.ManagementActor>();
|
||||||
|
var mgmtActor = _actorSystem!.ActorOf(
|
||||||
|
Props.Create(() => new ScadaLink.ManagementService.ManagementActor(_serviceProvider, mgmtLogger)),
|
||||||
|
"management");
|
||||||
|
ClusterClientReceptionist.Get(_actorSystem).RegisterService(mgmtActor);
|
||||||
|
_logger.LogInformation("ManagementActor registered with ClusterClientReceptionist");
|
||||||
|
|
||||||
_logger.LogInformation("Central actors registered. CentralCommunicationActor created.");
|
_logger.LogInformation("Central actors registered. CentralCommunicationActor created.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ using ScadaLink.Host;
|
|||||||
using ScadaLink.Host.Actors;
|
using ScadaLink.Host.Actors;
|
||||||
using ScadaLink.Host.Health;
|
using ScadaLink.Host.Health;
|
||||||
using ScadaLink.InboundAPI;
|
using ScadaLink.InboundAPI;
|
||||||
|
using ScadaLink.ManagementService;
|
||||||
using ScadaLink.NotificationService;
|
using ScadaLink.NotificationService;
|
||||||
using ScadaLink.Security;
|
using ScadaLink.Security;
|
||||||
using ScadaLink.SiteEventLogging;
|
using ScadaLink.SiteEventLogging;
|
||||||
@@ -81,6 +82,7 @@ try
|
|||||||
builder.Services.AddSecurity();
|
builder.Services.AddSecurity();
|
||||||
builder.Services.AddCentralUI();
|
builder.Services.AddCentralUI();
|
||||||
builder.Services.AddInboundAPI();
|
builder.Services.AddInboundAPI();
|
||||||
|
builder.Services.AddManagementService();
|
||||||
|
|
||||||
var configDbConnectionString = configuration["ScadaLink:Database:ConfigurationDb"]
|
var configDbConnectionString = configuration["ScadaLink:Database:ConfigurationDb"]
|
||||||
?? throw new InvalidOperationException("ScadaLink:Database:ConfigurationDb connection string is required for Central role.");
|
?? throw new InvalidOperationException("ScadaLink:Database:ConfigurationDb connection string is required for Central role.");
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
<ProjectReference Include="../ScadaLink.ClusterInfrastructure/ScadaLink.ClusterInfrastructure.csproj" />
|
<ProjectReference Include="../ScadaLink.ClusterInfrastructure/ScadaLink.ClusterInfrastructure.csproj" />
|
||||||
<ProjectReference Include="../ScadaLink.InboundAPI/ScadaLink.InboundAPI.csproj" />
|
<ProjectReference Include="../ScadaLink.InboundAPI/ScadaLink.InboundAPI.csproj" />
|
||||||
<ProjectReference Include="../ScadaLink.ConfigurationDatabase/ScadaLink.ConfigurationDatabase.csproj" />
|
<ProjectReference Include="../ScadaLink.ConfigurationDatabase/ScadaLink.ConfigurationDatabase.csproj" />
|
||||||
|
<ProjectReference Include="../ScadaLink.ManagementService/ScadaLink.ManagementService.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user