...
1 package list
2
3 import (
4 "context"
5 "fmt"
6 "time"
7
8 "edge-infra.dev/pkg/edge/edgecli"
9 "edge-infra.dev/pkg/edge/edgecli/constructors"
10 "edge-infra.dev/pkg/edge/edgecli/flagutil"
11 "edge-infra.dev/pkg/lib/cli/command"
12 "edge-infra.dev/pkg/lib/cli/rags"
13 )
14
15 func NewCmd(cfg *edgecli.Config) *command.Command {
16 var cmd *command.Command
17 flagsets := flagutil.GetConnectionFlags(cfg)
18 var storeName, bannerName string
19
20 cmd = &command.Command{
21 ShortUsage: "edge networkservice list",
22 ShortHelp: "List Network Services belonging to a Cluster",
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 Exec: func(_ context.Context, _ []string) error {
39 if err := flagutil.ValidateRequiredFlags(cmd.Rags); err != nil {
40 return err
41 }
42
43 registrar, err := constructors.BuildRegistrar(cmd.Rags)
44 if err != nil {
45 return err
46 }
47
48 storeName := flagutil.GetStringFlag(cmd.Rags, flagutil.StoreFlag)
49 bannerName := flagutil.GetStringFlag(cmd.Rags, flagutil.BannerFlag)
50
51 fmt.Println("flags validated")
52
53 reqCtx, cancelReq := context.WithTimeout(context.Background(), time.Duration(30)*time.Second)
54 defer cancelReq()
55
56 cluster, err := registrar.GetCluster(reqCtx, storeName, bannerName)
57 if err != nil {
58 fmt.Println("an error occurred whilst modifying the cluster network service")
59 return err
60 }
61
62 fmt.Printf("\nCluster Network Services for %s\n", cluster.ClusterEdgeID)
63
64 for _, service := range cluster.ClusterNetworkServices {
65 fmt.Println("------------------------------------------------------")
66 fmt.Printf("NetworkServiceId: %s\n", service.NetworkServiceID)
67 fmt.Printf("Type: %s\n", service.ServiceType)
68 fmt.Printf("IP/Domain: %s\n", service.IP)
69 fmt.Printf("Family: %s\n", service.Family)
70 if service.Priority != nil {
71 fmt.Printf("Priority: %d\n", *service.Priority)
72 }
73 }
74 fmt.Println("------------------------------------------------------")
75 return nil
76 },
77 }
78 return cmd
79 }
80
View as plain text