diff --git a/src/Tgstation.Server.Host/Components/InstanceManager.cs b/src/Tgstation.Server.Host/Components/InstanceManager.cs index e70317ea68..9a6ecd8b62 100644 --- a/src/Tgstation.Server.Host/Components/InstanceManager.cs +++ b/src/Tgstation.Server.Host/Components/InstanceManager.cs @@ -222,7 +222,8 @@ namespace Tgstation.Server.Host.Components { if (oldPath == null) throw new ArgumentNullException(nameof(oldPath)); - if (GetInstanceReference(instance) != null) + using var instanceReferenceCheck = GetInstanceReference(instance); + if (instanceReferenceCheck != null) throw new InvalidOperationException("Cannot move an online instance!"); var newPath = instance.Path; try diff --git a/src/Tgstation.Server.Host/Controllers/InstanceController.cs b/src/Tgstation.Server.Host/Controllers/InstanceController.cs index 19c98d6f2c..13a29097d5 100644 --- a/src/Tgstation.Server.Host/Controllers/InstanceController.cs +++ b/src/Tgstation.Server.Host/Controllers/InstanceController.cs @@ -481,7 +481,7 @@ namespace Tgstation.Server.Host.Controllers if (renamed) { - var componentInstance = instanceManager.GetInstanceReference(originalModel); + using var componentInstance = instanceManager.GetInstanceReference(originalModel); if (componentInstance != null) await componentInstance.InstanceRenamed(originalModel.Name, cancellationToken).ConfigureAwait(false); } @@ -541,7 +541,7 @@ namespace Tgstation.Server.Host.Controllers if (model.AutoUpdateInterval.HasValue && oldAutoUpdateInterval != model.AutoUpdateInterval) { - var componentInstance = instanceManager.GetInstanceReference(originalModel); + using var componentInstance = instanceManager.GetInstanceReference(originalModel); if (componentInstance != null) await componentInstance.SetAutoUpdateInterval(model.AutoUpdateInterval.Value).ConfigureAwait(false); } diff --git a/src/Tgstation.Server.Host/Controllers/InstanceRequiredController.cs b/src/Tgstation.Server.Host/Controllers/InstanceRequiredController.cs index c3d0ab996d..faba875b7d 100644 --- a/src/Tgstation.Server.Host/Controllers/InstanceRequiredController.cs +++ b/src/Tgstation.Server.Host/Controllers/InstanceRequiredController.cs @@ -49,7 +49,8 @@ namespace Tgstation.Server.Host.Controllers if (ValidateInstanceOnlineStatus(instanceManager, Logger, Instance)) await DatabaseContext.Save(cancellationToken).ConfigureAwait(false); - if (instanceManager.GetInstanceReference(Instance) == null) + using var instanceReferenceCheck = instanceManager.GetInstanceReference(Instance); + if (instanceReferenceCheck == null) return Conflict(new ErrorMessage(ErrorCode.InstanceOffline)); return null; } @@ -88,7 +89,9 @@ namespace Tgstation.Server.Host.Controllers if (metadata == null) throw new ArgumentNullException(nameof(metadata)); - var online = instanceManager.GetInstanceReference(metadata) != null; + bool online; + using (var instanceReferenceCheck = instanceManager.GetInstanceReference(metadata)) + online = instanceReferenceCheck != null; if (metadata.Online.Value == online) return false; diff --git a/tests/Tgstation.Server.Tests/InstanceManagerTest.cs b/tests/Tgstation.Server.Tests/InstanceManagerTest.cs index 8333226b8e..fbab7dec20 100644 --- a/tests/Tgstation.Server.Tests/InstanceManagerTest.cs +++ b/tests/Tgstation.Server.Tests/InstanceManagerTest.cs @@ -2,15 +2,12 @@ using System; using System.IO; using System.Linq; -using System.Reflection; using System.Threading; using System.Threading.Tasks; using Tgstation.Server.Api.Models; using Tgstation.Server.Api.Rights; using Tgstation.Server.Client; -using Tgstation.Server.Client.Components; using Tgstation.Server.Host.Controllers; -using Tgstation.Server.Tests.Instance; namespace Tgstation.Server.Tests {