From 0a7d771be8dc746c0e565d03de13ba929d7fcec7 Mon Sep 17 00:00:00 2001 From: guoxudong Date: Wed, 19 Aug 2020 11:24:42 +0800 Subject: [PATCH] add cluster info Signed-off-by: guoxudong --- cmd/utils.go | 39 ++++++++++++++++++++++++++++++++++++--- go.mod | 1 + go.sum | 9 +++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/cmd/utils.go b/cmd/utils.go index 5b2383e3..33f64333 100644 --- a/cmd/utils.go +++ b/cmd/utils.go @@ -20,7 +20,9 @@ import ( "errors" "fmt" "github.com/bndr/gotabulate" + ct "github.com/daviddengcn/go-colortext" "github.com/manifoldco/promptui" + "io" "io/ioutil" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" @@ -256,7 +258,9 @@ func ClusterStatus() error { for _, k := range cus.Items { names = append(names, k.Name) } - log.Printf("Cluster check succeeded!\nContains components: %v \n", names) + printString(os.Stdout, "Cluster check succeeded!\n") + printService(os.Stdout, "Kubernetes master", config.Host) + printComponents(os.Stdout, "Contains components", names) return nil } @@ -306,16 +310,45 @@ func GetNamespaceList(cont string) ([]namespaces, error) { case "": if specItem.Name == "default" { nss = append(nss, namespaces{Name: specItem.Name, Default: true}) - }else { + } else { nss = append(nss, namespaces{Name: specItem.Name, Default: false}) } default: if specItem.Name == cont { nss = append(nss, namespaces{Name: specItem.Name, Default: true}) - }else { + } else { nss = append(nss, namespaces{Name: specItem.Name, Default: false}) } } } return nss, nil } + +func printService(out io.Writer, name, link string) { + ct.ChangeColor(ct.Green, false, ct.None, false) + fmt.Fprint(out, name) + ct.ResetColor() + fmt.Fprint(out, " is running at ") + ct.ChangeColor(ct.Yellow, false, ct.None, false) + fmt.Fprint(out, link) + ct.ResetColor() + fmt.Fprintln(out, "") +} + +func printString(out io.Writer, name string) { + ct.ChangeColor(ct.Green, false, ct.None, false) + fmt.Fprint(out, name) + ct.ResetColor() +} + +func printComponents(out io.Writer, name string, list []string) { + ct.ChangeColor(ct.Green, false, ct.None, false) + fmt.Fprint(out, name) + ct.ResetColor() + fmt.Fprint(out, ": ") + ct.ChangeColor(ct.Yellow, false, ct.None, false) + fmt.Printf("%v \n", list) + ct.ResetColor() + fmt.Fprintln(out, "") + +} diff --git a/go.mod b/go.mod index 2b056f61..3750a621 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.13 require ( github.com/bndr/gotabulate v1.1.2 + github.com/daviddengcn/go-colortext v1.0.0 github.com/gogo/protobuf v1.2.1 // indirect github.com/googleapis/gnostic v0.3.0 // indirect github.com/imdario/mergo v0.3.7 // indirect diff --git a/go.sum b/go.sum index d3d07e5f..bc3fb2f5 100644 --- a/go.sum +++ b/go.sum @@ -18,11 +18,20 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/daviddengcn/go-colortext v1.0.0 h1:ANqDyC0ys6qCSvuEK7l3g5RaehL/Xck9EX8ATG8oKsE= +github.com/daviddengcn/go-colortext v1.0.0/go.mod h1:zDqEI5NVUop5QPpVJUxE9UO10hRnmkD5G4Pmri9+m4c= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= +github.com/golangplus/bytes v1.0.0 h1:YQKBijBVMsBxIiXT4IEhlKR2zHohjEqPole4umyDX+c= +github.com/golangplus/bytes v1.0.0/go.mod h1:AdRaCFwmc/00ZzELMWb01soso6W1R/++O1XL80yAn+A= +github.com/golangplus/fmt v1.0.0 h1:FnUKtw86lXIPfBMc3FimNF3+ABcV+aH5F17OOitTN+E= +github.com/golangplus/fmt v1.0.0/go.mod h1:zpM0OfbMCjPtd2qkTD/jX2MgiFCqklhSUFyDW44gVQE= +github.com/golangplus/testing v1.0.0 h1:+ZeeiKZENNOMkTTELoSySazi+XaEhVO0mb+eanrSEUQ= +github.com/golangplus/testing v1.0.0/go.mod h1:ZDreixUV3YzhoVraIDyOzHrr76p6NUh6k/pPg/Q3gYA= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/googleapis/gnostic v0.3.0 h1:CcQijm0XKekKjP/YCz28LXVSpgguuB+nCxaSjCe09y0=