package server import ( "fmt" "log/slog" "net/http" "git.lastassault.de/speatzle/morffix/types" ) func handleIndex(w http.ResponseWriter, r *http.Request) { data := "Connections:\n" func() { WorkersMutex.Lock() defer WorkersMutex.Unlock() for i := range Workers { if Workers[i].Connected { var status types.WorkerStatus _, err := rpcServer.Call(r.Context(), Workers[i].Conn, "status", nil, &status) if err != nil { w.Write([]byte(err.Error())) slog.ErrorContext(r.Context(), "Error Getting Worker Status", "err", err) return } slog.InfoContext(r.Context(), "Got Worker Status", "id", i, "status", status) data = data + fmt.Sprintf("ID: %v, Name: %v, Address: %v Connected %v\n", i, Workers[i].Name, Workers[i].Address, Workers[i].Connected) data = data + fmt.Sprintf("### CPU Cores: %v, CPU Usage: %v, Memory Total: %v Memory Usage %v\n", status.CPUCount, status.CPUUsage, status.MemoryTotal, status.MemoryUsage) } else { data = data + fmt.Sprintf("ID: %v, Name: %v, Address: %v Connected %v\n", i, Workers[i].Name, Workers[i].Address, Workers[i].Connected) } } }() w.Write([]byte("Morffix\n" + data)) }