From 7de723d0b81ee3bd78f15f514e3d7c79c5a460ff Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Fri, 14 Apr 2023 13:59:35 +0200 Subject: [PATCH] Fixed server deletion and creation allocation bugs --- .../Api/Remote/ServersController.cs | 10 ++++- Moonlight/App/Services/ServerService.cs | 39 ++++++++++++++++--- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/Moonlight/App/Http/Controllers/Api/Remote/ServersController.cs b/Moonlight/App/Http/Controllers/Api/Remote/ServersController.cs index 9ea1e8fc..1136bcae 100644 --- a/Moonlight/App/Http/Controllers/Api/Remote/ServersController.cs +++ b/Moonlight/App/Http/Controllers/Api/Remote/ServersController.cs @@ -138,7 +138,15 @@ public class ServersController : Controller await MessageService.Emit($"wings.{node.Id}.serverfetch", server); - return Converter.FromServer(server); + try //TODO: Remove + { + return Converter.FromServer(server); + } + catch (Exception e) + { + Console.WriteLine(e); + throw; + } } [HttpGet("{uuid}/install")] diff --git a/Moonlight/App/Services/ServerService.cs b/Moonlight/App/Services/ServerService.cs index ccde6026..01bc2ee0 100644 --- a/Moonlight/App/Services/ServerService.cs +++ b/Moonlight/App/Services/ServerService.cs @@ -201,7 +201,8 @@ public class ServerService { x.Add(server.Uuid); x.Add(backup.Uuid); - }); + } + ); } public async Task DownloadBackup(Server s, ServerBackup serverBackup) @@ -262,10 +263,15 @@ public class ServerService node = NodeRepository .Get() .Include(x => x.Allocations) - .First(x => x.Id == n.Id); + .First(); //TODO: Add smart deploy maybe } else - node = n; + { + node = NodeRepository + .Get() + .Include(x => x.Allocations) + .First(x => x.Id == n.Id); + } NodeAllocation[] freeAllocations; @@ -339,7 +345,7 @@ public class ServerService x.Add(node.Id); }); - ServerRepository.Delete(newServerData); + ServerRepository.Delete(newServerData); //TODO Remove unsinged table stuff throw new DisplayException("Error creating server on wings"); } @@ -388,9 +394,32 @@ public class ServerService { var server = EnsureNodeData(s); + var backups = await GetBackups(server); + + foreach (var backup in backups) + { + try + { + await DeleteBackup(server, backup); + } + catch (Exception) + { + // ignored + } + } + await WingsApiHelper.Delete(server.Node, $"api/servers/{server.Uuid}", null); - ServerRepository.Delete(s); + //TODO: Fix empty data models + + server.Allocations = new(); + server.MainAllocation = null; + server.Variables = new(); + server.Backups = new(); + + ServerRepository.Update(server); + + ServerRepository.Delete(server); } public async Task IsHostUp(Server s)