...
1 package remove
2
3 import (
4 "context"
5 "fmt"
6
7 "edge-infra.dev/pkg/edge/edgecli"
8 "edge-infra.dev/pkg/edge/edgecli/constructors"
9 "edge-infra.dev/pkg/edge/edgecli/flagutil"
10 "edge-infra.dev/pkg/lib/cli/command"
11 "edge-infra.dev/pkg/lib/cli/rags"
12 )
13
14 func NewCmd(cfg *edgecli.Config) *command.Command {
15 var cmd *command.Command
16 flagsets := flagutil.GetConnectionFlags(cfg)
17
18 cmd = &command.Command{
19 ShortUsage: "edge terminal disk remove",
20 ShortHelp: "Remove a Disk belonging to a Terminal",
21 Flags: append(
22 flagsets,
23 &rags.Rag{
24 Name: flagutil.StoreFlag,
25 Value: &rags.String{},
26 Usage: "Name of the Store - Must be unique",
27 Required: true,
28 },
29 &rags.Rag{
30 Name: flagutil.BannerFlag,
31 Value: &rags.String{},
32 Usage: "Banner name",
33 Required: true,
34 },
35 &rags.Rag{
36 Name: flagutil.DiskID,
37 Value: &rags.String{},
38 Usage: "ID of Disk to remove",
39 Required: true,
40 },
41 ),
42 Exec: func(_ context.Context, _ []string) error {
43 if err := flagutil.ValidateRequiredFlags(cmd.Rags); err != nil {
44 return err
45 }
46
47 registrar, err := constructors.BuildRegistrar(cmd.Rags)
48 if err != nil {
49 return err
50 }
51
52 terminalDiskID := flagutil.GetStringFlag(cmd.Rags, flagutil.DiskID)
53
54 reqCtx, cancelReq := context.WithTimeout(context.Background(), flagutil.BffReqTimeout)
55 defer cancelReq()
56
57 fmt.Println("deleting terminal disk...")
58
59 _, err = registrar.DeleteTerminalDisk(reqCtx, terminalDiskID)
60 if err != nil {
61 fmt.Println("an error occurred whilst removing the terminal disk")
62 return err
63 }
64
65 fmt.Println("terminal disk removed successfully!")
66 return nil
67 },
68 }
69 return cmd
70 }
71
View as plain text