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
|
||||
}
|
||||
|
||||
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.
|
||||
func (c *Cluster) listNodes() []*node.Node {
|
||||
c.RLock()
|
||||
|
@ -280,9 +268,9 @@ func (c *Cluster) listNodes() []*node.Node {
|
|||
for _, s := range c.slaves {
|
||||
n := node.NewNode(s.engine)
|
||||
n.ID = s.id
|
||||
n.TotalCpus = int64(scalarResourceValue(s.offers, "cpus"))
|
||||
n.TotalCpus = int64(sumScalarResourceValue(s.offers, "cpus"))
|
||||
n.UsedCpus = 0
|
||||
n.TotalMemory = int64(scalarResourceValue(s.offers, "mem")) * 1024 * 1024
|
||||
n.TotalMemory = int64(sumScalarResourceValue(s.offers, "mem")) * 1024 * 1024
|
||||
n.UsedMemory = 0
|
||||
out = append(out, n)
|
||||
}
|
||||
|
@ -328,7 +316,7 @@ func (c *Cluster) Info() [][]string {
|
|||
for _, offer := range offers {
|
||||
info = append(info, []string{" Offer", offer.Id.GetValue()})
|
||||
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