Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions cli/command/formatter/stack.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ import (
)

const (
defaultStackTableFormat = "table {{.Name}}\t{{.Services}}"
defaultStackTableFormat = "table {{.Name}}\t{{.Services}}\t{{.Orchestrator}}"

stackServicesHeader = "SERVICES"
stackServicesHeader = "SERVICES"
stackOrchestrastorHeader = "ORCHESTRATOR"
)

// Stack contains deployed stack information.
Expand All @@ -16,6 +17,8 @@ type Stack struct {
Name string
// Services is the number of the services
Services int
// Orchestratort is the platform on which the stack is deployed
Orchestrator string
}

// NewStackFormat returns a format for use with a stack Context
Expand Down Expand Up @@ -48,8 +51,9 @@ type stackContext struct {
func newStackContext() *stackContext {
stackCtx := stackContext{}
stackCtx.header = map[string]string{
"Name": nameHeader,
"Services": stackServicesHeader,
"Name": nameHeader,
"Services": stackServicesHeader,
"Orchestrator": stackOrchestrastorHeader,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you:

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be fixed, can you PTAL? Thanks!

}
return &stackCtx
}
Expand All @@ -65,3 +69,7 @@ func (s *stackContext) Name() string {
func (s *stackContext) Services() string {
return strconv.Itoa(s.s.Services)
}

func (s *stackContext) Orchestrator() string {
return s.s.Orchestrator
}
10 changes: 5 additions & 5 deletions cli/command/formatter/stack_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ func TestStackContextWrite(t *testing.T) {
// Table format
{
Context{Format: NewStackFormat("table")},
`NAME SERVICES
baz 2
bar 1
`NAME SERVICES ORCHESTRATOR
baz 2 orchestrator1
bar 1 orchestrator2
`,
},
{
Expand All @@ -49,8 +49,8 @@ bar
}

stacks := []*Stack{
{Name: "baz", Services: 2},
{Name: "bar", Services: 1},
{Name: "baz", Services: 2, Orchestrator: "orchestrator1"},
{Name: "bar", Services: 1, Orchestrator: "orchestrator2"},
}
for _, testcase := range cases {
out := bytes.NewBufferString("")
Expand Down
5 changes: 3 additions & 2 deletions cli/command/stack/kubernetes/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,9 @@ func getStacks(kubeCli *KubeCli) ([]*formatter.Stack, error) {
var formattedStacks []*formatter.Stack
for _, stack := range stacks {
formattedStacks = append(formattedStacks, &formatter.Stack{
Name: stack.name,
Services: len(stack.getServices()),
Name: stack.name,
Services: len(stack.getServices()),
Orchestrator: "Kubernetes",
})
}
return formattedStacks, nil
Expand Down
5 changes: 3 additions & 2 deletions cli/command/stack/swarm/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,9 @@ func getStacks(ctx context.Context, apiclient client.APIClient) ([]*formatter.St
ztack, ok := m[name]
if !ok {
m[name] = &formatter.Stack{
Name: name,
Services: 1,
Name: name,
Services: 1,
Orchestrator: "Swarm",
}
} else {
ztack.Services++
Expand Down
8 changes: 4 additions & 4 deletions cli/command/stack/testdata/stack-list-sort-natural.golden
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
NAME SERVICES
service-name-1-foo 1
service-name-2-foo 1
service-name-10-foo 1
NAME SERVICES ORCHESTRATOR
service-name-1-foo 1 Swarm
service-name-2-foo 1 Swarm
service-name-10-foo 1 Swarm
6 changes: 3 additions & 3 deletions cli/command/stack/testdata/stack-list-sort.golden
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
NAME SERVICES
service-name-bar 1
service-name-foo 1
NAME SERVICES ORCHESTRATOR
service-name-bar 1 Swarm
service-name-foo 1 Swarm
4 changes: 2 additions & 2 deletions cli/command/stack/testdata/stack-list-without-format.golden
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
NAME SERVICES
service-name-foo 1
NAME SERVICES ORCHESTRATOR
service-name-foo 1 Swarm
15 changes: 8 additions & 7 deletions docs/reference/commandline/stack_ls.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ The following command shows all stacks and some additional information:
```bash
$ docker stack ls

ID SERVICES
vossibility-stack 6
myapp 2
ID SERVICES ORCHESTRATOR
myapp 2 Kubernetes
vossibility-stack 6 Swarm
```

### Formatting
Expand All @@ -50,10 +50,11 @@ The formatting option (`--format`) pretty-prints stacks using a Go template.

Valid placeholders for the Go template are listed below:

| Placeholder | Description |
| ----------- | ------------------ |
| `.Name` | Stack name |
| `.Services` | Number of services |
| Placeholder | Description |
| --------------- | ------------------ |
| `.Name` | Stack name |
| `.Services` | Number of services |
| `.Orchestrator` | Orchestrator name |

When using the `--format` option, the `stack ls` command either outputs
the data exactly as the template declares or, when using the
Expand Down