mirror of
https://github.com/kubescape/kubescape.git
synced 2026-04-15 06:58:11 +00:00
* store scan results in storage Signed-off-by: Amir Malka <amirm@armosec.io> * store scan results in storage Signed-off-by: Amir Malka <amirm@armosec.io> * save resources in their namespaces, load namespace from env var, extend the config obj Signed-off-by: Amir Malka <amirm@armosec.io> * setting context name Signed-off-by: Amir Malka <amirm@armosec.io> * updated k8s-interface Signed-off-by: Amir Malka <amirm@armosec.io> * scanning a deleted resource Signed-off-by: Amir Malka <amirm@armosec.io> * cr changes Signed-off-by: Amir Malka <amirm@armosec.io> * cr changes Signed-off-by: Amir Malka <amirm@armosec.io> * fix Signed-off-by: Amir Malka <amirm@armosec.io> * remove unused constants Signed-off-by: Amir Malka <amirm@armosec.io> * use t.Setenv Signed-off-by: Amir Malka <amirm@armosec.io> * added tests for rbac triplet slugs Signed-off-by: Amir Malka <amirm@armosec.io> * updated namespace logic Signed-off-by: Amir Malka <amirm@armosec.io> * fix test Signed-off-by: Amir Malka <amirm@armosec.io> --------- Signed-off-by: Amir Malka <amirm@armosec.io>
80 lines
1.6 KiB
Go
80 lines
1.6 KiB
Go
package cautils
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"sort"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func ConvertLabelsToString(labels map[string]string) string {
|
|
labelsStr := ""
|
|
delimiter := ""
|
|
for k, v := range labels {
|
|
labelsStr += fmt.Sprintf("%s%s=%s", delimiter, k, v)
|
|
delimiter = ";"
|
|
}
|
|
return labelsStr
|
|
}
|
|
|
|
// ConvertStringToLabels convert a string "a=b;c=d" to map: {"a":"b", "c":"d"}
|
|
func ConvertStringToLabels(labelsStr string) map[string]string {
|
|
labels := make(map[string]string)
|
|
labelsSlice := strings.Split(labelsStr, ";")
|
|
if len(labelsSlice)%2 != 0 {
|
|
return labels
|
|
}
|
|
for i := range labelsSlice {
|
|
kvSlice := strings.Split(labelsSlice[i], "=")
|
|
if len(kvSlice) != 2 {
|
|
continue
|
|
}
|
|
labels[kvSlice[0]] = kvSlice[1]
|
|
}
|
|
return labels
|
|
}
|
|
|
|
func StringSlicesAreEqual(a, b []string) bool {
|
|
if len(a) != len(b) {
|
|
return false
|
|
}
|
|
|
|
sort.Strings(a)
|
|
sort.Strings(b)
|
|
for i := range a {
|
|
if a[i] != b[i] {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|
|
|
|
func ParseIntEnvVar(varName string, defaultValue int) (int, error) {
|
|
varValue, exists := os.LookupEnv(varName)
|
|
if !exists {
|
|
return defaultValue, nil
|
|
}
|
|
|
|
intValue, err := strconv.Atoi(varValue)
|
|
if err != nil {
|
|
return defaultValue, fmt.Errorf("failed to parse %s env var as int: %w", varName, err)
|
|
}
|
|
|
|
return intValue, nil
|
|
}
|
|
|
|
func ParseBoolEnvVar(varName string, defaultValue bool) (bool, error) {
|
|
varValue, exists := os.LookupEnv(varName)
|
|
if !exists {
|
|
return defaultValue, nil
|
|
}
|
|
|
|
boolValue, err := strconv.ParseBool(varValue)
|
|
if err != nil {
|
|
return defaultValue, fmt.Errorf("failed to parse %s env var as bool: %w", varName, err)
|
|
}
|
|
|
|
return boolValue, nil
|
|
}
|