1
0
mirror of https://github.com/bingohuang/docker-labs.git synced 2025-10-05 09:53:21 +08:00

Return swarm info to be displayed in the FE

This requires that PWD is working as a container in the same
network as all dinds

Add icons to swarmInfo
This commit is contained in:
Marcos Lilljedahl
2016-11-23 13:50:21 -03:00
parent 0f4aea4de3
commit 10bdf3d5f2
7 changed files with 72 additions and 8 deletions

View File

@@ -12,6 +12,7 @@ import (
"golang.org/x/text/encoding"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/swarm"
units "github.com/docker/go-units"
)
@@ -90,6 +91,7 @@ func (s *sessionWriter) Write(p []byte) (n int, err error) {
}
func (o *Instance) CollectStats() {
reader, err := GetContainerStats(o.Name)
if err != nil {
log.Println("Error while trying to collect instance stats", err)
@@ -115,6 +117,15 @@ func (o *Instance) CollectStats() {
break
}
var isManager *bool
if info, err := GetDaemonInfo(fmt.Sprintf("http://%s:2375", o.IP)); err == nil {
if info.Swarm.LocalNodeState != swarm.LocalNodeStateInactive && info.Swarm.LocalNodeState != swarm.LocalNodeStateLocked {
isManager = &info.Swarm.ControlAvailable
}
} else {
fmt.Println(info, err)
}
// Memory
if v.MemoryStats.Limit != 0 {
memPercent = float64(v.MemoryStats.Usage) / float64(v.MemoryStats.Limit) * 100.0
@@ -130,7 +141,7 @@ func (o *Instance) CollectStats() {
cpuPercent = calculateCPUPercentUnix(previousCPU, previousSystem, v)
cpuFormatted = fmt.Sprintf("%.2f%%", cpuPercent)
wsServer.BroadcastTo(o.session.Id, "instance stats", o.Name, memFormatted, cpuFormatted)
wsServer.BroadcastTo(o.session.Id, "instance stats", o.Name, memFormatted, cpuFormatted, isManager)
}
}