Files
dokku/plugins/logs/set.go
2021-02-14 09:09:53 +09:00

59 lines
1.1 KiB
Go

package logs
import (
"errors"
"fmt"
"strconv"
)
func validateSetValue(appName string, key string, value string) error {
if key == "max-size" {
return validateMaxSize(appName, value)
}
if key == "vector-sink" {
return validateVectorSink(appName, value)
}
return nil
}
func validateMaxSize(appName string, value string) error {
if value == "" {
return nil
}
if value == "unlimited" {
return nil
}
last := value[len(value)-1:]
if last != "k" && last != "m" && last != "g" {
return errors.New("Invalid max-size unit measure, value must end in any of [k, m, g]")
}
if len(value) < 2 {
return errors.New("Invalid max-size value, must be a number followed by a unit of measure [k, m, g]")
}
number := value[:len(value)-1]
if _, err := strconv.Atoi(number); err != nil {
return fmt.Errorf("Invalid max-size value, unable to convert number to int: %s", err.Error())
}
return nil
}
func validateVectorSink(appName string, value string) error {
if value == "" {
return nil
}
_, err := sinkValueToConfig(appName, value)
if err != nil {
return err
}
return nil
}