Added mechanism for package maintainers to produce a health check error.
This commit is contained in:
parent
79cfa3a5f6
commit
7da02c236a
|
@ -21,14 +21,14 @@ namespace NzbDrone.Core.Test.UpdateTests
|
||||||
public void no_update_when_version_higher()
|
public void no_update_when_version_higher()
|
||||||
{
|
{
|
||||||
UseRealHttp();
|
UseRealHttp();
|
||||||
Subject.GetLatestUpdate("master", new Version(10, 0)).Should().BeNull();
|
Subject.GetLatestUpdate("main", new Version(10, 0)).Should().BeNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void finds_update_when_version_lower()
|
public void finds_update_when_version_lower()
|
||||||
{
|
{
|
||||||
UseRealHttp();
|
UseRealHttp();
|
||||||
Subject.GetLatestUpdate("master", new Version(3, 0)).Should().NotBeNull();
|
Subject.GetLatestUpdate("main", new Version(3, 0)).Should().NotBeNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -177,7 +177,7 @@ namespace NzbDrone.Core.Configuration
|
||||||
|
|
||||||
public bool AnalyticsEnabled => GetValueBoolean("AnalyticsEnabled", true, persist: false);
|
public bool AnalyticsEnabled => GetValueBoolean("AnalyticsEnabled", true, persist: false);
|
||||||
|
|
||||||
public string Branch => GetValue("Branch", "master").ToLowerInvariant();
|
public string Branch => GetValue("Branch", "main").ToLowerInvariant();
|
||||||
|
|
||||||
public string LogLevel => GetValue("LogLevel", "info");
|
public string LogLevel => GetValue("LogLevel", "info");
|
||||||
public string ConsoleLogLevel => GetValue("ConsoleLogLevel", string.Empty, persist: false);
|
public string ConsoleLogLevel => GetValue("ConsoleLogLevel", string.Empty, persist: false);
|
||||||
|
|
|
@ -16,6 +16,7 @@ namespace NzbDrone.Core.Configuration
|
||||||
{
|
{
|
||||||
string PackageVersion { get; }
|
string PackageVersion { get; }
|
||||||
string PackageAuthor { get; }
|
string PackageAuthor { get; }
|
||||||
|
string PackageGlobalMessage { get; }
|
||||||
string PackageBranch { get; }
|
string PackageBranch { get; }
|
||||||
UpdateMechanism PackageUpdateMechanism { get; }
|
UpdateMechanism PackageUpdateMechanism { get; }
|
||||||
string PackageUpdateMechanismMessage { get; }
|
string PackageUpdateMechanismMessage { get; }
|
||||||
|
@ -37,7 +38,7 @@ namespace NzbDrone.Core.Configuration
|
||||||
var releaseInfoPath = Path.Combine(bin, "release_info");
|
var releaseInfoPath = Path.Combine(bin, "release_info");
|
||||||
|
|
||||||
PackageUpdateMechanism = UpdateMechanism.BuiltIn;
|
PackageUpdateMechanism = UpdateMechanism.BuiltIn;
|
||||||
DefaultBranch = "master";
|
DefaultBranch = "main";
|
||||||
|
|
||||||
if (Path.GetFileName(bin) == "bin" && diskProvider.FileExists(packageInfoPath))
|
if (Path.GetFileName(bin) == "bin" && diskProvider.FileExists(packageInfoPath))
|
||||||
{
|
{
|
||||||
|
@ -45,6 +46,7 @@ namespace NzbDrone.Core.Configuration
|
||||||
|
|
||||||
PackageVersion = ReadValue(data, "PackageVersion");
|
PackageVersion = ReadValue(data, "PackageVersion");
|
||||||
PackageAuthor = ReadValue(data, "PackageAuthor");
|
PackageAuthor = ReadValue(data, "PackageAuthor");
|
||||||
|
PackageGlobalMessage = ReadValue(data, "PackageGlobalMessage");
|
||||||
PackageUpdateMechanism = ReadEnumValue(data, "UpdateMethod", UpdateMechanism.BuiltIn);
|
PackageUpdateMechanism = ReadEnumValue(data, "UpdateMethod", UpdateMechanism.BuiltIn);
|
||||||
PackageUpdateMechanismMessage = ReadValue(data, "UpdateMethodMessage");
|
PackageUpdateMechanismMessage = ReadValue(data, "UpdateMethodMessage");
|
||||||
PackageBranch = ReadValue(data, "Branch");
|
PackageBranch = ReadValue(data, "Branch");
|
||||||
|
@ -98,6 +100,7 @@ namespace NzbDrone.Core.Configuration
|
||||||
|
|
||||||
public string PackageVersion { get; private set; }
|
public string PackageVersion { get; private set; }
|
||||||
public string PackageAuthor { get; private set; }
|
public string PackageAuthor { get; private set; }
|
||||||
|
public string PackageGlobalMessage { get; private set; }
|
||||||
public string PackageBranch { get; private set; }
|
public string PackageBranch { get; private set; }
|
||||||
public UpdateMechanism PackageUpdateMechanism { get; private set; }
|
public UpdateMechanism PackageUpdateMechanism { get; private set; }
|
||||||
public string PackageUpdateMechanismMessage { get; private set; }
|
public string PackageUpdateMechanismMessage { get; private set; }
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using NLog;
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
|
using NzbDrone.Core.Configuration;
|
||||||
|
using NzbDrone.Core.Download;
|
||||||
|
using NzbDrone.Core.ThingiProvider.Events;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
|
{
|
||||||
|
public class PackageGlobalMessageCheck : HealthCheckBase
|
||||||
|
{
|
||||||
|
private readonly IDeploymentInfoProvider _deploymentInfoProvider;
|
||||||
|
|
||||||
|
|
||||||
|
public PackageGlobalMessageCheck(IDeploymentInfoProvider deploymentInfoProvider)
|
||||||
|
{
|
||||||
|
_deploymentInfoProvider = deploymentInfoProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override HealthCheck Check()
|
||||||
|
{
|
||||||
|
if (_deploymentInfoProvider.PackageGlobalMessage.IsNullOrWhiteSpace())
|
||||||
|
{
|
||||||
|
return new HealthCheck(GetType());
|
||||||
|
}
|
||||||
|
|
||||||
|
var message = _deploymentInfoProvider.PackageGlobalMessage;
|
||||||
|
HealthCheckResult result = HealthCheckResult.Notice;
|
||||||
|
|
||||||
|
if (message.StartsWith("Error:"))
|
||||||
|
{
|
||||||
|
message = message.Substring(6);
|
||||||
|
result = HealthCheckResult.Error;
|
||||||
|
}
|
||||||
|
else if (message.StartsWith("Warn:"))
|
||||||
|
{
|
||||||
|
message = message.Substring(5);
|
||||||
|
result = HealthCheckResult.Warning;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new HealthCheck(GetType(), result, message, "#package_maintainer_message");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -143,10 +143,18 @@ namespace NzbDrone.Core.Update
|
||||||
_logger.Info("Preparing client");
|
_logger.Info("Preparing client");
|
||||||
_diskTransferService.TransferFolder(_appFolderInfo.GetUpdateClientFolder(), updateSandboxFolder, TransferMode.Move);
|
_diskTransferService.TransferFolder(_appFolderInfo.GetUpdateClientFolder(), updateSandboxFolder, TransferMode.Move);
|
||||||
|
|
||||||
_logger.Info("Starting update client {0}", _appFolderInfo.GetUpdateClientExePath());
|
var updateClientExePath = _appFolderInfo.GetUpdateClientExePath();
|
||||||
|
|
||||||
|
if (!_diskProvider.FileExists(updateClientExePath))
|
||||||
|
{
|
||||||
|
_logger.Warn("Update client {0} does not exist, aborting update.", updateClientExePath);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_logger.Info("Starting update client {0}", updateClientExePath);
|
||||||
_logger.ProgressInfo("Sonarr will restart shortly.");
|
_logger.ProgressInfo("Sonarr will restart shortly.");
|
||||||
|
|
||||||
_processProvider.Start(_appFolderInfo.GetUpdateClientExePath(), GetUpdaterArgs(updateSandboxFolder));
|
_processProvider.Start(updateClientExePath, GetUpdaterArgs(updateSandboxFolder));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue