1
0
Fork 0
telegraf/migrations/utils.go
Daniel Baumann 4978089aab
Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-24 07:26:29 +02:00

37 lines
884 B
Go

package migrations
import (
"fmt"
)
type pluginTOMLStruct map[string]map[string][]interface{}
func CreateTOMLStruct(category, name string) pluginTOMLStruct {
return map[string]map[string][]interface{}{
category: {
name: make([]interface{}, 0),
},
}
}
func (p *pluginTOMLStruct) Add(category, name string, plugin interface{}) {
cfg := map[string]map[string][]interface{}(*p)
cfg[category][name] = append(cfg[category][name], plugin)
}
func AsStringSlice(raw interface{}) ([]string, error) {
rawList, ok := raw.([]interface{})
if !ok {
return nil, fmt.Errorf("unexpected type : %T", raw)
}
converted := make([]string, 0, len(rawList))
for _, rawElement := range rawList {
el, ok := rawElement.(string)
if !ok {
return nil, fmt.Errorf("unexpected type for list element: %T", rawElement)
}
converted = append(converted, el)
}
return converted, nil
}