diff --git a/.vscode/launch.json b/.vscode/launch.json
index 69b973c3..9efe9077 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -51,7 +51,7 @@
"AYANOVA_USE_URLS": "http://*:7575;",
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
- "AYANOVA_SERVER_TEST_MODE":"true",
+ "AYANOVA_SERVER_TEST_MODE":"false",
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL":"small",
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET":"-7",
"AYANOVA_BACKUP_PG_DUMP_PATH":"C:\\data\\code\\PostgreSQLPortable_12.0\\App\\PgSQL\\bin\\"
diff --git a/server/AyaNova/ControllerHelpers/ApiServerState.cs b/server/AyaNova/ControllerHelpers/ApiServerState.cs
index cc71122c..baf90612 100644
--- a/server/AyaNova/ControllerHelpers/ApiServerState.cs
+++ b/server/AyaNova/ControllerHelpers/ApiServerState.cs
@@ -101,7 +101,7 @@ namespace AyaNova.Api.ControllerHelpers
}
else
{
- return _reason;
+ return $"\"{_reason}\"";
// if (_currentState == ServerState.Closed)
// return $"{ AyaNova.Biz.TranslationBiz.GetDefaultTranslationAsync("ErrorAPI2000").Result}\r\n{_reason}";
// else //opsonly
diff --git a/server/AyaNova/Controllers/BackupController.cs b/server/AyaNova/Controllers/BackupController.cs
index 657b6e2b..53f51f96 100644
--- a/server/AyaNova/Controllers/BackupController.cs
+++ b/server/AyaNova/Controllers/BackupController.cs
@@ -57,7 +57,7 @@ namespace AyaNova.Api.Controllers
/// Job Id
[HttpPost("backup-now")]
[Authorize]
- public async Task PostServerState()
+ public async Task PostBackupNow()
{
if (serverState.IsClosed)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
diff --git a/server/AyaNova/biz/JobsBiz.cs b/server/AyaNova/biz/JobsBiz.cs
index 6be91b27..dd75984e 100644
--- a/server/AyaNova/biz/JobsBiz.cs
+++ b/server/AyaNova/biz/JobsBiz.cs
@@ -66,6 +66,8 @@ namespace AyaNova.Biz
{
using (AyContext ct = ServiceProviderProvider.DBContext)
{
+ log.LogDebug($"Adding new job:{newJob.ToString()}");
+ await LogJobAsync(newJob.GId, $"Adding new job \"{newJob.Name}\" to queue");
await ct.OpsJob.AddAsync(newJob);
await ct.SaveChangesAsync();
}
@@ -83,6 +85,7 @@ namespace AyaNova.Biz
{
try
{
+ log.LogDebug($"RemoveJobAndLogs for job id:{jobIdToBeDeleted}");
//delete logs
await ct.Database.ExecuteSqlInterpolatedAsync($"delete from aopsjoblog where jobid = {jobIdToBeDeleted}");
//delete the job
@@ -169,6 +172,7 @@ namespace AyaNova.Biz
ActivelyProcessing = true;
try
{
+ log.LogDebug("Processing critical internal jobs");
//### Critical internal jobs, these run even if there is a license related serverlock
//LICENSE FETCH
await CoreJobLicense.DoWorkAsync();
@@ -193,6 +197,7 @@ namespace AyaNova.Biz
// return;
// }
+ log.LogDebug("Processing semi-critical internal jobs");
//BACKUP
await CoreJobBackup.DoWorkAsync();
@@ -204,8 +209,9 @@ namespace AyaNova.Biz
//JOB SWEEPER / AND USER COUNT CHECK
await CoreJobSweeper.DoWorkAsync();
- //### API Open only jobs
- if (!serverState.IsOpen) return;
+
+
+ log.LogDebug("Processing exclusive dynamic jobs");
//BIZOBJECT DYNAMIC JOBS
//get a list of exclusive jobs that are due to happen
@@ -226,10 +232,17 @@ namespace AyaNova.Biz
}
}
+ //### API Open only jobs
+ if (!serverState.IsOpen)
+ {
+ log.LogDebug("Server state is NOT open, skipping processing non-exclusive dynamic jobs");
+ return;
+ }
///////////////////////////////////////
//NON-EXCLUSIVE JOBS
//
+ log.LogDebug("Processing non-exclusive dynamic jobs");
//These fire and forget but use a technique to bubble up exceptions anyway
List sharedJobs = await GetReadyJobsNotExlusiveOnlyAsync();
diff --git a/server/AyaNova/models/OpsJob.cs b/server/AyaNova/models/OpsJob.cs
index ace1f11e..638f46af 100644
--- a/server/AyaNova/models/OpsJob.cs
+++ b/server/AyaNova/models/OpsJob.cs
@@ -1,6 +1,7 @@
using System;
using AyaNova.Biz;
using System.ComponentModel.DataAnnotations;
+using Newtonsoft.Json;
namespace AyaNova.Models
{
@@ -55,6 +56,12 @@ namespace AyaNova.Models
}
+ public override string ToString()
+ {
+ return JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.None);
+ }
+
+
}
}