Skip to content

Commit

Permalink
Show orchestrator field in stack list
Browse files Browse the repository at this point in the history
  • Loading branch information
moncho committed Jul 26, 2018
1 parent abab20d commit dd82861
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 13 deletions.
30 changes: 17 additions & 13 deletions appui/swarm/stack_row.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,39 +11,43 @@ import (

//StackRow is a Grid row showing stack information
type StackRow struct {
stack docker.Stack
Name *drytermui.ParColumn
Services *drytermui.ParColumn
Networks *drytermui.ParColumn
Configs *drytermui.ParColumn
Secrets *drytermui.ParColumn
stack docker.Stack
Name *drytermui.ParColumn
Services *drytermui.ParColumn
Orchestrator *drytermui.ParColumn
Networks *drytermui.ParColumn
Configs *drytermui.ParColumn
Secrets *drytermui.ParColumn

appui.Row
}

//NewStackRow creats a new StackRow widget
func NewStackRow(stack docker.Stack, table drytermui.Table) *StackRow {
row := &StackRow{
stack: stack,
Name: drytermui.NewThemedParColumn(appui.DryTheme, stack.Name),
Services: drytermui.NewThemedParColumn(appui.DryTheme, strconv.Itoa(stack.Services)),
Networks: drytermui.NewThemedParColumn(appui.DryTheme, strconv.Itoa(stack.Networks)),
Configs: drytermui.NewThemedParColumn(appui.DryTheme, strconv.Itoa(stack.Configs)),
Secrets: drytermui.NewThemedParColumn(appui.DryTheme, strconv.Itoa(stack.Secrets)),
stack: stack,
Name: drytermui.NewThemedParColumn(appui.DryTheme, stack.Name),
Services: drytermui.NewThemedParColumn(appui.DryTheme, strconv.Itoa(stack.Services)),
Orchestrator: drytermui.NewThemedParColumn(appui.DryTheme, stack.Orchestrator),
Networks: drytermui.NewThemedParColumn(appui.DryTheme, strconv.Itoa(stack.Networks)),
Configs: drytermui.NewThemedParColumn(appui.DryTheme, strconv.Itoa(stack.Configs)),
Secrets: drytermui.NewThemedParColumn(appui.DryTheme, strconv.Itoa(stack.Secrets)),
}
row.Height = 1
row.Table = table
//Columns are rendered following the slice order
row.Columns = []termui.GridBufferer{
row.Name,
row.Services,
row.Orchestrator,
row.Networks,
row.Configs,
row.Secrets,
}
row.ParColumns = []*drytermui.ParColumn{
row.Name,
row.Services,
row.Orchestrator,
row.Networks,
row.Configs,
row.Secrets,
Expand All @@ -54,5 +58,5 @@ func NewStackRow(stack docker.Stack, table drytermui.Table) *StackRow {

//ColumnsForFilter returns the columns that are used to filter
func (row *StackRow) ColumnsForFilter() []*drytermui.ParColumn {
return []*drytermui.ParColumn{row.Name}
return []*drytermui.ParColumn{row.Name, row.Orchestrator}
}
57 changes: 57 additions & 0 deletions appui/swarm/stack_row_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package swarm

import (
"strconv"
"testing"

"github.com/moncho/dry/docker"
)

func TestStackRow(t *testing.T) {
type args struct {
stack docker.Stack
}
tests := []struct {
name string
args args
}{
{
"stack row test",
args{
docker.Stack{
Name: "My name is my name",
Services: 5,
Orchestrator: "Swarm",
Networks: 4,
Configs: 2,
Secrets: 300,
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
stack := tt.args.stack
row := NewStackRow(stack, nil)

if row.Name.Text != stack.Name {
t.Errorf("Unexpected Name. Got %s, expected %s", row.Name.Text, stack.Name)
}
if row.Services.Text != strconv.Itoa(stack.Services) {
t.Errorf("Unexpected Services. Got %s, expected %d", row.Services.Text, stack.Services)
}
if row.Orchestrator.Text != stack.Orchestrator {
t.Errorf("Unexpected Orchestrator. Got %s, expected %s", row.Orchestrator.Text, stack.Orchestrator)
}
if row.Networks.Text != strconv.Itoa(stack.Networks) {
t.Errorf("Unexpected Networks. Got %s, expected %d", row.Networks.Text, stack.Networks)
}
if row.Configs.Text != strconv.Itoa(stack.Configs) {
t.Errorf("Unexpected Configs. Got %s, expected %d", row.Configs.Text, stack.Configs)
}
if row.Secrets.Text != strconv.Itoa(stack.Secrets) {
t.Errorf("Unexpected Secrets. Got %s, expected %d", row.Secrets.Text, stack.Secrets)
}
})
}
}
1 change: 1 addition & 0 deletions appui/swarm/stacks.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ var defaultStackTableHeader = stackTableHeader()
var stackTableHeaders = []appui.SortableColumnHeader{
{Title: "NAME", Mode: docker.SortByStackName},
{Title: "SERVICES", Mode: docker.NoSortStack},
{Title: "ORCHESTRATOR", Mode: docker.NoSortStack},
{Title: "NETWORKS", Mode: docker.NoSortStack},
{Title: "CONFIGS", Mode: docker.NoSortStack},
{Title: "SECRETS", Mode: docker.NoSortStack},
Expand Down

0 comments on commit dd82861

Please sign in to comment.