...
1 package discover
2
3 import (
4 "context"
5 "fmt"
6
7 "edge-infra.dev/pkg/edge/api/graph/model"
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
19 cmd = &command.Command{
20 ShortUsage: "edge terminal disk discover",
21 ShortHelp: "Edit the disk discovery",
22 Flags: append(
23 flagsets,
24 &rags.Rag{
25 Name: flagutil.StoreFlag,
26 Value: &rags.String{},
27 Usage: "Name of the Store - Must be unique",
28 Required: true,
29 },
30 &rags.Rag{
31 Name: flagutil.BannerFlag,
32 Value: &rags.String{},
33 Usage: "Banner name",
34 Required: true,
35 },
36 &rags.Rag{
37 Name: flagutil.TerminalID,
38 Value: &rags.String{},
39 Usage: "ID of Terminal",
40 Required: true,
41 },
42 &rags.Rag{
43 Name: flagutil.DiscoverDisksFlag,
44 Value: &rags.String{},
45 Usage: "Disk discovery option",
46 Required: true,
47 },
48 ),
49 Exec: func(_ context.Context, _ []string) error {
50 if err := flagutil.ValidateRequiredFlags(cmd.Rags); err != nil {
51 return err
52 }
53
54 registrar, err := constructors.BuildRegistrar(cmd.Rags)
55 if err != nil {
56 return err
57 }
58
59 terminalID := flagutil.GetStringFlag(cmd.Rags, flagutil.TerminalID)
60 discoverDisk := flagutil.GetStringFlag(cmd.Rags, flagutil.DiscoverDisksFlag)
61
62 reqCtx, cancelReq := context.WithTimeout(context.Background(), flagutil.BffReqTimeout)
63 defer cancelReq()
64
65 updatedTerminal := model.TerminalUpdateInput{
66 DiscoverDisks: (*model.TerminalDiscoverDisksType)(&discoverDisk),
67 }
68
69 _, err = registrar.ModifyTerminal(reqCtx, terminalID, &updatedTerminal)
70 if err != nil {
71 fmt.Println("an error occurred whilst modifying the terminal discover disks option")
72 return err
73 }
74
75 return nil
76 },
77 }
78 return cmd
79 }
80
View as plain text