clusterList: include node state

pull/328/head
iwilltry42 4 years ago
parent 1285fb90c4
commit cc3fe46a23
No known key found for this signature in database
GPG Key ID: 7BA57AD1CFF16110
  1. 8
      cmd/cluster/clusterList.go
  2. 20
      pkg/types/types.go

@ -116,14 +116,14 @@ func PrintClusters(clusters []*k3d.Cluster, flags clusterFlags) {
k3cluster.SortClusters(clusters) k3cluster.SortClusters(clusters)
for _, cluster := range clusters { for _, cluster := range clusters {
serverCount := cluster.ServerCount() serverCount, serversRunning := cluster.ServerCountRunning()
agentCount := cluster.AgentCount() agentCount, agentsRunning := cluster.AgentCountRunning()
hasLB := cluster.HasLoadBalancer() hasLB := cluster.HasLoadBalancer()
if flags.token { if flags.token {
fmt.Fprintf(tabwriter, "%s\t%d\t%d\t%t\t%s\n", cluster.Name, serverCount, agentCount, hasLB, cluster.Token) fmt.Fprintf(tabwriter, "%s\t%d/%d\t%d/%d\t%t\t%s\n", cluster.Name, serversRunning, serverCount, agentsRunning, agentCount, hasLB, cluster.Token)
} else { } else {
fmt.Fprintf(tabwriter, "%s\t%d\t%d\t%t\n", cluster.Name, serverCount, agentCount, hasLB) fmt.Fprintf(tabwriter, "%s\t%d/%d\t%d/%d\t%t\n", cluster.Name, serversRunning, serverCount, agentsRunning, agentCount, hasLB)
} }
} }
} }

@ -181,26 +181,34 @@ type Cluster struct {
ImageVolume string `yaml:"image_volume" json:"imageVolume,omitempty"` ImageVolume string `yaml:"image_volume" json:"imageVolume,omitempty"`
} }
// ServerCount return number of server node into cluster // ServerCountRunning returns the number of server nodes running in the cluster and the total number
func (c *Cluster) ServerCount() int { func (c *Cluster) ServerCountRunning() (int, int) {
serverCount := 0 serverCount := 0
serversRunning := 0
for _, node := range c.Nodes { for _, node := range c.Nodes {
if node.Role == ServerRole { if node.Role == ServerRole {
serverCount++ serverCount++
if node.State.Running {
serversRunning++
}
} }
} }
return serverCount return serverCount, serversRunning
} }
// AgentCount return number of agent node into cluster // AgentCountRunning returns the number of agent nodes running in the cluster and the total number
func (c *Cluster) AgentCount() int { func (c *Cluster) AgentCountRunning() (int, int) {
agentCount := 0 agentCount := 0
agentsRunning := 0
for _, node := range c.Nodes { for _, node := range c.Nodes {
if node.Role == AgentRole { if node.Role == AgentRole {
agentCount++ agentCount++
if node.State.Running {
agentsRunning++
}
} }
} }
return agentCount return agentCount, agentsRunning
} }
// HasLoadBalancer returns true if cluster has a loadbalancer node // HasLoadBalancer returns true if cluster has a loadbalancer node

Loading…
Cancel
Save