mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etcdctl: support query count only of specified prefix
This commit is contained in:
parent
0941cfc11d
commit
aa7b056a77
@ -31,6 +31,7 @@ var (
|
||||
getFromKey bool
|
||||
getRev int64
|
||||
getKeysOnly bool
|
||||
getCountOnly bool
|
||||
printValueOnly bool
|
||||
)
|
||||
|
||||
@ -50,6 +51,7 @@ func NewGetCommand() *cobra.Command {
|
||||
cmd.Flags().BoolVar(&getFromKey, "from-key", false, "Get keys that are greater than or equal to the given key using byte compare")
|
||||
cmd.Flags().Int64Var(&getRev, "rev", 0, "Specify the kv revision")
|
||||
cmd.Flags().BoolVar(&getKeysOnly, "keys-only", false, "Get only the keys")
|
||||
cmd.Flags().BoolVar(&getCountOnly, "count-only", false, "Get only the count")
|
||||
cmd.Flags().BoolVar(&printValueOnly, "print-value-only", false, `Only write values when using the "simple" output format`)
|
||||
return cmd
|
||||
}
|
||||
@ -64,6 +66,12 @@ func getCommandFunc(cmd *cobra.Command, args []string) {
|
||||
ExitWithError(ExitError, err)
|
||||
}
|
||||
|
||||
if getCountOnly {
|
||||
if _, fields := display.(*fieldsPrinter); !fields {
|
||||
ExitWithError(ExitBadArgs, fmt.Errorf("--count-only is only for `--write-out=fields`"))
|
||||
}
|
||||
}
|
||||
|
||||
if printValueOnly {
|
||||
dp, simple := (display).(*simplePrinter)
|
||||
if !simple {
|
||||
@ -83,6 +91,10 @@ func getGetOp(args []string) (string, []clientv3.OpOption) {
|
||||
ExitWithError(ExitBadArgs, fmt.Errorf("`--prefix` and `--from-key` cannot be set at the same time, choose one"))
|
||||
}
|
||||
|
||||
if getKeysOnly && getCountOnly {
|
||||
ExitWithError(ExitBadArgs, fmt.Errorf("`--keys-only` and `--count-only` cannot be set at the same time, choose one"))
|
||||
}
|
||||
|
||||
opts := []clientv3.OpOption{}
|
||||
switch getConsistency {
|
||||
case "s":
|
||||
@ -159,5 +171,9 @@ func getGetOp(args []string) (string, []clientv3.OpOption) {
|
||||
opts = append(opts, clientv3.WithKeysOnly())
|
||||
}
|
||||
|
||||
if getCountOnly {
|
||||
opts = append(opts, clientv3.WithCountOnly())
|
||||
}
|
||||
|
||||
return key, opts
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user