From d52a8fc541319df1255893a5e4884e40fb17e9f8 Mon Sep 17 00:00:00 2001 From: Daan Selen Date: Wed, 28 May 2025 16:57:47 +0200 Subject: [PATCH] General code changed and refactorment. --- server/cert/gencerts.sh | 2 +- server/src/main.go | 1 + server/src/modules/database/handlers.go | 6 ++++-- server/src/modules/timekeeper/routine.go | 13 +++++++++---- server/src/modules/wrapper/python.go | 4 ++-- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/server/cert/gencerts.sh b/server/cert/gencerts.sh index 55b7faa..432932c 100644 --- a/server/cert/gencerts.sh +++ b/server/cert/gencerts.sh @@ -5,4 +5,4 @@ echo "Generating..." openssl genpkey -algorithm RSA -out ./hmac_key.pem -pkeyopt rsa_keygen_bits:4096 openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -keyout api_key.pem -out api_cert.pem \ - -subj "/C=NL/ST=Noord-Holland/L=Amsterdam/O=ExOrg/OU=IT/CN=localhost" + -subj "/C=NL/ST=Noord-Holland/L=Amsterdam/O=ExOrg/OU=IT/CN=localhost" \ No newline at end of file diff --git a/server/src/main.go b/server/src/main.go index 0e5858b..227d247 100644 --- a/server/src/main.go +++ b/server/src/main.go @@ -15,6 +15,7 @@ func main() { cfgPtr := flag.String("conf", "./conf/ghostserver.conf", "Specify a config file location yourself. Relative to the program.") cfg := utilities.ReadConf(*cfgPtr) + log.Println(utilities.InfoTag, "Loading Secrets...") hmacKey, err := utilities.LoadHMACKey(cfg.TokenKeyFile) if err != nil { log.Println(utilities.ErrTag, err) diff --git a/server/src/modules/database/handlers.go b/server/src/modules/database/handlers.go index c0a48ab..0bae70e 100644 --- a/server/src/modules/database/handlers.go +++ b/server/src/modules/database/handlers.go @@ -54,6 +54,7 @@ func RetrieveTokens() []string { rows, err := db.Query(declStat.RetrieveTokens) if err != nil { log.Println(utilities.ErrTag, err) + return []string{} } defer rows.Close() @@ -74,6 +75,7 @@ func RetrieveTokenNames() []string { rows, err := db.Query(declStat.RetrieveTokenNames) if err != nil { log.Println(utilities.ErrTag, err) + return []string{} } defer rows.Close() @@ -92,7 +94,7 @@ func RetrieveTokenNames() []string { func InsertTask(name, command string, nodeids []string, date string) error { for _, singleNodeid := range nodeids { - _, err := db.Exec(declStat.CreateTask, name, command, string(singleNodeid), date) + _, err := db.Exec(declStat.CreateTask, name, command, singleNodeid, date) if err != nil { return fmt.Errorf("failed to create task: %w", err) } @@ -125,7 +127,7 @@ func RetrieveTasks() []utilities.InternalQTaskData { rows, err := db.Query(declStat.ListAllTasks) if err != nil { log.Println("Query error:", err) - return nil + return []utilities.InternalQTaskData{} } defer rows.Close() diff --git a/server/src/modules/timekeeper/routine.go b/server/src/modules/timekeeper/routine.go index e8970f5..bb42669 100644 --- a/server/src/modules/timekeeper/routine.go +++ b/server/src/modules/timekeeper/routine.go @@ -19,10 +19,15 @@ func routine(venvName string, pyListArgs []string) { log.Printf("Processing Task %d", index) if isNodeOnline(relevantNodeid, d.OnlineDevices) { log.Printf("Node online: %s", relevantNodeid) - forgeAndExec(venvName, relevantNodeid, task.Command) + result := forgeAndExec(venvName, relevantNodeid, task.Command) // Forge the Python command and execute it with the Python libraries. + log.Println(result) + + //generateResult() + + log.Println("Removing Task from database...") database.RemoveTask(task.Name, task.Nodeid) } else { - log.Printf("Node offline %s", relevantNodeid) + log.Printf("Node offline %s", relevantNodeid) // Just a debug line to tell the user that the node is offline. } } @@ -46,11 +51,11 @@ func isNodeOnline(nodeid string, onlineDevices []utilities.Device) bool { return false } -func forgeAndExec(venvName string, nodeid, command string) { +func forgeAndExec(venvName string, nodeid, command string) string { log.Printf("Triggered %s, on %s", command, nodeid) pyArgs := strings.Fields(fmt.Sprintf("--run --nodeid %s --command", nodeid)) pyArgs = append(pyArgs, command) - wrapper.ExecTask(venvName, pyArgs) + return wrapper.ExecTask(venvName, pyArgs) } diff --git a/server/src/modules/wrapper/python.go b/server/src/modules/wrapper/python.go index b3a6905..08dd97f 100644 --- a/server/src/modules/wrapper/python.go +++ b/server/src/modules/wrapper/python.go @@ -37,12 +37,12 @@ func PyListOnline(venvName string, pyArgs []string) (utilities.PyOnlineDevices, return data, nil } -func ExecTask(venvName string, pyArgs []string) { +func ExecTask(venvName string, pyArgs []string) string { rawData, err := pyExec(venvName, pyArgs) if err != nil { cwd, _ := os.Getwd() log.Println("FAILED,", err, "CWD:", cwd) } - log.Println(string(rawData)) + return string(rawData) }