Compare commits
2 Commits
v1.6.0-pre
...
v1.6.0-pre
Author | SHA1 | Date | |
---|---|---|---|
![]() |
906456782a | ||
![]() |
d6d6a5d808 |
@@ -13,9 +13,9 @@ namespace gaseous_server.Controllers
|
|||||||
{
|
{
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||||
public List<Logging.LogItem> Logs()
|
public List<Logging.LogItem> Logs(long? StartIndex, int PageNumber = 1, int PageSize = 100)
|
||||||
{
|
{
|
||||||
return Logging.GetLogs();
|
return Logging.GetLogs(StartIndex, PageNumber, PageSize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -36,7 +36,7 @@ namespace gaseous_server
|
|||||||
List<ProcessQueue.QueueItem> ActiveList = new List<ProcessQueue.QueueItem>();
|
List<ProcessQueue.QueueItem> ActiveList = new List<ProcessQueue.QueueItem>();
|
||||||
ActiveList.AddRange(ProcessQueue.QueueItems);
|
ActiveList.AddRange(ProcessQueue.QueueItems);
|
||||||
foreach (ProcessQueue.QueueItem qi in ActiveList) {
|
foreach (ProcessQueue.QueueItem qi in ActiveList) {
|
||||||
if (CheckProcessBlockList(qi) == true) {
|
if (CheckIfProcessIsBlockedByOthers(qi) == false) {
|
||||||
qi.BlockedState(false);
|
qi.BlockedState(false);
|
||||||
if (DateTime.UtcNow > qi.NextRunTime || qi.Force == true)
|
if (DateTime.UtcNow > qi.NextRunTime || qi.Force == true)
|
||||||
{
|
{
|
||||||
@@ -69,31 +69,25 @@ namespace gaseous_server
|
|||||||
_timer?.Dispose();
|
_timer?.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool CheckProcessBlockList(ProcessQueue.QueueItem queueItem)
|
private bool CheckIfProcessIsBlockedByOthers(ProcessQueue.QueueItem queueItem)
|
||||||
{
|
|
||||||
if (queueItem.Blocks.Count > 0)
|
|
||||||
{
|
{
|
||||||
foreach (ProcessQueue.QueueItem qi in ProcessQueue.QueueItems)
|
foreach (ProcessQueue.QueueItem qi in ProcessQueue.QueueItems)
|
||||||
{
|
{
|
||||||
|
if (qi.ItemState == ProcessQueue.QueueItemState.Running) {
|
||||||
|
// other service is running, check if queueItem is blocked by it
|
||||||
if (
|
if (
|
||||||
(
|
qi.Blocks.Contains(queueItem.ItemType) ||
|
||||||
queueItem.Blocks.Contains(qi.ItemType) ||
|
qi.Blocks.Contains(ProcessQueue.QueueItemType.All)
|
||||||
queueItem.Blocks.Contains(ProcessQueue.QueueItemType.All)
|
|
||||||
) &&
|
|
||||||
qi.ItemState == ProcessQueue.QueueItemState.Running
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine(queueItem.ItemType.ToString() + " is blocked by " + qi.ItemType.ToString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -7,18 +7,37 @@
|
|||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<div style="width: 960px; text-align: center;">
|
||||||
|
<button value="Load More" onclick="loadLogs(lastStartIndex, currentPage);">Load More</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function loadLogs() {
|
var lastStartIndex = 0;
|
||||||
|
var currentPage = 1;
|
||||||
|
|
||||||
|
function loadLogs(StartIndex, PageNumber) {
|
||||||
|
var apiQuery = '';
|
||||||
|
|
||||||
|
if (StartIndex && PageNumber) {
|
||||||
|
currentPage += 1;
|
||||||
|
apiQuery = '?StartIndex=' + StartIndex + '&PageNumber=' + PageNumber;
|
||||||
|
} else {
|
||||||
|
currentPage = 1;
|
||||||
|
}
|
||||||
|
|
||||||
ajaxCall(
|
ajaxCall(
|
||||||
'/api/v1/Logs',
|
'/api/v1/Logs' + apiQuery,
|
||||||
'GET',
|
'GET',
|
||||||
function (result) {
|
function (result) {
|
||||||
var newTable = document.getElementById('settings_events_table');
|
var newTable = document.getElementById('settings_events_table');
|
||||||
|
if (currentPage == 1) {
|
||||||
newTable.innerHTML = '';
|
newTable.innerHTML = '';
|
||||||
|
|
||||||
newTable.appendChild(
|
newTable.appendChild(
|
||||||
createTableRow(
|
createTableRow(
|
||||||
true,
|
true,
|
||||||
[
|
[
|
||||||
|
//'Id',
|
||||||
['Event Time', 'logs_table_cell_150px'],
|
['Event Time', 'logs_table_cell_150px'],
|
||||||
['Severity', 'logs_table_cell_150px'],
|
['Severity', 'logs_table_cell_150px'],
|
||||||
'Process',
|
'Process',
|
||||||
@@ -28,9 +47,13 @@
|
|||||||
''
|
''
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
for (var i = 0; i < result.length; i++) {
|
for (var i = 0; i < result.length; i++) {
|
||||||
|
lastStartIndex = result[i].id;
|
||||||
|
|
||||||
var newRow = [
|
var newRow = [
|
||||||
|
//result[i].id,
|
||||||
moment(result[i].eventTime).fromNow(),
|
moment(result[i].eventTime).fromNow(),
|
||||||
result[i].eventType,
|
result[i].eventType,
|
||||||
result[i].process,
|
result[i].process,
|
||||||
|
@@ -64,7 +64,7 @@
|
|||||||
|
|
||||||
var itemStateName;
|
var itemStateName;
|
||||||
var itemLastStart;
|
var itemLastStart;
|
||||||
if (result[i].IsBlocked == false) {
|
if (result[i].isBlocked == false) {
|
||||||
switch (result[i].itemState) {
|
switch (result[i].itemState) {
|
||||||
case 'NeverStarted':
|
case 'NeverStarted':
|
||||||
itemStateName = "Never started";
|
itemStateName = "Never started";
|
||||||
|
@@ -111,17 +111,30 @@ namespace gaseous_tools
|
|||||||
File.AppendAllText(Config.LogFilePath, TraceOutput);
|
File.AppendAllText(Config.LogFilePath, TraceOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
static public List<LogItem> GetLogs()
|
static public List<LogItem> GetLogs(long? StartIndex, int PageNumber = 1, int PageSize = 100)
|
||||||
{
|
{
|
||||||
Database db = new gaseous_tools.Database(Database.databaseType.MySql, Config.DatabaseConfiguration.ConnectionString);
|
Database db = new gaseous_tools.Database(Database.databaseType.MySql, Config.DatabaseConfiguration.ConnectionString);
|
||||||
string sql = "SELECT * FROM ServerLogs ORDER BY Id DESC";
|
string sql = "";
|
||||||
DataTable dataTable = db.ExecuteCMD(sql);
|
if (StartIndex == null)
|
||||||
|
{
|
||||||
|
sql = "SELECT * FROM ServerLogs ORDER BY Id DESC LIMIT @PageSize OFFSET @PageNumber;";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sql = "SELECT * FROM ServerLogs WHERE Id < @StartIndex ORDER BY Id DESC LIMIT @PageSize OFFSET @PageNumber;";
|
||||||
|
}
|
||||||
|
Dictionary<string, object> dbDict = new Dictionary<string, object>();
|
||||||
|
dbDict.Add("StartIndex", StartIndex);
|
||||||
|
dbDict.Add("PageNumber", (PageNumber - 1) * PageSize);
|
||||||
|
dbDict.Add("PageSize", PageSize);
|
||||||
|
DataTable dataTable = db.ExecuteCMD(sql, dbDict);
|
||||||
|
|
||||||
List<LogItem> logs = new List<LogItem>();
|
List<LogItem> logs = new List<LogItem>();
|
||||||
foreach (DataRow row in dataTable.Rows)
|
foreach (DataRow row in dataTable.Rows)
|
||||||
{
|
{
|
||||||
LogItem log = new LogItem
|
LogItem log = new LogItem
|
||||||
{
|
{
|
||||||
|
Id = (long)row["Id"],
|
||||||
EventTime = DateTime.Parse(((DateTime)row["EventTime"]).ToString("yyyy-MM-ddThh:mm:ss") + 'Z'),
|
EventTime = DateTime.Parse(((DateTime)row["EventTime"]).ToString("yyyy-MM-ddThh:mm:ss") + 'Z'),
|
||||||
EventType = (LogType)row["EventType"],
|
EventType = (LogType)row["EventType"],
|
||||||
Process = (string)row["Process"],
|
Process = (string)row["Process"],
|
||||||
@@ -145,6 +158,7 @@ namespace gaseous_tools
|
|||||||
|
|
||||||
public class LogItem
|
public class LogItem
|
||||||
{
|
{
|
||||||
|
public long Id { get; set; }
|
||||||
public DateTime EventTime { get; set; }
|
public DateTime EventTime { get; set; }
|
||||||
public LogType? EventType { get; set; }
|
public LogType? EventType { get; set; }
|
||||||
public string Process { get; set; } = "";
|
public string Process { get; set; } = "";
|
||||||
|
Reference in New Issue
Block a user