From b107d12a621b4ca081afbb86e1de4a4519ac8df0 Mon Sep 17 00:00:00 2001 From: henrygd Date: Sun, 26 Oct 2025 10:33:34 -0400 Subject: [PATCH] smart support over ssh + change response code for smart failure --- agent/server.go | 3 +++ internal/hub/hub.go | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/agent/server.go b/agent/server.go index 29302acd..d3a4d782 100644 --- a/agent/server.go +++ b/agent/server.go @@ -13,6 +13,7 @@ import ( "github.com/henrygd/beszel" "github.com/henrygd/beszel/internal/common" + "github.com/henrygd/beszel/internal/entities/smart" "github.com/henrygd/beszel/internal/entities/system" "github.com/blang/semver" @@ -170,6 +171,8 @@ func (a *Agent) handleSSHRequest(w io.Writer, req *common.HubRequest[cbor.RawMes response.SystemData = v case string: response.String = &v + case map[string]smart.SmartData: + response.SmartData = v default: response.Error = fmt.Sprintf("unsupported response type: %T", data) } diff --git a/internal/hub/hub.go b/internal/hub/hub.go index 400a6626..c8dc37d8 100644 --- a/internal/hub/hub.go +++ b/internal/hub/hub.go @@ -307,7 +307,7 @@ func (h *Hub) containerRequestHandler(e *core.RequestEvent, fetchFunc func(*syst data, err := fetchFunc(system, containerID) if err != nil { - return e.JSON(http.StatusInternalServerError, map[string]string{"error": err.Error()}) + return e.JSON(http.StatusNotFound, map[string]string{"error": err.Error()}) } return e.JSON(http.StatusOK, map[string]string{responseKey: data}) @@ -338,7 +338,7 @@ func (h *Hub) getSmartData(e *core.RequestEvent) error { } data, err := system.FetchSmartDataFromAgent() if err != nil { - return e.JSON(http.StatusInternalServerError, map[string]string{"error": err.Error()}) + return e.JSON(http.StatusNotFound, map[string]string{"error": err.Error()}) } e.Response.Header().Set("Cache-Control", "public, max-age=60") return e.JSON(http.StatusOK, data)