/
left76
/
ccli1
Обзор
Документация
Войти
/
left76
/
ccli1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
cli/command/formatter/stack.go
77 строк
2 KB
Silvin Lubecki
Add namespace column for docker stack ls command while targeting Kubernetes orchestrator
09 май 2018, 18:33
09 май 2018, 18:33
65526a2
Код
Авторство
О чём код?
package formatter import ( "strconv" ) const ( // KubernetesStackTableFormat is the default Kubernetes stack format KubernetesStackTableFormat = "table {{.Name}}\t{{.Services}}\t{{.Orchestrator}}\t{{.Namespace}}" // SwarmStackTableFormat is the default Swarm stack format SwarmStackTableFormat = "table {{.Name}}\t{{.Services}}\t{{.Orchestrator}}" stackServicesHeader = "SERVICES" stackOrchestrastorHeader = "ORCHESTRATOR" stackNamespaceHeader = "NAMESPACE" ) // Stack contains deployed stack information. type Stack struct { // Name is the name of the stack Name string // Services is the number of the services Services int // Orchestrator is the platform where the stack is deployed Orchestrator string // Namespace is the Kubernetes namespace assigned to the stack Namespace string } // StackWrite writes formatted stacks using the Context func StackWrite(ctx Context, stacks []*Stack) error { render := func(format func(subContext subContext) error) error { for _, stack := range stacks { if err := format(&stackContext{s: stack}); err != nil { return err } } return nil } return ctx.Write(newStackContext(), render) } type stackContext struct { HeaderContext s *Stack } func newStackContext() *stackContext { stackCtx := stackContext{} stackCtx.header = map[string]string{ "Name": nameHeader, "Services": stackServicesHeader, "Orchestrator": stackOrchestrastorHeader, "Namespace": stackNamespaceHeader, } return &stackCtx } func (s *stackContext) MarshalJSON() ([]byte, error) { return marshalJSON(s) } func (s *stackContext) Name() string { return s.s.Name } func (s *stackContext) Services() string { return strconv.Itoa(s.s.Services) } func (s *stackContext) Orchestrator() string { return s.s.Orchestrator } func (s *stackContext) Namespace() string { return s.s.Namespace }