forked from TrueCloudLab/frostfs-node
[#1065] adm: refactor dump-config
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
This commit is contained in:
parent
ffb1a6f81a
commit
0290f86579
1 changed files with 20 additions and 0 deletions
|
@ -105,12 +105,22 @@ func SetConfigCmd(cmd *cobra.Command, args []string) error {
|
|||
forceFlag, _ := cmd.Flags().GetBool(forceConfigSet)
|
||||
|
||||
bw := io.NewBufBinWriter()
|
||||
prm := make(map[string]any)
|
||||
|
||||
for _, arg := range args {
|
||||
k, v, err := parseConfigPair(arg, forceFlag)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
prm[k] = v
|
||||
}
|
||||
|
||||
if err := validateConfig(prm); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for k, v := range prm {
|
||||
// In NeoFS this is done via Notary contract. Here, however, we can form the
|
||||
// transaction locally. The first `nil` argument is required only for notary
|
||||
// disabled environment which is not supported by that command.
|
||||
|
@ -128,6 +138,16 @@ func SetConfigCmd(cmd *cobra.Command, args []string) error {
|
|||
return wCtx.AwaitTx()
|
||||
}
|
||||
|
||||
func validateConfig(args map[string]any) error {
|
||||
for k, v := range args {
|
||||
value, ok := v.(int64)
|
||||
if !ok || value < 0 {
|
||||
return fmt.Errorf("%s must be >= 0, got %v", k, v)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func parseConfigPair(kvStr string, force bool) (key string, val any, err error) {
|
||||
k, v, found := strings.Cut(kvStr, "=")
|
||||
if !found {
|
||||
|
|
Loading…
Reference in a new issue