diff --git a/server/AyaNova/Controllers/JobOperationsController.cs b/server/AyaNova/Controllers/JobOperationsController.cs
index 3045765e..5ce3f3cd 100644
--- a/server/AyaNova/Controllers/JobOperationsController.cs
+++ b/server/AyaNova/Controllers/JobOperationsController.cs
@@ -80,11 +80,11 @@ namespace AyaNova.Api.Controllers
/// Get Operations log for a job
///
///
- /// A tag
+ /// A single job's log
[HttpGet("logs/{gid}")]
public async Task GetLogs([FromRoute] Guid gid)
{
- if (serverState.IsClosed)
+ if (serverState.IsClosed)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.ServerJob))
@@ -105,6 +105,34 @@ namespace AyaNova.Api.Controllers
}
+ ///
+ /// Get Operations log for all jobs
+ ///
+
+ /// Log for all jobs in system
+ [HttpGet("logs/all-jobs")]
+ public async Task GetAllLogs()
+ {
+ if (serverState.IsClosed)
+ return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
+
+ if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.ServerJob))
+ {
+ return StatusCode(403, new ApiNotAuthorizedResponse());
+ }
+
+ if (!ModelState.IsValid)
+ {
+ return BadRequest(new ApiErrorResponse(ModelState));
+ }
+
+ //Instantiate the business object handler
+ JobOperationsBiz biz = new JobOperationsBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
+
+ List l = await biz.GetAllJobsLogsListAsync();
+ return Ok(ApiOkResponse.Response(l));
+ }
+
diff --git a/server/AyaNova/biz/JobOperationsBiz.cs b/server/AyaNova/biz/JobOperationsBiz.cs
index 2c52a4c0..d97da3ba 100644
--- a/server/AyaNova/biz/JobOperationsBiz.cs
+++ b/server/AyaNova/biz/JobOperationsBiz.cs
@@ -86,6 +86,27 @@ namespace AyaNova.Biz
return ret;
}
+ //Get list of logs for job
+ internal async Task> GetAllJobsLogsListAsync()
+ {
+ List ret = new List();
+
+ var l = await ct.OpsJobLog
+ .OrderByDescending(z => z.Created)
+ .ToListAsync();
+
+ foreach (OpsJobLog i in l)
+ {
+
+ JobOperationsLogInfoItem o = new JobOperationsLogInfoItem();
+ o.Created = i.Created;
+ o.StatusText = i.StatusText;
+ ret.Add(o);
+ }
+
+ return ret;
+ }
+
#endregion controller routes
diff --git a/server/AyaNova/biz/JobsBiz.cs b/server/AyaNova/biz/JobsBiz.cs
index 9212790e..030a676c 100644
--- a/server/AyaNova/biz/JobsBiz.cs
+++ b/server/AyaNova/biz/JobsBiz.cs
@@ -401,7 +401,7 @@ namespace AyaNova.Biz
var JobDescription = $"{job.Name} {job.JobType.ToString()}";
if (job.SubType != JobSubType.NotSet)
JobDescription += $":{job.SubType}";
-
+ await LogJobAsync(job.GId, $"Process job \"{JobDescription}\"", ct);
log.LogDebug($"ProcessJobAsync -> Processing job {JobDescription}");
IJobObject o = null;
diff --git a/server/AyaNova/models/dto/JobOperationsLogInfoItem.cs b/server/AyaNova/models/dto/JobOperationsLogInfoItem.cs
index 8bf3dee5..5bf3ad85 100644
--- a/server/AyaNova/models/dto/JobOperationsLogInfoItem.cs
+++ b/server/AyaNova/models/dto/JobOperationsLogInfoItem.cs
@@ -1,4 +1,3 @@
-using AyaNova.Biz;
using System;
namespace AyaNova.Models