From 594daf0de8ea9dd795eacf6fbf661712ba8b79d3 Mon Sep 17 00:00:00 2001 From: Chaim Lev-Ari Date: Mon, 13 Aug 2018 20:20:56 +0100 Subject: [PATCH] fix(home): Show correct number of cpus and total memory for swarm (#2147) * fix(home): show cpu/mem for swarm * fix(home): add nodes data to snapshot * fix(dashboard): get cpus/mem from snapshot * refactor(home): remove temp variable --- api/docker/snapshot.go | 21 +++++++++++++++++++ app/docker/views/dashboard/dashboard.html | 5 ++++- .../endpoint-item/endpointItem.html | 2 +- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/api/docker/snapshot.go b/api/docker/snapshot.go index 5f37ad985..d8c481fb7 100644 --- a/api/docker/snapshot.go +++ b/api/docker/snapshot.go @@ -30,6 +30,11 @@ func snapshot(cli *client.Client) (*portainer.Snapshot, error) { if err != nil { return nil, err } + + err = snapshotNodes(snapshot, cli) + if err != nil { + return nil, err + } } err = snapshotContainers(snapshot, cli) @@ -64,6 +69,22 @@ func snapshotInfo(snapshot *portainer.Snapshot, cli *client.Client) error { return nil } +func snapshotNodes(snapshot *portainer.Snapshot, cli *client.Client) error { + nodes, err := cli.NodeList(context.Background(), types.NodeListOptions{}) + if err != nil { + return err + } + var nanoCpus int64 + var totalMem int64 + for _, node := range nodes { + nanoCpus += node.Description.Resources.NanoCPUs + totalMem += node.Description.Resources.MemoryBytes + } + snapshot.TotalCPU = int(nanoCpus / 1e9) + snapshot.TotalMemory = totalMem + return nil +} + func snapshotSwarmServices(snapshot *portainer.Snapshot, cli *client.Client) error { stacks := make(map[string]struct{}) diff --git a/app/docker/views/dashboard/dashboard.html b/app/docker/views/dashboard/dashboard.html index 2e31750fb..3821dfead 100644 --- a/app/docker/views/dashboard/dashboard.html +++ b/app/docker/views/dashboard/dashboard.html @@ -45,7 +45,10 @@ Endpoint {{ endpoint.Name }} - {{ info.NCPU }} {{ info.MemTotal | humansize }} + + {{ endpoint.Snapshots[0].TotalCPU }} + {{ endpoint.Snapshots[0].TotalMemory | humansize }} + - {{ info.Swarm && info.Swarm.NodeID !== '' ? 'Swarm' : 'Standalone' }} {{ info.ServerVersion }} + Agent diff --git a/app/portainer/components/endpoint-list/endpoint-item/endpointItem.html b/app/portainer/components/endpoint-list/endpoint-item/endpointItem.html index 24723beac..322ab9a90 100644 --- a/app/portainer/components/endpoint-list/endpoint-item/endpointItem.html +++ b/app/portainer/components/endpoint-list/endpoint-item/endpointItem.html @@ -58,7 +58,7 @@
- + {{ $ctrl.model.Snapshots[0].TotalCPU }} {{ $ctrl.model.Snapshots[0].TotalMemory | humansize }}