From 30c57a679a20da0e12f7cbabb316ff0d673d7a55 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 27 Jun 2023 18:50:31 +0200 Subject: [PATCH] added logging --- groupTasks/groups/production1/test1.py | 1 - grouptasks_lang_log_messages.json | 36 +++++++ modules/cache/categorygroup.go | 6 +- modules/grouptasks/grouptasks.go | 53 ++++++++++- modules/logger/logger.go | 11 --- socketclients/socketclients.go | 125 +++++-------------------- socketserver/hub.go | 69 +++++++------- 7 files changed, 148 insertions(+), 153 deletions(-) diff --git a/groupTasks/groups/production1/test1.py b/groupTasks/groups/production1/test1.py index 8794d40..e264820 100644 --- a/groupTasks/groups/production1/test1.py +++ b/groupTasks/groups/production1/test1.py @@ -21,7 +21,6 @@ fp = open("customers.txt", "w") fp.write("first line hey customer") fp.close() - # Bildgröße und Pixelgröße festlegen width = 100 height = 100 diff --git a/grouptasks_lang_log_messages.json b/grouptasks_lang_log_messages.json index cd19210..99a6d9c 100644 --- a/grouptasks_lang_log_messages.json +++ b/grouptasks_lang_log_messages.json @@ -16,5 +16,41 @@ "message": "%userId% has reloaded group tasks config of category %category%" } ] + }, + { + "id": 2, + "languages": [ + { + "lang": "en", + "message": "%groupTaskId% status set to %status%" + } + ] + }, + { + "id": 3, + "languages": [ + { + "lang": "en", + "message": "Step %taskStepId% of %groupTaskId% was continued by %userId%" + } + ] + }, + { + "id": 4, + "languages": [ + { + "lang": "en", + "message": "Step %taskStepId% of %groupTaskId% has failed and was started by %userId% to try again" + } + ] + }, + { + "id": 5, + "languages": [ + { + "lang": "en", + "message": "Step %taskStepId% of %groupTaskId% status set to %status%" + } + ] } ] \ No newline at end of file diff --git a/modules/cache/categorygroup.go b/modules/cache/categorygroup.go index d855874..080cfc9 100644 --- a/modules/cache/categorygroup.go +++ b/modules/cache/categorygroup.go @@ -41,14 +41,14 @@ func RemoveAllCategoryGroupsByCategory(category string) { } func GetCategoryGroupsSorted() []structs.CategoryGroup { - categoryGroups := GetCategoryGroups() + cG := GetCategoryGroups() cgMu.Lock() defer cgMu.Unlock() - sort.SliceStable(categoryGroups, func(i, j int) bool { return categoryGroups[i].Category < categoryGroups[j].Category }) + sort.SliceStable(cG, func(i, j int) bool { return cG[i].Category < cG[j].Category }) - return categoryGroups + return cG } func GetCategoryGroups() []structs.CategoryGroup { diff --git a/modules/grouptasks/grouptasks.go b/modules/grouptasks/grouptasks.go index 52291d7..a6b1bfe 100644 --- a/modules/grouptasks/grouptasks.go +++ b/modules/grouptasks/grouptasks.go @@ -7,6 +7,7 @@ import ( "io/ioutil" "janex/admin-dashboard-backend/modules/cache" "janex/admin-dashboard-backend/modules/database" + "janex/admin-dashboard-backend/modules/logger" "janex/admin-dashboard-backend/modules/structs" "janex/admin-dashboard-backend/modules/systempermissions" "janex/admin-dashboard-backend/modules/utils" @@ -177,6 +178,16 @@ func RunGroupTask(args RunGroupTaskArgs) { groupTaskStep.Status = utils.GroupTasksStatusInputRequired updateGroupTaskSteps(groupTaskStep) + + logger.AddGroupTasksLog(structs.LogMessage{ + Id: 5, + Type: utils.LogTypeInfo, + Messages: []structs.LogData{ + {Type: "taskStepId", Value: groupTaskStep.Id}, + {Type: "groupTaskId", Value: groupTaskStep.GroupTasksId}, + {Type: "status", Value: "input required"}, + }, + }) return } else if len(args.TaskInputs) > 0 { var taskParameterInputs []InputParameters @@ -247,8 +258,28 @@ func RunGroupTask(args RunGroupTaskArgs) { log.Error().Msgf("error exec command %s", err.Error()) groupTaskStep.Status = utils.GroupTasksStatusFailed + + logger.AddGroupTasksLog(structs.LogMessage{ + Id: 5, + Type: utils.LogTypeInfo, + Messages: []structs.LogData{ + {Type: "taskStepId", Value: groupTaskStep.Id}, + {Type: "groupTaskId", Value: groupTaskStep.GroupTasksId}, + {Type: "status", Value: "failed"}, + }, + }) } else { groupTaskStep.Status = utils.GroupTasksStatusFinished + + logger.AddGroupTasksLog(structs.LogMessage{ + Id: 5, + Type: utils.LogTypeInfo, + Messages: []structs.LogData{ + {Type: "taskStepId", Value: groupTaskStep.Id}, + {Type: "groupTaskId", Value: groupTaskStep.GroupTasksId}, + {Type: "status", Value: "finished"}, + }, + }) } fmt.Println(cmdLog) @@ -343,6 +374,15 @@ func RunGroupTask(args RunGroupTaskArgs) { updateGroupTask(groupTaskStep.GroupTasksId, structs.GroupTasks{ Status: utils.GroupTasksStatusFailed, }) + + logger.AddGroupTasksLog(structs.LogMessage{ + Id: 2, + Type: utils.LogTypeInfo, + Messages: []structs.LogData{ + {Type: "groupTaskId", Value: groupTaskStep.GroupTasksId}, + {Type: "status", Value: "failed"}, + }, + }) } else { args.StartType = RunGroupTaskStartTypeNormal args.Step = args.Step + 1 @@ -363,11 +403,18 @@ func RunGroupTask(args RunGroupTaskArgs) { EndedAt: time.Now(), }) - err = os.RemoveAll(runningTasksPath + groupTaskStep.GroupTasksId + "/") - - if err != nil { + if err = os.RemoveAll(runningTasksPath + groupTaskStep.GroupTasksId + "/"); err != nil { log.Error().Msgf("Failed to delete running task folder %s", err.Error()) } + + logger.AddGroupTasksLog(structs.LogMessage{ + Id: 2, + Type: utils.LogTypeInfo, + Messages: []structs.LogData{ + {Type: "groupTaskId", Value: groupTaskStep.GroupTasksId}, + {Type: "status", Value: "finished"}, + }, + }) } } diff --git a/modules/logger/logger.go b/modules/logger/logger.go index c9c6fe3..94a9d47 100644 --- a/modules/logger/logger.go +++ b/modules/logger/logger.go @@ -215,14 +215,3 @@ func readLanguageLogMessages(systemLogs bool) { grouptasksLanguageLogMessages = langLogMessages } } - -func FormatMapInterface(data map[string]interface{}) string { - jsonData, err := json.Marshal(data) - - if err != nil { - log.Error().Msgf("Failed to marshal map interface: %s", err.Error()) - return "" - } - - return string(jsonData) -} diff --git a/socketclients/socketclients.go b/socketclients/socketclients.go index 94fb6de..4025c0b 100644 --- a/socketclients/socketclients.go +++ b/socketclients/socketclients.go @@ -334,10 +334,7 @@ func UpdateUserProfile(conn *websocket.Conn, changes map[string]interface{}) { Id: 12, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: userId, - }, + {Type: "userId", Value: userId}, }, }) return @@ -369,14 +366,8 @@ func UpdateUserProfile(conn *websocket.Conn, changes map[string]interface{}) { Id: 13, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: userId, - }, - { - Type: "changes", - Value: logger.FormatMapInterface(updates), - }, + {Type: "userId", Value: userId}, + {Type: "changes", Value: utils.MarshalJson(updates)}, }, }) } @@ -548,18 +539,9 @@ func AdminAreaUpdateRole(conn *websocket.Conn, body map[string]interface{}) { Id: 2, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: conn.Locals("userId").(string), - }, - { - Type: "roleId", - Value: roleId, - }, - { - Type: "changes", - Value: logger.FormatMapInterface(updates), - }, + {Type: "userId", Value: conn.Locals("userId").(string)}, + {Type: "roleId", Value: roleId}, + {Type: "changes", Value: utils.MarshalJson(updates)}, }, }) } @@ -623,18 +605,9 @@ func AdminAreaMoveRoleToSortingOrder(conn *websocket.Conn, body map[string]inter Id: 3, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: conn.Locals("userId").(string), - }, - { - Type: "roleId", - Value: role.Id, - }, - { - Type: "sortingOrder", - Value: strconv.Itoa(newSortingOrder), - }, + {Type: "userId", Value: conn.Locals("userId").(string)}, + {Type: "roleId", Value: role.Id}, + {Type: "sortingOrder", Value: strconv.Itoa(newSortingOrder)}, }, }) } @@ -663,14 +636,8 @@ func AdminAreaDeleteRole(conn *websocket.Conn, body map[string]interface{}) { Id: 4, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: conn.Locals("userId").(string), - }, - { - Type: "roleId", - Value: role.Id, - }, + {Type: "userId", Value: conn.Locals("userId").(string)}, + {Type: "roleId", Value: role.Id}, }, }) } @@ -708,18 +675,9 @@ func UpdateUserRole(conn *websocket.Conn, userId string, roleId string) { Id: 5, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: conn.Locals("userId").(string), - }, - { - Type: "roleId", - Value: roleId, - }, - { - Type: "targetUserId", - Value: userId, - }, + {Type: "userId", Value: conn.Locals("userId").(string)}, + {Type: "roleId", Value: roleId}, + {Type: "targetUserId", Value: userId}, }, }) } @@ -837,18 +795,9 @@ func AllUsersCreateNewUser(conn *websocket.Conn, body map[string]interface{}) { Id: 6, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: conn.Locals("userId").(string), - }, - { - Type: "targetUserId", - Value: newUser.Id, - }, - { - Type: "roleId", - Value: roleId, - }, + {Type: "userId", Value: conn.Locals("userId").(string)}, + {Type: "targetUserId", Value: newUser.Id}, + {Type: "roleId", Value: roleId}, }, }) } @@ -892,14 +841,8 @@ func AllUsersDeleteUser(conn *websocket.Conn, userId string) { Id: 7, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: conn.Locals("userId").(string), - }, - { - Type: "targetUserId", - Value: userId, - }, + {Type: "userId", Value: conn.Locals("userId").(string)}, + {Type: "targetUserId", Value: userId}, }, }) } @@ -928,18 +871,9 @@ func AllUsersUserDeactivation(conn *websocket.Conn, userId string, deactivate bo Id: 9, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: conn.Locals("userId").(string), - }, - { - Type: "targetUserId", - Value: userId, - }, - { - Type: "deactivated", - Value: strconv.FormatBool(deactivate), - }, + {Type: "userId", Value: conn.Locals("userId").(string)}, + {Type: "targetUserId", Value: userId}, + {Type: "deactivated", Value: strconv.FormatBool(deactivate)}, }, }) } @@ -963,14 +897,8 @@ func ScannersUpdateScannerUsedByUserId(userId string, scannerId string) { Id: 10, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "scannerId", - Value: scannerId, - }, - { - Type: "userId", - Value: userId, - }, + {Type: "scannerId", Value: scannerId}, + {Type: "userId", Value: userId}, }, }) } else { @@ -978,10 +906,7 @@ func ScannersUpdateScannerUsedByUserId(userId string, scannerId string) { Id: 11, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "scannerId", - Value: scannerId, - }, + {Type: "scannerId", Value: scannerId}, }, }) } diff --git a/socketserver/hub.go b/socketserver/hub.go index 27f79aa..82d4b11 100644 --- a/socketserver/hub.go +++ b/socketserver/hub.go @@ -155,24 +155,14 @@ func RunHub() { Id: 0, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: data.Conn.Locals("userId").(string), - }, - { - Type: "groupTaskId", - Value: groupTaskId, - }, - { - Type: "groupTaskName", - Value: groupTasks.GroupName, - }, + {Type: "userId", Value: data.Conn.Locals("userId").(string)}, + {Type: "groupTaskId", Value: groupTaskId}, + {Type: "groupTaskName", Value: groupTasks.GroupName}, }, }) - break case utils.ReceivedCmdTaskFailedTryAgainRunTaskStep: - go grouptasks.RunGroupTask(grouptasks.RunGroupTaskArgs{ + groupTaskArgs := grouptasks.RunGroupTaskArgs{ CreatorUserId: data.Conn.Locals("userId").(string), StartType: grouptasks.RunGroupTaskStartTypeTryAgain, GroupTaskId: receivedMessage.Body["groupTaskId"].(string), @@ -180,10 +170,22 @@ func RunHub() { GroupId: receivedMessage.Body["groupId"].(string), Step: uint8(receivedMessage.Body["step"].(float64)), TaskStepId: receivedMessage.Body["taskStepId"].(string), + } + + go grouptasks.RunGroupTask(groupTaskArgs) + + logger.AddGroupTasksLog(structs.LogMessage{ + Id: 4, + Type: utils.LogTypeInfo, + Messages: []structs.LogData{ + {Type: "taskStepId", Value: groupTaskArgs.TaskStepId}, + {Type: "groupTaskId", Value: groupTaskArgs.GroupTaskId}, + {Type: "userId", Value: groupTaskArgs.CreatorUserId}, + }, }) break case utils.ReceivedCmdTaskContinueTaskStep: - go grouptasks.RunGroupTask(grouptasks.RunGroupTaskArgs{ + groupTaskArgs := grouptasks.RunGroupTaskArgs{ CreatorUserId: data.Conn.Locals("userId").(string), StartType: grouptasks.RunGroupTaskStartTypeTryAgain, GroupTaskId: receivedMessage.Body["groupTaskId"].(string), @@ -192,6 +194,18 @@ func RunHub() { Step: uint8(receivedMessage.Body["step"].(float64)), TaskStepId: receivedMessage.Body["taskStepId"].(string), TaskInputs: utils.MarshalJson(receivedMessage.Body["taskInputs"]), + } + + go grouptasks.RunGroupTask(groupTaskArgs) + + logger.AddGroupTasksLog(structs.LogMessage{ + Id: 3, + Type: utils.LogTypeInfo, + Messages: []structs.LogData{ + {Type: "taskStepId", Value: groupTaskArgs.TaskStepId}, + {Type: "groupTaskId", Value: groupTaskArgs.GroupTaskId}, + {Type: "userId", Value: groupTaskArgs.CreatorUserId}, + }, }) break case utils.ReceivedCmdReloadGroupTasks: @@ -213,14 +227,8 @@ func RunHub() { Id: 1, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: data.Conn.Locals("userId").(string), - }, - { - Type: "category", - Value: category, - }, + {Type: "userId", Value: data.Conn.Locals("userId").(string)}, + {Type: "category", Value: category}, }, }) break @@ -273,14 +281,8 @@ func RunHub() { Id: 1, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: data.Conn.Locals("userId").(string), - }, - { - Type: "roleId", - Value: role.Id, - }, + {Type: "userId", Value: data.Conn.Locals("userId").(string)}, + {Type: "roleId", Value: role.Id}, }, }) break @@ -380,10 +382,7 @@ func RunHub() { Id: 18, Type: utils.LogTypeInfo, Messages: []structs.LogData{ - { - Type: "userId", - Value: userId, - }, + {Type: "userId", Value: userId}, }, }) }