Merge pull request #415 from Moonlight-Panel/v2_addNodeOnlineCheckOnServerDeploy

Added node online check on server create
This commit is contained in:
Masu Baumgartner 2024-05-23 14:37:26 +02:00 committed by GitHub
commit c340e48f02
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2,6 +2,7 @@ using Microsoft.EntityFrameworkCore;
using MoonCore.Abstractions; using MoonCore.Abstractions;
using MoonCore.Attributes; using MoonCore.Attributes;
using MoonCore.Exceptions; using MoonCore.Exceptions;
using MoonCore.Helpers;
using MoonCore.Services; using MoonCore.Services;
using Moonlight.Core.Configuration; using Moonlight.Core.Configuration;
using Moonlight.Core.Database.Entities; using Moonlight.Core.Database.Entities;
@ -23,6 +24,8 @@ public class ServerService
public ServerBackupService Backup => ServiceProvider.GetRequiredService<ServerBackupService>(); public ServerBackupService Backup => ServiceProvider.GetRequiredService<ServerBackupService>();
public ServerScheduleService Schedule => ServiceProvider.GetRequiredService<ServerScheduleService>(); public ServerScheduleService Schedule => ServiceProvider.GetRequiredService<ServerScheduleService>();
public NodeService NodeService => ServiceProvider.GetRequiredService<NodeService>();
private readonly IServiceProvider ServiceProvider; private readonly IServiceProvider ServiceProvider;
public ServerService(IServiceProvider serviceProvider) public ServerService(IServiceProvider serviceProvider)
@ -74,6 +77,19 @@ public class ServerService
// Load node // Load node
var node = nodeRepo.Get().First(x => x.Id == form.Node.Id); var node = nodeRepo.Get().First(x => x.Id == form.Node.Id);
// Check if node is available
try
{
await NodeService.GetStatus(node);
}
catch (Exception e)
{
Logger.Warn($"Could not establish to the node with the id {node.Id}");
Logger.Warn(e);
throw new DisplayException($"Could not establish connection to the node: {e.Message}");
}
// Load user // Load user
var user = userRepo.Get().First(x => x.Id == form.Owner.Id); var user = userRepo.Get().First(x => x.Id == form.Owner.Id);