New: /ping endpoint for verifying that Sonarr is running and able to access it's DB
Closes #4766
This commit is contained in:
parent
d51cd4bbe7
commit
75fc550a3f
|
@ -166,6 +166,11 @@ namespace Sonarr.Http.Authentication
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (context.Request.IsPingRequest())
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (ValidUser(context))
|
if (ValidUser(context))
|
||||||
{
|
{
|
||||||
|
|
|
@ -18,6 +18,11 @@ namespace Sonarr.Http.Extensions
|
||||||
return request.Path.StartsWith("/feed/", StringComparison.InvariantCultureIgnoreCase);
|
return request.Path.StartsWith("/feed/", StringComparison.InvariantCultureIgnoreCase);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsPingRequest(this Request request)
|
||||||
|
{
|
||||||
|
return request.Path.StartsWith("/ping", StringComparison.InvariantCultureIgnoreCase);
|
||||||
|
}
|
||||||
|
|
||||||
public static bool IsSignalRRequest(this Request request)
|
public static bool IsSignalRRequest(this Request request)
|
||||||
{
|
{
|
||||||
return request.Path.StartsWith("/signalr/", StringComparison.InvariantCultureIgnoreCase);
|
return request.Path.StartsWith("/signalr/", StringComparison.InvariantCultureIgnoreCase);
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
using System;
|
||||||
|
using Nancy;
|
||||||
|
using NzbDrone.Core.Configuration;
|
||||||
|
using NzbDrone.Http.Ping;
|
||||||
|
using Sonarr.Http.Extensions;
|
||||||
|
|
||||||
|
namespace NzbDrone.Http
|
||||||
|
{
|
||||||
|
public class PingModule : NancyModule
|
||||||
|
{
|
||||||
|
private readonly IConfigRepository _configRepository;
|
||||||
|
|
||||||
|
public PingModule(IConfigRepository configRepository)
|
||||||
|
{
|
||||||
|
_configRepository = configRepository;
|
||||||
|
|
||||||
|
Get("/ping", x => GetStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Response GetStatus()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_configRepository.All();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return new PingResource
|
||||||
|
{
|
||||||
|
Status = "Error",
|
||||||
|
Message = e.Message
|
||||||
|
}.AsResponse(Context, HttpStatusCode.InternalServerError);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new PingResource
|
||||||
|
{
|
||||||
|
Status = "OK"
|
||||||
|
}.AsResponse(Context, HttpStatusCode.OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
namespace NzbDrone.Http.Ping
|
||||||
|
{
|
||||||
|
public class PingResource
|
||||||
|
{
|
||||||
|
public string Status { get; set; }
|
||||||
|
public string Message { get; set; }
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue