...
1 package delete
2
3 import (
4 "context"
5
6 "github.com/peterbourgon/ff/v3"
7
8 "edge-infra.dev/pkg/edge/api/graph/model"
9 "edge-infra.dev/pkg/edge/edgeadmin/commands/operatorintervention/edgeextension"
10 "edge-infra.dev/pkg/edge/edgecli"
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 NewDeleteRule(cfg *edgecli.Config) *command.Command {
17 var (
18 edge = &edgeextension.Ext{Cfg: cfg}
19 )
20
21 var cmd *command.Command
22 cmd = &command.Command{
23 ShortUsage: "edge operatorintervention delete rule [--command <command> --privilege <privilege>]",
24 ShortHelp: "Removes a single command from the rule defined by the privilege",
25 Options: []ff.Option{},
26 Flags: []*rags.Rag{
27 {
28 Name: flagutil.OICommand,
29 Usage: "command to be removed from the rule",
30 Value: &rags.String{},
31 Required: true,
32 },
33 {
34 Name: flagutil.OIPrivilege,
35 Usage: "privilege whose rule is to be updated",
36 Value: &rags.String{},
37 Required: true,
38 },
39 },
40
41 Extensions: []command.Extension{edge},
42
43 Exec: func(ctx context.Context, _ []string) error {
44 var mutation struct {
45 DeleteCommandFromOperatorInterventionRule struct {
46 model.DeleteOperatorInterventionRuleResponse
47 } `graphql:"deleteCommandFromOperatorInterventionRule(rule: $rule)"`
48 }
49
50 var variables = map[string]interface{}{
51 "rule": model.DeleteOperatorInterventionRuleInput{
52 Privilege: flagutil.GetStringFlag(cmd.Rags, flagutil.OIPrivilege),
53 Command: flagutil.GetStringFlag(cmd.Rags, flagutil.OICommand),
54 },
55 }
56
57 err := edge.Client.Mutate(ctx, &mutation, variables)
58 if err != nil {
59 return err
60 }
61
62 return handleResponseFormatting(
63 "Rule",
64 mutation.DeleteCommandFromOperatorInterventionRule.Errors,
65 )
66 },
67 }
68 return cmd
69 }
70
View as plain text