mirror of
https://codeberg.org/scip/esctl.git
synced 2026-08-24 07:54:17 +02:00
add index template {ls,sh} (#33)
This commit is contained in:
@@ -21,6 +21,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
@@ -397,3 +398,44 @@ func getClusterData(es *elasticsearch.TypedClient, wg *sync.WaitGroup, reschan c
|
||||
|
||||
reschan <- ar
|
||||
}
|
||||
|
||||
// recursively traverse the raw settings hash and build a flat map
|
||||
// consisting of the translated path and its value.
|
||||
//
|
||||
// e.g.
|
||||
// logger:
|
||||
//
|
||||
// org:
|
||||
// elasticsearch:
|
||||
// transport:
|
||||
// OutboundHandler: "ERROR"
|
||||
//
|
||||
// gets:
|
||||
//
|
||||
// logger.org.elasticsearch.transport.OutboundHandler: "ERROR"
|
||||
func getJsonPath(paths map[string]string, raw map[string]any, topic string) map[string]string {
|
||||
for name, data := range raw {
|
||||
path := topic + "." + name
|
||||
|
||||
switch value := data.(type) {
|
||||
case string:
|
||||
paths[path] = value
|
||||
case *string:
|
||||
paths[path] = *value
|
||||
case int:
|
||||
paths[path] = strconv.Itoa(value)
|
||||
case *int:
|
||||
paths[path] = strconv.Itoa(*value)
|
||||
case map[string]any:
|
||||
paths = getJsonPath(paths, value, path)
|
||||
case []any:
|
||||
val := []string{}
|
||||
for _, item := range value {
|
||||
val = append(val, fmt.Sprintf("%v", item))
|
||||
}
|
||||
paths[path] = strings.Join(val, ",")
|
||||
}
|
||||
}
|
||||
|
||||
return paths
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user