mirror of https://github.com/docker/docs.git
pretty print mesos offers
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
This commit is contained in:
parent
722b0e962d
commit
c44151ff4a
|
@ -259,18 +259,6 @@ func (c *Cluster) RenameContainer(container *cluster.Container, newName string)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func scalarResourceValue(offers map[string]*mesosproto.Offer, name string) float64 {
|
|
||||||
var value float64
|
|
||||||
for _, offer := range offers {
|
|
||||||
for _, resource := range offer.Resources {
|
|
||||||
if *resource.Name == name {
|
|
||||||
value += *resource.Scalar.Value
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return value
|
|
||||||
}
|
|
||||||
|
|
||||||
// listNodes returns all the nodess in the cluster.
|
// listNodes returns all the nodess in the cluster.
|
||||||
func (c *Cluster) listNodes() []*node.Node {
|
func (c *Cluster) listNodes() []*node.Node {
|
||||||
c.RLock()
|
c.RLock()
|
||||||
|
@ -280,9 +268,9 @@ func (c *Cluster) listNodes() []*node.Node {
|
||||||
for _, s := range c.slaves {
|
for _, s := range c.slaves {
|
||||||
n := node.NewNode(s.engine)
|
n := node.NewNode(s.engine)
|
||||||
n.ID = s.id
|
n.ID = s.id
|
||||||
n.TotalCpus = int64(scalarResourceValue(s.offers, "cpus"))
|
n.TotalCpus = int64(sumScalarResourceValue(s.offers, "cpus"))
|
||||||
n.UsedCpus = 0
|
n.UsedCpus = 0
|
||||||
n.TotalMemory = int64(scalarResourceValue(s.offers, "mem")) * 1024 * 1024
|
n.TotalMemory = int64(sumScalarResourceValue(s.offers, "mem")) * 1024 * 1024
|
||||||
n.UsedMemory = 0
|
n.UsedMemory = 0
|
||||||
out = append(out, n)
|
out = append(out, n)
|
||||||
}
|
}
|
||||||
|
@ -328,7 +316,7 @@ func (c *Cluster) Info() [][]string {
|
||||||
for _, offer := range offers {
|
for _, offer := range offers {
|
||||||
info = append(info, []string{" Offer", offer.Id.GetValue()})
|
info = append(info, []string{" Offer", offer.Id.GetValue()})
|
||||||
for _, resource := range offer.Resources {
|
for _, resource := range offer.Resources {
|
||||||
info = append(info, []string{" └ " + *resource.Name, fmt.Sprintf("%v", resource)})
|
info = append(info, []string{" └ " + resource.GetName(), formatResource(resource)})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
package mesos
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/docker/docker/pkg/units"
|
||||||
|
"github.com/mesos/mesos-go/mesosproto"
|
||||||
|
)
|
||||||
|
|
||||||
|
func formatResource(resource *mesosproto.Resource) string {
|
||||||
|
switch resource.GetType() {
|
||||||
|
case mesosproto.Value_SCALAR:
|
||||||
|
if resource.GetName() == "disk" || resource.GetName() == "mem" {
|
||||||
|
return units.BytesSize(resource.GetScalar().GetValue() * 1024 * 1024)
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%d", int(resource.GetScalar().GetValue()))
|
||||||
|
|
||||||
|
case mesosproto.Value_RANGES:
|
||||||
|
var ranges []string
|
||||||
|
for _, r := range resource.GetRanges().GetRange() {
|
||||||
|
ranges = append(ranges, fmt.Sprintf("%d-%d", r.GetBegin(), r.GetEnd()))
|
||||||
|
}
|
||||||
|
return strings.Join(ranges, ", ")
|
||||||
|
}
|
||||||
|
return "?"
|
||||||
|
}
|
||||||
|
|
||||||
|
func sumScalarResourceValue(offers map[string]*mesosproto.Offer, name string) float64 {
|
||||||
|
var value float64
|
||||||
|
for _, offer := range offers {
|
||||||
|
for _, resource := range offer.Resources {
|
||||||
|
if *resource.Name == name {
|
||||||
|
value += *resource.Scalar.Value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return value
|
||||||
|
}
|
Loading…
Reference in New Issue