...
1 package listclusterconfig
2
3 import (
4 "context"
5 "encoding/json"
6 "fmt"
7 "time"
8
9 "edge-infra.dev/pkg/edge/edgecli"
10 "edge-infra.dev/pkg/edge/edgecli/constructors"
11 "edge-infra.dev/pkg/edge/edgecli/flagutil"
12 "edge-infra.dev/pkg/lib/cli/command"
13 "edge-infra.dev/pkg/lib/cli/rags"
14 )
15
16 func NewCmd(cfg *edgecli.Config) *command.Command {
17 var cmd *command.Command
18 flagsets := flagutil.GetConnectionFlags(cfg)
19 var bannerName, storeName string
20 cmd = &command.Command{
21 ShortUsage: "edge clusterconfig list",
22 ShortHelp: "List cluster config",
23 Flags: append(
24 flagsets,
25 &rags.Rag{
26 Name: flagutil.StoreFlag,
27 Usage: "Name of the Store",
28 Value: &rags.String{Var: &storeName},
29 Required: true,
30 },
31 &rags.Rag{
32 Name: flagutil.BannerFlag,
33 Usage: "Banner name",
34 Value: &rags.String{Var: &bannerName},
35 Required: true,
36 },
37 ),
38
39 Exec: func(_ context.Context, _ []string) error {
40
41 if err := flagutil.ValidateRequiredFlags(cmd.Rags); err != nil {
42 return err
43 }
44
45 registrar, err := constructors.BuildRegistrar(cmd.Rags)
46 if err != nil {
47 return err
48 }
49
50 reqCtx, cancelReq := context.WithTimeout(context.Background(), time.Duration(30)*time.Second)
51 defer cancelReq()
52
53 cluster, err := registrar.GetCluster(reqCtx, storeName, bannerName)
54 if err != nil {
55 return err
56 }
57
58 reqCtx, cancelReq = context.WithTimeout(context.Background(), time.Duration(30)*time.Second)
59 defer cancelReq()
60
61 config, err := registrar.GetClusterConfig(reqCtx, cluster.ClusterEdgeID)
62 if err != nil {
63 fmt.Println("error in retrieval of the cluster config")
64 return err
65 }
66
67 marshalledOutput, err := json.MarshalIndent(config, "", " ")
68 if err != nil {
69 return err
70 }
71 fmt.Println(string(marshalledOutput))
72
73 return nil
74 },
75 }
76 return cmd
77 }
78
View as plain text