mirror of
https://codeberg.org/scip/esctl.git
synced 2026-08-24 06:34:18 +02:00
add role diff (#26)
This commit is contained in:
59
cmd/roles.go
59
cmd/roles.go
@@ -34,6 +34,7 @@ func Roles(conf *cfg.Config) *cli.Command {
|
||||
Commands: []*cli.Command{
|
||||
RoleList(conf),
|
||||
RoleShow(conf),
|
||||
RoleDiff(conf),
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -76,3 +77,61 @@ func RoleShow(conf *cfg.Config) *cli.Command {
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func RoleDiff(conf *cfg.Config) *cli.Command {
|
||||
return &cli.Command{
|
||||
Name: "diff",
|
||||
Usage: "show differences between roles and CSV baseline",
|
||||
UsageText: `diff [options] <file.csv> [<role>]
|
||||
CSV format:
|
||||
index_name;role;index_privilege;cluster_privilege;ad_group;space;retention;kibana_privilege;field_privilege`,
|
||||
|
||||
MutuallyExclusiveFlags: []cli.MutuallyExclusiveFlags{{
|
||||
Flags: [][]cli.Flag{
|
||||
{
|
||||
&cli.BoolFlag{
|
||||
Name: "not-deployed",
|
||||
Usage: "include only not deployed but defined roles",
|
||||
Destination: &conf.NotDeployed,
|
||||
Aliases: []string{"n"},
|
||||
},
|
||||
},
|
||||
{
|
||||
&cli.BoolFlag{
|
||||
Name: "undefined",
|
||||
Usage: "include only deployed but undefined roles",
|
||||
Destination: &conf.Undefined,
|
||||
Aliases: []string{"u"},
|
||||
},
|
||||
},
|
||||
{
|
||||
&cli.BoolFlag{
|
||||
Name: "diff",
|
||||
Usage: "include only differing roles",
|
||||
Destination: &conf.Diff,
|
||||
Aliases: []string{"D"},
|
||||
},
|
||||
},
|
||||
}},
|
||||
},
|
||||
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringFlag{
|
||||
Name: "separator",
|
||||
Usage: "CSV field separator",
|
||||
Destination: &conf.Separator,
|
||||
Aliases: []string{"s"},
|
||||
Value: ",",
|
||||
},
|
||||
},
|
||||
|
||||
Action: func(ctx context.Context, cmd *cli.Command) error {
|
||||
csvfile := cmd.Args().Get(0)
|
||||
if csvfile == "" {
|
||||
return errors.New("no CSV file specified")
|
||||
}
|
||||
|
||||
return es.RoleDiff(conf, cmd.Args().Get(0), cmd.Args().Get(1))
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user