mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-03-08 16:39:29 +00:00
Several packages are only used while running the e2e suite. These packages are less important to update, as the they can not influence the final executable that is part of the Ceph-CSI container-image. By moving these dependencies out of the main Ceph-CSI go.mod, it is easier to identify if a reported CVE affects Ceph-CSI, or only the testing (like most of the Kubernetes CVEs). Signed-off-by: Niels de Vos <ndevos@ibm.com>
65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
package govalidator
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"reflect"
|
|
"strconv"
|
|
)
|
|
|
|
// ToString convert the input to a string.
|
|
func ToString(obj interface{}) string {
|
|
res := fmt.Sprintf("%v", obj)
|
|
return string(res)
|
|
}
|
|
|
|
// ToJSON convert the input to a valid JSON string
|
|
func ToJSON(obj interface{}) (string, error) {
|
|
res, err := json.Marshal(obj)
|
|
if err != nil {
|
|
res = []byte("")
|
|
}
|
|
return string(res), err
|
|
}
|
|
|
|
// ToFloat convert the input string to a float, or 0.0 if the input is not a float.
|
|
func ToFloat(str string) (float64, error) {
|
|
res, err := strconv.ParseFloat(str, 64)
|
|
if err != nil {
|
|
res = 0.0
|
|
}
|
|
return res, err
|
|
}
|
|
|
|
// ToInt convert the input string or any int type to an integer type 64, or 0 if the input is not an integer.
|
|
func ToInt(value interface{}) (res int64, err error) {
|
|
val := reflect.ValueOf(value)
|
|
|
|
switch value.(type) {
|
|
case int, int8, int16, int32, int64:
|
|
res = val.Int()
|
|
case uint, uint8, uint16, uint32, uint64:
|
|
res = int64(val.Uint())
|
|
case string:
|
|
if IsInt(val.String()) {
|
|
res, err = strconv.ParseInt(val.String(), 0, 64)
|
|
if err != nil {
|
|
res = 0
|
|
}
|
|
} else {
|
|
err = fmt.Errorf("math: square root of negative number %g", value)
|
|
res = 0
|
|
}
|
|
default:
|
|
err = fmt.Errorf("math: square root of negative number %g", value)
|
|
res = 0
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// ToBoolean convert the input string to a boolean.
|
|
func ToBoolean(str string) (bool, error) {
|
|
return strconv.ParseBool(str)
|
|
}
|