forked from rancher/kontainer-engine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
inspect.go
54 lines (48 loc) · 1.32 KB
/
inspect.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package cmd
import (
"encoding/json"
"errors"
"fmt"
"os"
"github.com/rancher/kontainer-engine/store"
"github.com/urfave/cli"
)
var inspectHelpTemplate = `{{.Usage}}
{{if .Description}}{{.Description}}{{end}}
Usage: kontainer-engine [global options] {{.Name}} {{if .Flags}}[OPTIONS] {{end}}{{if ne "None" .ArgsUsage}}{{if ne "" .ArgsUsage}}{{.ArgsUsage}}{{else}}[cluster-name]{{end}}{{end}}
{{if .Flags}}Options:{{range .Flags}}
{{.}}{{end}}{{end}}
`
// InspectCommand defines the inspect command
func InspectCommand() cli.Command {
return cli.Command{
Name: "inspect",
Usage: "inspect kubernetes clusters",
Action: inspectCluster,
Flags: []cli.Flag{},
CustomHelpTemplate: inspectHelpTemplate,
}
}
func inspectCluster(ctx *cli.Context) error {
name := ctx.Args().Get(0)
if name == "" {
return errors.New("name is required when inspecting cluster")
}
clusters, err := store.GetAllClusterFromStore()
if err != nil {
return err
}
cluster, ok := clusters[name]
if !ok {
return fmt.Errorf("cluster %v can't be found", name)
}
cluster.ClientKey = "Redacted"
cluster.ClientCertificate = "Redacted"
cluster.RootCACert = "Redacted"
data, err := json.MarshalIndent(cluster, "", "\t")
if err != nil {
return err
}
_, err = os.Stdout.Write(data)
return err
}