Browse Source

Better error handling.

pull/883/head
Sebastian 4 years ago
parent
commit
60cb9e3c87
  1. 6
      backend/src/Squidex.Infrastructure/Dump/Dumper.cs
  2. 16
      backend/src/Squidex/Areas/Api/Controllers/Diagnostics/DiagnosticsController.cs

6
backend/src/Squidex.Infrastructure/Dump/Dumper.cs

@ -124,11 +124,9 @@ namespace Squidex.Infrastructure.Dump
await process.WaitForExitAsync(ctl.Token); await process.WaitForExitAsync(ctl.Token);
var isSucceess = process.ExitCode == 0; if (process.ExitCode != 0)
if (!isSucceess)
{ {
return false; throw new InvalidOperationException($"Failed to execute tool. Got exit code: {process.ExitCode}.");
} }
await using (var fs = new FileStream(writtenFile, FileMode.Open)) await using (var fs = new FileStream(writtenFile, FileMode.Open))

16
backend/src/Squidex/Areas/Api/Controllers/Diagnostics/DiagnosticsController.cs

@ -32,13 +32,19 @@ namespace Squidex.Areas.Api.Controllers.Diagnostics
/// </summary> /// </summary>
/// <returns> /// <returns>
/// 204 => Dump created successful. /// 204 => Dump created successful.
/// 501 => Not configured.
/// </returns> /// </returns>
[HttpGet] [HttpGet]
[Route("diagnostics/dump")] [Route("diagnostics/dump")]
[ApiPermissionOrAnonymous(Permissions.Admin)] [ApiPermissionOrAnonymous(Permissions.Admin)]
public async Task<IActionResult> GetDump() public async Task<IActionResult> GetDump()
{ {
await dumper.CreateDumpAsync(HttpContext.RequestAborted); var success = await dumper.CreateDumpAsync(HttpContext.RequestAborted);
if (!success)
{
return StatusCode(501);
}
return NoContent(); return NoContent();
} }
@ -48,13 +54,19 @@ namespace Squidex.Areas.Api.Controllers.Diagnostics
/// </summary> /// </summary>
/// <returns> /// <returns>
/// 204 => Dump created successful. /// 204 => Dump created successful.
/// 501 => Not configured.
/// </returns> /// </returns>
[HttpGet] [HttpGet]
[Route("diagnostics/gc-dump")] [Route("diagnostics/gc-dump")]
[ApiPermissionOrAnonymous(Permissions.Admin)] [ApiPermissionOrAnonymous(Permissions.Admin)]
public async Task<IActionResult> GetGCDump() public async Task<IActionResult> GetGCDump()
{ {
await dumper.CreateGCDumpAsync(HttpContext.RequestAborted); var success = await dumper.CreateGCDumpAsync(HttpContext.RequestAborted);
if (!success)
{
return StatusCode(501);
}
return NoContent(); return NoContent();
} }

Loading…
Cancel
Save