mirror of https://github.com/portainer/portainer
fix(system): optimize the memory usage when counting nodes BE-11575 (#342)
parent
4971f5510c
commit
3ca5ab180f
|
@ -3,6 +3,7 @@ package system
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
portainer "github.com/portainer/portainer/api"
|
||||||
statusutil "github.com/portainer/portainer/api/internal/nodes"
|
statusutil "github.com/portainer/portainer/api/internal/nodes"
|
||||||
"github.com/portainer/portainer/api/internal/snapshot"
|
"github.com/portainer/portainer/api/internal/snapshot"
|
||||||
httperror "github.com/portainer/portainer/pkg/libhttp/error"
|
httperror "github.com/portainer/portainer/pkg/libhttp/error"
|
||||||
|
@ -31,14 +32,15 @@ func (handler *Handler) systemNodesCount(w http.ResponseWriter, r *http.Request)
|
||||||
return httperror.InternalServerError("Failed to get environment list", err)
|
return httperror.InternalServerError("Failed to get environment list", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := range endpoints {
|
var nodes int
|
||||||
err = snapshot.FillSnapshotData(handler.dataStore, &endpoints[i])
|
|
||||||
if err != nil {
|
for _, endpoint := range endpoints {
|
||||||
|
if err := snapshot.FillSnapshotData(handler.dataStore, &endpoint); err != nil {
|
||||||
return httperror.InternalServerError("Unable to add snapshot data", err)
|
return httperror.InternalServerError("Unable to add snapshot data", err)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
nodes := statusutil.NodesCount(endpoints)
|
nodes += statusutil.NodesCount([]portainer.Endpoint{endpoint})
|
||||||
|
}
|
||||||
|
|
||||||
return response.JSON(w, &nodesCountResponse{Nodes: nodes})
|
return response.JSON(w, &nodesCountResponse{Nodes: nodes})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue