General code changed and refactorment.

This commit is contained in:
Daan Selen
2025-05-28 16:57:47 +02:00
parent 7549437c99
commit d52a8fc541
5 changed files with 17 additions and 9 deletions

View File

@@ -5,4 +5,4 @@ echo "Generating..."
openssl genpkey -algorithm RSA -out ./hmac_key.pem -pkeyopt rsa_keygen_bits:4096 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 \ 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"

View File

@@ -15,6 +15,7 @@ func main() {
cfgPtr := flag.String("conf", "./conf/ghostserver.conf", "Specify a config file location yourself. Relative to the program.") cfgPtr := flag.String("conf", "./conf/ghostserver.conf", "Specify a config file location yourself. Relative to the program.")
cfg := utilities.ReadConf(*cfgPtr) cfg := utilities.ReadConf(*cfgPtr)
log.Println(utilities.InfoTag, "Loading Secrets...")
hmacKey, err := utilities.LoadHMACKey(cfg.TokenKeyFile) hmacKey, err := utilities.LoadHMACKey(cfg.TokenKeyFile)
if err != nil { if err != nil {
log.Println(utilities.ErrTag, err) log.Println(utilities.ErrTag, err)

View File

@@ -54,6 +54,7 @@ func RetrieveTokens() []string {
rows, err := db.Query(declStat.RetrieveTokens) rows, err := db.Query(declStat.RetrieveTokens)
if err != nil { if err != nil {
log.Println(utilities.ErrTag, err) log.Println(utilities.ErrTag, err)
return []string{}
} }
defer rows.Close() defer rows.Close()
@@ -74,6 +75,7 @@ func RetrieveTokenNames() []string {
rows, err := db.Query(declStat.RetrieveTokenNames) rows, err := db.Query(declStat.RetrieveTokenNames)
if err != nil { if err != nil {
log.Println(utilities.ErrTag, err) log.Println(utilities.ErrTag, err)
return []string{}
} }
defer rows.Close() defer rows.Close()
@@ -92,7 +94,7 @@ func RetrieveTokenNames() []string {
func InsertTask(name, command string, nodeids []string, date string) error { func InsertTask(name, command string, nodeids []string, date string) error {
for _, singleNodeid := range nodeids { 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 { if err != nil {
return fmt.Errorf("failed to create task: %w", err) return fmt.Errorf("failed to create task: %w", err)
} }
@@ -125,7 +127,7 @@ func RetrieveTasks() []utilities.InternalQTaskData {
rows, err := db.Query(declStat.ListAllTasks) rows, err := db.Query(declStat.ListAllTasks)
if err != nil { if err != nil {
log.Println("Query error:", err) log.Println("Query error:", err)
return nil return []utilities.InternalQTaskData{}
} }
defer rows.Close() defer rows.Close()

View File

@@ -19,10 +19,15 @@ func routine(venvName string, pyListArgs []string) {
log.Printf("Processing Task %d", index) log.Printf("Processing Task %d", index)
if isNodeOnline(relevantNodeid, d.OnlineDevices) { if isNodeOnline(relevantNodeid, d.OnlineDevices) {
log.Printf("Node online: %s", relevantNodeid) 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) database.RemoveTask(task.Name, task.Nodeid)
} else { } 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 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) log.Printf("Triggered %s, on %s", command, nodeid)
pyArgs := strings.Fields(fmt.Sprintf("--run --nodeid %s --command", nodeid)) pyArgs := strings.Fields(fmt.Sprintf("--run --nodeid %s --command", nodeid))
pyArgs = append(pyArgs, command) pyArgs = append(pyArgs, command)
wrapper.ExecTask(venvName, pyArgs) return wrapper.ExecTask(venvName, pyArgs)
} }

View File

@@ -37,12 +37,12 @@ func PyListOnline(venvName string, pyArgs []string) (utilities.PyOnlineDevices,
return data, nil return data, nil
} }
func ExecTask(venvName string, pyArgs []string) { func ExecTask(venvName string, pyArgs []string) string {
rawData, err := pyExec(venvName, pyArgs) rawData, err := pyExec(venvName, pyArgs)
if err != nil { if err != nil {
cwd, _ := os.Getwd() cwd, _ := os.Getwd()
log.Println("FAILED,", err, "CWD:", cwd) log.Println("FAILED,", err, "CWD:", cwd)
} }
log.Println(string(rawData)) return string(rawData)
} }