feat(agent): amélioration UI étudiante - instances, statut et lien site

This commit is contained in:
root
2026-06-12 18:36:31 +00:00
parent 479a8de858
commit 7ecc2abe0a
4 changed files with 259 additions and 36 deletions
+18 -9
View File
@@ -5,8 +5,6 @@ import (
"fmt"
"log"
"net/http"
"os"
"path/filepath"
"github.com/gorilla/websocket"
)
@@ -81,17 +79,28 @@ func startUI(dataDir, nodeID, serverAddr string) {
}
func listInstances(dataDir string, conn *websocket.Conn) {
dir := filepath.Join(dataDir, "instances")
entries, err := os.ReadDir(dir)
instances, err := loadInstances(dataDir)
if err != nil {
log.Printf("loadInstances error: %v", err)
conn.WriteJSON(map[string]interface{}{"action": "instances_list", "instances": []interface{}{}})
return
}
var instances []map[string]interface{}
for _, e := range entries {
if e.IsDir() {
instances = append(instances, map[string]interface{}{"id": e.Name()})
var list []map[string]interface{}
for _, inst := range instances {
status := getInstanceStatus(dataDir, inst.ID)
if status != inst.Status {
inst.Status = status
_ = upsertInstance(dataDir, inst)
}
list = append(list, map[string]interface{}{
"id": inst.ID,
"templateName": inst.TemplateName,
"port": inst.Port,
"status": inst.Status,
"url": instanceURL(inst),
})
}
conn.WriteJSON(map[string]interface{}{"action": "instances_list", "instances": instances})
conn.WriteJSON(map[string]interface{}{"action": "instances_list", "instances": list})
}