mirror of
https://github.com/chylex/Minecraft-Phantom-Panel.git
synced 2025-04-30 15:34:06 +02:00
Add "Backing Up" instance status
This commit is contained in:
parent
875fd9a766
commit
991b32032c
Agent/Phantom.Agent.Services/Instances
Common/Phantom.Common.Data/Instance
Web/Phantom.Web/Shared
@ -135,7 +135,12 @@ sealed class InstanceActor : ReceiveActor<InstanceActor.ICommand> {
|
|||||||
return new BackupCreationResult(BackupCreationResultKind.InstanceNotRunning);
|
return new BackupCreationResult(BackupCreationResultKind.InstanceNotRunning);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return await command.BackupManager.CreateBackup(context.ShortName, runningState.Process, shutdownCancellationToken);
|
SetAndReportStatus(InstanceStatus.BackingUp);
|
||||||
|
try {
|
||||||
|
return await command.BackupManager.CreateBackup(context.ShortName, runningState.Process, shutdownCancellationToken);
|
||||||
|
} finally {
|
||||||
|
SetAndReportStatus(InstanceStatus.Running);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,9 +9,10 @@ namespace Phantom.Common.Data.Instance;
|
|||||||
[MemoryPackUnion(3, typeof(InstanceIsDownloading))]
|
[MemoryPackUnion(3, typeof(InstanceIsDownloading))]
|
||||||
[MemoryPackUnion(4, typeof(InstanceIsLaunching))]
|
[MemoryPackUnion(4, typeof(InstanceIsLaunching))]
|
||||||
[MemoryPackUnion(5, typeof(InstanceIsRunning))]
|
[MemoryPackUnion(5, typeof(InstanceIsRunning))]
|
||||||
[MemoryPackUnion(6, typeof(InstanceIsRestarting))]
|
[MemoryPackUnion(6, typeof(InstanceIsBackingUp))]
|
||||||
[MemoryPackUnion(7, typeof(InstanceIsStopping))]
|
[MemoryPackUnion(7, typeof(InstanceIsRestarting))]
|
||||||
[MemoryPackUnion(8, typeof(InstanceIsFailed))]
|
[MemoryPackUnion(8, typeof(InstanceIsStopping))]
|
||||||
|
[MemoryPackUnion(9, typeof(InstanceIsFailed))]
|
||||||
public partial interface IInstanceStatus {}
|
public partial interface IInstanceStatus {}
|
||||||
|
|
||||||
[MemoryPackable(GenerateType.VersionTolerant)]
|
[MemoryPackable(GenerateType.VersionTolerant)]
|
||||||
@ -32,6 +33,9 @@ public sealed partial record InstanceIsLaunching : IInstanceStatus;
|
|||||||
[MemoryPackable(GenerateType.VersionTolerant)]
|
[MemoryPackable(GenerateType.VersionTolerant)]
|
||||||
public sealed partial record InstanceIsRunning : IInstanceStatus;
|
public sealed partial record InstanceIsRunning : IInstanceStatus;
|
||||||
|
|
||||||
|
[MemoryPackable(GenerateType.VersionTolerant)]
|
||||||
|
public sealed partial record InstanceIsBackingUp : IInstanceStatus;
|
||||||
|
|
||||||
[MemoryPackable(GenerateType.VersionTolerant)]
|
[MemoryPackable(GenerateType.VersionTolerant)]
|
||||||
public sealed partial record InstanceIsRestarting : IInstanceStatus;
|
public sealed partial record InstanceIsRestarting : IInstanceStatus;
|
||||||
|
|
||||||
@ -46,6 +50,7 @@ public static class InstanceStatus {
|
|||||||
public static readonly IInstanceStatus NotRunning = new InstanceIsNotRunning();
|
public static readonly IInstanceStatus NotRunning = new InstanceIsNotRunning();
|
||||||
public static readonly IInstanceStatus Launching = new InstanceIsLaunching();
|
public static readonly IInstanceStatus Launching = new InstanceIsLaunching();
|
||||||
public static readonly IInstanceStatus Running = new InstanceIsRunning();
|
public static readonly IInstanceStatus Running = new InstanceIsRunning();
|
||||||
|
public static readonly IInstanceStatus BackingUp = new InstanceIsBackingUp();
|
||||||
public static readonly IInstanceStatus Restarting = new InstanceIsRestarting();
|
public static readonly IInstanceStatus Restarting = new InstanceIsRestarting();
|
||||||
public static readonly IInstanceStatus Stopping = new InstanceIsStopping();
|
public static readonly IInstanceStatus Stopping = new InstanceIsStopping();
|
||||||
|
|
||||||
@ -58,7 +63,7 @@ public static class InstanceStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsRunning(this IInstanceStatus status) {
|
public static bool IsRunning(this IInstanceStatus status) {
|
||||||
return status is InstanceIsRunning;
|
return status is InstanceIsRunning or InstanceIsBackingUp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsStopping(this IInstanceStatus status) {
|
public static bool IsStopping(this IInstanceStatus status) {
|
||||||
@ -70,10 +75,10 @@ public static class InstanceStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static bool CanStop(this IInstanceStatus status) {
|
public static bool CanStop(this IInstanceStatus status) {
|
||||||
return status is InstanceIsDownloading or InstanceIsLaunching or InstanceIsRunning;
|
return status.IsRunning() || status.IsLaunching();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool CanSendCommand(this IInstanceStatus status) {
|
public static bool CanSendCommand(this IInstanceStatus status) {
|
||||||
return status is InstanceIsRunning;
|
return status.IsRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,11 @@
|
|||||||
<span class="fw-semibold text-success">Running</span>
|
<span class="fw-semibold text-success">Running</span>
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case InstanceIsBackingUp:
|
||||||
|
<div class="spinner-border" role="status"></div>
|
||||||
|
<span class="fw-semibold"> Backing Up</span>
|
||||||
|
break;
|
||||||
|
|
||||||
case InstanceIsRestarting:
|
case InstanceIsRestarting:
|
||||||
<div class="spinner-border" role="status"></div>
|
<div class="spinner-border" role="status"></div>
|
||||||
<span class="fw-semibold"> Restarting</span>
|
<span class="fw-semibold"> Restarting</span>
|
||||||
@ -41,6 +46,10 @@
|
|||||||
case InstanceIsFailed failed:
|
case InstanceIsFailed failed:
|
||||||
<span class="fw-semibold text-danger">Failed <sup title="@failed.Reason.ToSentence()">[?]</sup></span>
|
<span class="fw-semibold text-danger">Failed <sup title="@failed.Reason.ToSentence()">[?]</sup></span>
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
<span class="fw-semibold">Unknown</span>
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
</nobr>
|
</nobr>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user