conversion from string cells to any cells in printer.Table

This commit is contained in:
2026-07-07 06:30:07 +02:00
parent 033dd0ccd1
commit 2d8ecae73b
19 changed files with 135 additions and 157 deletions

View File

@@ -113,11 +113,11 @@ func CcrRemoteInfo(conf *cfg.Config, index string) error {
table := printer.NewTable(conf, 2, 5) table := printer.NewTable(conf, 2, 5)
table.Addheaders("ccr remote property", "value") table.Addheaders("ccr remote property", "value")
table.Entries = [][]string{ table.Entries = [][]any{
{"Remote Cluster", remote}, {"Remote Cluster", remote},
{"CCR Mode", mode}, {"CCR Mode", mode},
{"Connected", fmt.Sprintf("%t", info.Connected)}, {"Connected", info.Connected},
{"Num Proxy Sockets Connected", fmt.Sprintf("%d", info.NumProxySocketsConnected)}, {"Num Proxy Sockets Connected", info.NumProxySocketsConnected},
{"Proxy Address", info.ProxyAddress}, {"Proxy Address", info.ProxyAddress},
} }

View File

@@ -164,16 +164,16 @@ func CcrFollowerShow(conf *cfg.Config, index string) error {
table := printer.NewTable(conf, 2, 9) table := printer.NewTable(conf, 2, 9)
table.Addheaders("ccr follower property", "value") table.Addheaders("ccr follower property", "value")
table.Entries = [][]string{ table.Entries = [][]any{
{"name", index}, {"name", index},
{"remote_cluster", follower.RemoteCluster}, {"remote_cluster", follower.RemoteCluster},
{"leader_checkpoint", fmt.Sprintf("%d", follower.LeaderGlobalCheckpoint)}, {"leader_checkpoint", follower.LeaderGlobalCheckpoint},
{"follower_checkpoint", fmt.Sprintf("%d", follower.FollowerGlobalCheckpoint)}, {"follower_checkpoint", follower.FollowerGlobalCheckpoint},
{"bytes_read", fmt.Sprintf("%d", follower.BytesRead)}, {"bytes_read", follower.BytesRead},
{"failed_read_requests", fmt.Sprintf("%d", follower.FailedReadRequests)}, {"failed_read_requests", follower.FailedReadRequests},
{"failed_write_requests", fmt.Sprintf("%d", follower.FailedWriteRequests)}, {"failed_write_requests", follower.FailedWriteRequests},
{"successful_read_requests", fmt.Sprintf("%d", follower.SuccessfulReadRequests)}, {"successful_read_requests", follower.SuccessfulReadRequests},
{"successful_write_requests", fmt.Sprintf("%d", follower.SuccessfulWriteRequests)}, {"successful_write_requests", follower.SuccessfulWriteRequests},
} }
if err := table.Print(); err != nil { if err := table.Print(); err != nil {

View File

@@ -81,7 +81,7 @@ func ClusterList(conf *cfg.Config) error {
} }
} }
table.Entries[idx] = []string{name, cluster.Uri, reachableStr, current, errmsg} table.Entries[idx] = []any{name, cluster.Uri, reachableStr, current, errmsg}
idx++ idx++
} }
@@ -190,25 +190,25 @@ func ClusterStatus(conf *cfg.Config) error {
table := printer.NewTable(conf, 2, 7) table := printer.NewTable(conf, 2, 7)
table.Addheaders(conf.DefaultCluster.Name, "status") table.Addheaders(conf.DefaultCluster.Name, "status")
table.Entries = [][]string{ table.Entries = [][]any{
{"Cluster Name", res.health.ClusterName}, {"Cluster Name", res.health.ClusterName},
{"ES Status", printer.Colorize(conf, res.health.Status.Name, res.health.Status.Name)}, {"ES Status", printer.Colorize(conf, res.health.Status.Name, res.health.Status.Name)},
{"ES Version", res.info.Version.Int}, {"ES Version", res.info.Version.Int},
{"Is Leader", fmt.Sprintf("%t", isleader)}, {"Is Leader", isleader},
{"Active Shards", fmt.Sprintf("%d", res.health.ActiveShards)}, {"Active Shards", res.health.ActiveShards},
{"Active Primary Shards", fmt.Sprintf("%d", res.health.ActivePrimaryShards)}, {"Active Primary Shards", res.health.ActivePrimaryShards},
{"Unassigned Shards", fmt.Sprintf("%d", res.health.UnassignedShards)}, {"Unassigned Shards", res.health.UnassignedShards},
{"Unassigned Primary Shards", fmt.Sprintf("%d", res.health.UnassignedPrimaryShards)}, {"Unassigned Primary Shards", res.health.UnassignedPrimaryShards},
{"Pending Tasks", fmt.Sprintf("%d", res.health.NumberOfPendingTasks)}, {"Pending Tasks", res.health.NumberOfPendingTasks},
{"Nodes", fmt.Sprintf("%d", res.health.NumberOfNodes)}, {"Nodes", res.health.NumberOfNodes},
{"Red Indices", fmt.Sprintf("%d", redindices)}, {"Red Indices", redindices},
{"Long Running Tasks", fmt.Sprintf("%d", longtasks)}, {"Long Running Tasks", longtasks},
} }
if !isleader && res.ccr != nil { if !isleader && res.ccr != nil {
table.Entries = append(table.Entries, [][]string{ table.Entries = append(table.Entries, [][]any{
{"AutoFollow (success/failed indices)", ccrfollowing}, {"AutoFollow (success/failed indices)", ccrfollowing},
{"Followed Indices", fmt.Sprintf("%d", len(res.ccr.FollowStats.Indices))}, {"Followed Indices", len(res.ccr.FollowStats.Indices)},
}...) }...)
} }
@@ -219,15 +219,15 @@ func ClusterStatus(conf *cfg.Config) error {
if res.health.Status.Name != "green" { if res.health.Status.Name != "green" {
for name, indicator := range res.healthreport.Indicators { for name, indicator := range res.healthreport.Indicators {
if indicator.Status != "green" { if indicator.Status != "green" {
table.Entries = append(table.Entries, []string{ table.Entries = append(table.Entries, []any{
printer.Colorize(conf, indicator.Status, "Bad health "+name), indicator.Symptom, printer.Colorize(conf, indicator.Status, "Bad health "+name), indicator.Symptom,
}) })
for _, diag := range indicator.Diagnosis { for _, diag := range indicator.Diagnosis {
table.Entries = append(table.Entries, []string{" -> cause", diag.Cause}) table.Entries = append(table.Entries, []any{" -> cause", diag.Cause})
for resource, items := range diag.AffectedResources { for resource, items := range diag.AffectedResources {
table.Entries = append(table.Entries, []string{" -> affected " + resource, strings.Join(items, ",")}) table.Entries = append(table.Entries, []any{" -> affected " + resource, strings.Join(items, ",")})
} }
} }
} }
@@ -255,13 +255,13 @@ func gatherClusterStats(conf *cfg.Config, clusterstats *clusterstats.Response, t
clusterstats.Nodes.Jvm.Versions[0].VmVersion}, " ") clusterstats.Nodes.Jvm.Versions[0].VmVersion}, " ")
} }
table.Entries = append(table.Entries, [][]string{ table.Entries = append(table.Entries, [][]any{
{"Indicies", fmt.Sprintf("%d", clusterstats.Indices.Count)}, {"Indicies", fmt.Sprintf("%d", clusterstats.Indices.Count)},
{"Docs", fmt.Sprintf("%d", clusterstats.Indices.Docs.Count)}, {"Docs", fmt.Sprintf("%d", clusterstats.Indices.Docs.Count)},
{"Total Size", humanize.Bytes(uint64(clusterstats.Indices.Docs.TotalSizeInBytes))}, {"Total Size", printer.Bytes(clusterstats.Indices.Docs.TotalSizeInBytes)},
{"Total Queries", fmt.Sprintf("%d", querycount)}, {"Total Queries", "%d", querycount},
{"Shards Primaries", fmt.Sprintf("%d", clusterstats.Indices.Shards.Primaries)}, {"Shards Primaries", clusterstats.Indices.Shards.Primaries},
{"Shards Total", fmt.Sprintf("%d", clusterstats.Indices.Shards.Total)}, {"Shards Total", clusterstats.Indices.Shards.Total},
{"Storage", fmt.Sprintf( {"Storage", fmt.Sprintf(
"%s/%s", "%s/%s",
humanize.Bytes(uint64(clusterstats.Indices.Store.SizeInBytes)), humanize.Bytes(uint64(clusterstats.Indices.Store.SizeInBytes)),
@@ -272,11 +272,11 @@ func gatherClusterStats(conf *cfg.Config, clusterstats *clusterstats.Response, t
humanize.Bytes(uint64(clusterstats.Nodes.Jvm.Mem.HeapUsedInBytes)), humanize.Bytes(uint64(clusterstats.Nodes.Jvm.Mem.HeapUsedInBytes)),
humanize.Bytes(uint64(clusterstats.Nodes.Jvm.Mem.HeapMaxInBytes)), humanize.Bytes(uint64(clusterstats.Nodes.Jvm.Mem.HeapMaxInBytes)),
)}, )},
{"JVM Threads", fmt.Sprintf("%d", clusterstats.Nodes.Jvm.Threads)}, {"JVM Threads", clusterstats.Nodes.Jvm.Threads},
{"JVM Version", vmversion}, {"JVM Version", vmversion},
{"CPUs", fmt.Sprintf("%d", clusterstats.Nodes.Os.AllocatedProcessors)}, {"CPUs", clusterstats.Nodes.Os.AllocatedProcessors},
{"CPU Usage", fmt.Sprintf("%d%%", clusterstats.Nodes.Process.Cpu.Percent)}, {"CPU Usage", fmt.Sprintf("%d%%", clusterstats.Nodes.Process.Cpu.Percent)},
{"Open FDs", fmt.Sprintf("%d", clusterstats.Nodes.Process.OpenFileDescriptors.Avg)}, {"Open FDs", clusterstats.Nodes.Process.OpenFileDescriptors.Avg},
}...) }...)
return table return table

View File

@@ -40,7 +40,7 @@ func ClusterSettingsList(conf *cfg.Config) error {
table := printer.NewTable(conf, 2, 0) table := printer.NewTable(conf, 2, 0)
table.Addheaders("setting", "value") table.Addheaders("setting", "value")
entries := [][]string{} entries := [][]any{}
settingshash := res.Persistent // == map[string]json.RawMessage settingshash := res.Persistent // == map[string]json.RawMessage
@@ -52,7 +52,7 @@ func ClusterSettingsList(conf *cfg.Config) error {
} }
for topic, val := range settingshash { for topic, val := range settingshash {
entries = append(entries, []string{topic, string(val)}) entries = append(entries, []any{topic, string(val)})
} }
table.Entries = entries table.Entries = entries

View File

@@ -72,7 +72,7 @@ func checkClusterStatus(conf *cfg.Config, leader, follower string) bool {
table.Addheaders("setting", "leader:"+leader, "follower:"+follower) table.Addheaders("setting", "leader:"+leader, "follower:"+follower)
table.Entries = [][]string{ table.Entries = [][]any{
{"Cluster Name", status[leader].ClusterName, status[follower].ClusterName}, {"Cluster Name", status[leader].ClusterName, status[follower].ClusterName},
{"Cluster Status", {"Cluster Status",
printer.Colorize(conf, status[leader].Status.Name, status[leader].Status.Name), printer.Colorize(conf, status[leader].Status.Name, status[leader].Status.Name),
@@ -150,7 +150,7 @@ func findIlmErrors(conf *cfg.Config, leader, follower string) bool {
table.Addheaders("ilm errors on "+which, "errors") table.Addheaders("ilm errors on "+which, "errors")
for name, count := range failed[cluster] { for name, count := range failed[cluster] {
table.Entries[idx] = []string{name, count} table.Entries[idx] = []any{name, count}
idx++ idx++
} }
@@ -222,7 +222,7 @@ func findIndicesOnlyOnLeader(conf *cfg.Config, indices ClusterIndices, leader, f
for name, index := range indexOnlyOnLeader { for name, index := range indexOnlyOnLeader {
name := printer.Colorize(conf, "red", name) name := printer.Colorize(conf, "red", name)
table.Entries[idx] = []string{name, *index.DatasetSize, *index.DocsCount} table.Entries[idx] = []any{name, *index.DatasetSize, *index.DocsCount}
idx++ idx++
} }
@@ -270,7 +270,7 @@ func findOrphanedIndices(conf *cfg.Config, indices ClusterIndices, leader, follo
for name, index := range orphaned { for name, index := range orphaned {
name := printer.Colorize(conf, "red", name) name := printer.Colorize(conf, "red", name)
table.Entries[idx] = []string{name, *index.DatasetSize, *index.DocsCount} table.Entries[idx] = []any{name, *index.DatasetSize, *index.DocsCount}
idx++ idx++
} }
@@ -304,7 +304,7 @@ func findFailedFollowerIndices(conf *cfg.Config, indices ClusterIndices, followe
for name, index := range red { for name, index := range red {
name := printer.Colorize(conf, "red", name) name := printer.Colorize(conf, "red", name)
table.Entries[idx] = []string{name, *index.DatasetSize, *index.DocsCount} table.Entries[idx] = []any{name, *index.DatasetSize, *index.DocsCount}
idx++ idx++
} }

View File

@@ -25,7 +25,6 @@ import (
"codeberg.org/scip/esctl/pkg/cfg" "codeberg.org/scip/esctl/pkg/cfg"
"codeberg.org/scip/esctl/pkg/printer" "codeberg.org/scip/esctl/pkg/printer"
"github.com/dustin/go-humanize"
"github.com/elastic/go-elasticsearch/v9/typedapi/types" "github.com/elastic/go-elasticsearch/v9/typedapi/types"
) )
@@ -73,13 +72,13 @@ func DatastreamList(conf *cfg.Config) error {
policy = *ds.IlmPolicy policy = *ds.IlmPolicy
} }
table.Entries[idx] = []string{ table.Entries[idx] = []any{
name, name,
policy, policy,
fmt.Sprintf("%t", ds.Hidden), ds.Hidden,
fmt.Sprintf("%t", *ds.System), *ds.System,
fmt.Sprintf("%t", *ds.Replicated), *ds.Replicated,
fmt.Sprintf("%d", ds.Generation), ds.Generation,
ds.TimestampField.Name, ds.TimestampField.Name,
} }
@@ -156,18 +155,18 @@ func DatastreamShow(conf *cfg.Config, dsname string) error {
policy = *ds.IlmPolicy policy = *ds.IlmPolicy
} }
table.Entries = [][]string{ table.Entries = [][]any{
{"name", name}, {"name", name},
{"ilm policy", policy}, {"ilm policy", policy},
{"hidden", fmt.Sprintf("%t", ds.Hidden)}, {"hidden", ds.Hidden},
{"system", fmt.Sprintf("%t", *ds.System)}, {"system", *ds.System},
{"replicated", fmt.Sprintf("%t", *ds.Replicated)}, {"replicated", *ds.Replicated},
{"generation", fmt.Sprintf("%d", ds.Generation)}, {"generation", ds.Generation},
{"timestamp field", ds.TimestampField.Name}, {"timestamp field", ds.TimestampField.Name},
{"backing indices", fmt.Sprintf("%d", stats.BackingIndices)}, {"backing indices", stats.BackingIndices},
{"size", humanize.Bytes(uint64(stats.TotalStoreSizeBytes))}, {"size", printer.Bytes(stats.TotalStoreSizeBytes)},
{"shards-failed", fmt.Sprintf("%d", stats.Shards_.Failed)}, {"shards-failed", stats.Shards_.Failed},
{"shards-successful", fmt.Sprintf("%d", stats.Shards_.Successful)}, {"shards-successful", stats.Shards_.Successful},
} }
if err := table.Print(); err != nil { if err := table.Print(); err != nil {
@@ -183,10 +182,10 @@ func DatastreamShow(conf *cfg.Config, dsname string) error {
policy = *ds.IlmPolicy policy = *ds.IlmPolicy
} }
table.Entries[idx] = []string{ table.Entries[idx] = []any{
index.IndexName, index.IndexName,
index.IndexUuid, index.IndexUuid,
fmt.Sprintf("%t", *index.PreferIlm), *index.PreferIlm,
policy, policy,
index.ManagedBy.Name, index.ManagedBy.Name,
} }
@@ -235,10 +234,10 @@ func DatastreamRollover(conf *cfg.Config, ds string) error {
table := printer.NewTable(conf, 2, 5) table := printer.NewTable(conf, 2, 5)
table.Addheaders("rollover response", "value") table.Addheaders("rollover response", "value")
table.Entries = [][]string{ table.Entries = [][]any{
{"acknowledged", fmt.Sprintf("%t", res.Acknowledged)}, {"acknowledged", res.Acknowledged},
{"rolled over", fmt.Sprintf("%t", res.RolledOver)}, {"rolled over", res.RolledOver},
{"shards acknowledged", fmt.Sprintf("%t", res.ShardsAcknowledged)}, {"shards acknowledged", res.ShardsAcknowledged},
{"old index", res.OldIndex}, {"old index", res.OldIndex},
{"new index", res.NewIndex}, {"new index", res.NewIndex},
} }

View File

@@ -129,7 +129,7 @@ func IlmShow(conf *cfg.Config, policy string) error {
table := printer.NewTable(conf, 2, 5) table := printer.NewTable(conf, 2, 5)
table.Addheaders("ilm policy setting", "value") table.Addheaders("ilm policy setting", "value")
table.Entries = [][]string{ table.Entries = [][]any{
{"policy", policy}, {"policy", policy},
{"hot phase", ilmPhaseString(ilm.Policy.Phases.Hot, false)}, {"hot phase", ilmPhaseString(ilm.Policy.Phases.Hot, false)},
{"warm phase", ilmPhaseString(ilm.Policy.Phases.Warm, false)}, {"warm phase", ilmPhaseString(ilm.Policy.Phases.Warm, false)},
@@ -291,17 +291,17 @@ func IlmExplain(conf *cfg.Config, index string) error {
return fmt.Errorf("failed to unmarshal step info: %w", err) return fmt.Errorf("failed to unmarshal step info: %w", err)
} }
table.Entries = [][]string{ table.Entries = [][]any{
{"index", ilm.Index}, {"index", ilm.Index},
{"ilm policy", *ilm.Policy}, {"ilm policy", *ilm.Policy},
{"action", *ilm.Action}, {"action", *ilm.Action},
{"age", fmt.Sprintf("%s", ilm.Age)}, {"age", ilm.Age},
{"managed", fmt.Sprintf("%t", ilm.Managed)}, {"managed", ilm.Managed},
{"phase", *ilm.Phase}, {"phase", *ilm.Phase},
{"phase execution", ilmPhaseString(ilm.PhaseExecution.PhaseDefinition, false)}, {"phase execution", ilmPhaseString(ilm.PhaseExecution.PhaseDefinition, false)},
{"step", *ilm.Step}, {"step", *ilm.Step},
{"failed step", *ilm.FailedStep}, {"failed step", *ilm.FailedStep},
{"failed step retry count", fmt.Sprintf("%d", ilm.FailedStepRetryCount)}, {"failed step retry count", ilm.FailedStepRetryCount},
} }
if err := table.Print(); err != nil { if err := table.Print(); err != nil {

View File

@@ -119,13 +119,13 @@ func IlmForecastList(conf *cfg.Config, filter string) error {
virtualAge := virtualAge(&phase) virtualAge := virtualAge(&phase)
row := []string{ row := []any{
phase.index, phase.index,
humanize.Bytes(uint64(phase.size)), printer.Bytes(phase.size),
formatDuration(phase.age), formatDuration(phase.age),
formatDuration(virtualAge), formatDuration(virtualAge),
formatDuration(phase.minage), formatDuration(phase.minage),
humanize.Bytes(uint64(phase.minsize)), printer.Bytes(phase.minsize),
phase.currentPhase, phase.currentPhase,
phase.nextPhase, phase.nextPhase,
} }

View File

@@ -118,7 +118,7 @@ func IndexList(conf *cfg.Config) error {
for idx, index := range list { for idx, index := range list {
name := printer.Colorize(conf, *index.Health, *index.Index) name := printer.Colorize(conf, *index.Health, *index.Index)
table.Entries[idx] = []string{name, *index.DatasetSize, *index.DocsCount} table.Entries[idx] = []any{name, *index.DatasetSize, *index.DocsCount}
if idx == size-1 { if idx == size-1 {
break break
@@ -156,18 +156,18 @@ func IndexShow(conf *cfg.Config, indexpattern string) error {
created := time.Unix(ts/1000, 0) created := time.Unix(ts/1000, 0)
table.Entries = [][]string{ table.Entries = [][]any{
{"name", name}, {"name", name},
{"replicas", *index.Settings.Index.NumberOfReplicas}, {"replicas", *index.Settings.Index.NumberOfReplicas},
{"shards", *index.Settings.Index.NumberOfShards}, {"shards", *index.Settings.Index.NumberOfShards},
{"created", created.Format("2006-01-02 15:04:05")}, {"created", created},
{"uuid", *index.Settings.Index.Uuid}, {"uuid", *index.Settings.Index.Uuid},
{"version", *index.Settings.Index.Version.Created}, {"version", *index.Settings.Index.Version.Created},
{"fields", strings.Join(fields, ",")}, {"fields", fields},
} }
if index.Settings.Index.Lifecycle != nil { if index.Settings.Index.Lifecycle != nil {
table.Entries = append(table.Entries, [][]string{ table.Entries = append(table.Entries, [][]any{
{"ilm policy", *index.Settings.Index.Lifecycle.Name}, {"ilm policy", *index.Settings.Index.Lifecycle.Name},
{"ilm rollover alias", *index.Settings.Index.Lifecycle.RolloverAlias}, {"ilm rollover alias", *index.Settings.Index.Lifecycle.RolloverAlias},
}...) }...)
@@ -283,14 +283,14 @@ func IndexAllocation(conf *cfg.Config, index string) error {
roles[idx] = role.Name roles[idx] = role.Name
} }
table.Entries = [][]string{ table.Entries = [][]any{
{"Index", index}, {"Index", index},
{"Current node", currentNode.Name}, {"Current node", currentNode.Name},
{"Current k8s node", currentNode.Attributes["k8s_node_name"]}, {"Current k8s node", currentNode.Attributes["k8s_node_name"]},
{"Current node address", currentNode.TransportAddress}, {"Current node address", currentNode.TransportAddress},
{"Current node id", currentNode.Id}, {"Current node id", currentNode.Id},
{"Current node weight", fmt.Sprintf("%d", currentNode.WeightRanking)}, {"Current node weight", currentNode.WeightRanking},
{"Current node roles", strings.Join(roles, ",")}, {"Current node roles", roles},
{"Can rebalance cluster", res.CanRebalanceCluster.Name}, {"Can rebalance cluster", res.CanRebalanceCluster.Name},
{"Can rebalance to another node", res.CanRebalanceToOtherNode.Name}, {"Can rebalance to another node", res.CanRebalanceToOtherNode.Name},
{"Can remain on current node", res.CanRemainOnCurrentNode.Name}, {"Can remain on current node", res.CanRemainOnCurrentNode.Name},
@@ -344,10 +344,11 @@ func IndexFields(conf *cfg.Config, index string) error {
continue continue
} }
table.Entries = append(table.Entries, []string{name, fieldtype, table.AddRow(name, fieldtype,
fmt.Sprintf("%t", caps.Searchable), caps.Searchable,
fmt.Sprintf("%t", caps.Aggregatable), caps.Aggregatable,
fmt.Sprintf("%t", *caps.MetadataField)}) *caps.MetadataField)
break break
} }

View File

@@ -78,7 +78,7 @@ func IndexAliasList(conf *cfg.Config) error {
idx := 0 idx := 0
for index, aliases := range aliaslist { for index, aliases := range aliaslist {
table.Entries[idx] = []string{ table.Entries[idx] = []any{
index, index,
strings.Join(aliases, ","), strings.Join(aliases, ","),
} }
@@ -117,10 +117,10 @@ func IndexAliasRollover(conf *cfg.Config, alias string) error {
table := printer.NewTable(conf, 2, 5) table := printer.NewTable(conf, 2, 5)
table.Addheaders("rollover response", "value") table.Addheaders("rollover response", "value")
table.Entries = [][]string{ table.Entries = [][]any{
{"acknowledged", fmt.Sprintf("%t", res.Acknowledged)}, {"acknowledged", res.Acknowledged},
{"rolled over", fmt.Sprintf("%t", res.RolledOver)}, {"rolled over", res.RolledOver},
{"shards acknowledged", fmt.Sprintf("%t", res.ShardsAcknowledged)}, {"shards acknowledged", res.ShardsAcknowledged},
{"old index", res.OldIndex}, {"old index", res.OldIndex},
{"new index", res.NewIndex}, {"new index", res.NewIndex},
} }

View File

@@ -51,11 +51,7 @@ func IndexTemplateList(conf *cfg.Config) error {
return fmt.Errorf("failed to unmarshal meta json data: %w", err) return fmt.Errorf("failed to unmarshal meta json data: %w", err)
} }
table.Entries[idx] = []string{ table.Entries[idx] = []any{tpl.Name, desc, tpl.IndexTemplate.Priority}
tpl.Name,
string(desc),
fmt.Sprintf("%d", tpl.IndexTemplate.Priority),
}
} }
table.Sort() table.Sort()
@@ -94,13 +90,13 @@ func IndexTemplateShow(conf *cfg.Config, tplname string) error {
aliases = append(aliases, alias) aliases = append(aliases, alias)
} }
table.Entries = [][]string{ table.Entries = [][]any{
{"name", tpl.Name}, {"name", tpl.Name},
{"description", string(desc)}, {"description", desc},
{"index patterns", strings.Join(tpl.IndexTemplate.IndexPatterns, ",")}, {"index patterns", tpl.IndexTemplate.IndexPatterns},
{"composed of", strings.Join(tpl.IndexTemplate.ComposedOf, ",")}, {"composed of", tpl.IndexTemplate.ComposedOf},
{"data stream enabled", fmt.Sprintf("%t", hasds)}, {"data stream enabled", hasds},
{"aliases", strings.Join(aliases, ",")}, {"aliases", aliases},
} }
if err := table.Print(); err != nil { if err := table.Print(); err != nil {
@@ -136,9 +132,7 @@ func IndexTemplateShow(conf *cfg.Config, tplname string) error {
typeval = val.Type typeval = val.Type
} }
table.Entries = append(table.Entries, []string{ table.AddRow(name, typeval)
name, typeval,
})
} }
fmt.Println() fmt.Println()
@@ -414,12 +408,7 @@ func rolloverAliasIndexTemplate(conf *cfg.Config, name string) error {
return err return err
} }
table.Entries = append(table.Entries, []string{ table.AddRow(alias, res.RolledOver, res.Acknowledged, res.NewIndex)
alias,
fmt.Sprintf("%t", res.RolledOver),
fmt.Sprintf("%t", res.Acknowledged),
res.NewIndex,
})
if err := table.Print(); err != nil { if err := table.Print(); err != nil {
return err return err

View File

@@ -52,7 +52,7 @@ func getIndexTemplateSettings(conf *cfg.Config, tplname string, table *printer.T
tpl := data.IndexTemplates[0].IndexTemplate.Template.Settings tpl := data.IndexTemplates[0].IndexTemplate.Template.Settings
for topic, val := range tpl { for topic, val := range tpl {
table.Entries = append(table.Entries, []string{topic, fmt.Sprintf("%v", val)}) table.AddRow(topic, val)
} }
return nil return nil

View File

@@ -54,11 +54,11 @@ func LicenseShow(conf *cfg.Config) error {
maxunits = fmt.Sprintf("%d", *lic.MaxResourceUnits) maxunits = fmt.Sprintf("%d", *lic.MaxResourceUnits)
} }
table.Entries = [][]string{ table.Entries = [][]any{
{"UID", lic.Uid}, {"UID", lic.Uid},
{"Issued to", lic.IssuedTo}, {"Issued to", lic.IssuedTo},
{"Expires", expire}, {"Expires", expire},
{"Issued", lic.IssueDate.(string)}, {"Issued", lic.IssueDate},
{"Max nodes", maxnodes}, {"Max nodes", maxnodes},
{"Max resource units", maxunits}, {"Max resource units", maxunits},
{"Type", lic.Type.Name}, {"Type", lic.Type.Name},

View File

@@ -41,14 +41,14 @@ func NodeList(conf *cfg.Config) error {
table.Addheaders("name", "ip", "load1m", "load5m", "load15m", "ram %", "heap %") table.Addheaders("name", "ip", "load1m", "load5m", "load15m", "ram %", "heap %")
for idx, node := range nodes { for idx, node := range nodes {
table.Entries[idx] = []string{ table.Entries[idx] = []any{
*node.Name, *node.Name,
*node.Ip, *node.Ip,
*node.Load1M, *node.Load1M,
*node.Load5M, *node.Load5M,
*node.Load15M, *node.Load15M,
node.RamPercent.(string), node.RamPercent,
node.HeapPercent.(string), node.HeapPercent,
} }
} }
@@ -113,25 +113,25 @@ func NodeShow(conf *cfg.Config, nodename string) error {
k8snode := info.Attributes["k8s_node_name"] k8snode := info.Attributes["k8s_node_name"]
table.Entries = [][]string{ table.Entries = [][]any{
{"Id", id}, {"Id", id},
{"Name", nodename}, {"Name", nodename},
{"Kubernetes node", k8snode}, {"Kubernetes node", k8snode},
{"Ip address", info.Ip}, {"Ip address", info.Ip},
{"Node rank", *stat.AdaptiveSelection[id].Rank}, {"Node rank", *stat.AdaptiveSelection[id].Rank},
{"JVM", info.Jvm.VmName + " " + info.Jvm.Version}, {"JVM", info.Jvm.VmName + " " + info.Jvm.Version},
{"JVM Started", time.UnixMilli(info.Jvm.StartTimeInMillis).String()}, {"JVM Started", time.UnixMilli(info.Jvm.StartTimeInMillis)},
{"OS", info.Os.PrettyName + " " + info.Os.Version}, {"OS", info.Os.PrettyName + " " + info.Os.Version},
{"Node roles", strings.Join(roles, ",")}, {"Node roles", roles},
{"Node version", info.Version}, {"Node version", info.Version},
{"HTTP clients", fmt.Sprintf("%d", *stat.Http.CurrentOpen)}, {"HTTP clients", *stat.Http.CurrentOpen},
{"CPUs", fmt.Sprintf("%d", *info.Os.AllocatedProcessors)}, {"CPUs", *info.Os.AllocatedProcessors},
{"Load 15m/5m/1m", fmt.Sprintf("%.2f/%.2f/%.2f", {"Load 15m/5m/1m", fmt.Sprintf("%.2f/%.2f/%.2f",
stat.Os.Cpu.LoadAverage["15m"], stat.Os.Cpu.LoadAverage["15m"],
stat.Os.Cpu.LoadAverage["5m"], stat.Os.Cpu.LoadAverage["5m"],
stat.Os.Cpu.LoadAverage["1m"], stat.Os.Cpu.LoadAverage["1m"],
)}, )},
{"Open FD's", fmt.Sprintf("%d", *stat.Process.OpenFileDescriptors)}, {"Open FD's", *stat.Process.OpenFileDescriptors},
{"Response time avg", fmt.Sprintf("%dns", *stat.AdaptiveSelection[id].AvgResponseTimeNs)}, {"Response time avg", fmt.Sprintf("%dns", *stat.AdaptiveSelection[id].AvgResponseTimeNs)},
{"Memory usage (used/avail)", {"Memory usage (used/avail)",
humanize.Bytes(uint64(*stat.Os.Mem.UsedInBytes)) + " / " + humanize.Bytes(uint64(*stat.Os.Mem.TotalInBytes))}, humanize.Bytes(uint64(*stat.Os.Mem.UsedInBytes)) + " / " + humanize.Bytes(uint64(*stat.Os.Mem.TotalInBytes))},
@@ -139,7 +139,7 @@ func NodeShow(conf *cfg.Config, nodename string) error {
if len(stat.Fs.Data) > 0 { if len(stat.Fs.Data) > 0 {
fs := stat.Fs.Data[0] fs := stat.Fs.Data[0]
table.Entries = append(table.Entries, [][]string{ table.Entries = append(table.Entries, [][]any{
{"Storage usage (used/avail)", {"Storage usage (used/avail)",
humanize.Bytes(uint64(*fs.AvailableInBytes)) + " / " + humanize.Bytes(uint64(*fs.TotalInBytes))}, humanize.Bytes(uint64(*fs.AvailableInBytes)) + " / " + humanize.Bytes(uint64(*fs.TotalInBytes))},
{"Storage mount", *fs.Mount}, {"Storage mount", *fs.Mount},

View File

@@ -20,7 +20,6 @@ import (
"context" "context"
"fmt" "fmt"
"log/slog" "log/slog"
"strings"
"codeberg.org/scip/esctl/pkg/cfg" "codeberg.org/scip/esctl/pkg/cfg"
"codeberg.org/scip/esctl/pkg/printer" "codeberg.org/scip/esctl/pkg/printer"
@@ -58,10 +57,10 @@ func RoleList(conf *cfg.Config) error {
idx := 0 idx := 0
for name, role := range res { for name, role := range res {
table.Entries[idx] = []string{ table.Entries[idx] = []any{
name, name,
fmt.Sprintf("%d", len(role.Cluster)), role.Cluster,
fmt.Sprintf("%d", len(role.Indices)), role.Indices,
} }
idx++ idx++
} }
@@ -140,10 +139,8 @@ func roleRemoteClusters(conf *cfg.Config, role types.Role) error {
perms = append(perms, perm.Name) perms = append(perms, perm.Name)
} }
table.Entries[idx] = []string{ table.Entries[idx] = []any{priv.Clusters, perms}
strings.Join(priv.Clusters, ","),
strings.Join(perms, ","),
}
idx++ idx++
} }
@@ -160,7 +157,7 @@ func roleClusters(conf *cfg.Config, role types.Role) error {
table.Addheaders("cluster rights") table.Addheaders("cluster rights")
idx := 0 idx := 0
for _, cluster := range role.Cluster { for _, cluster := range role.Cluster {
table.Entries[idx] = []string{cluster.Name} table.Entries[idx] = []any{cluster.Name}
idx++ idx++
} }
@@ -182,11 +179,7 @@ func roleRemoteIndices(conf *cfg.Config, role types.Role) error {
perms = append(perms, perm.Name) perms = append(perms, perm.Name)
} }
table.Entries[idx] = []string{ table.Entries[idx] = []any{priv.Names, perms, *priv.AllowRestrictedIndices}
strings.Join(priv.Names, ", "),
strings.Join(perms, ", "),
fmt.Sprintf("%t", *priv.AllowRestrictedIndices),
}
idx++ idx++
} }
@@ -209,11 +202,7 @@ func roleIndices(conf *cfg.Config, role types.Role) error {
perms = append(perms, perm.Name) perms = append(perms, perm.Name)
} }
table.Entries[idx] = []string{ table.Entries[idx] = []any{priv.Names, perms, *priv.AllowRestrictedIndices}
strings.Join(priv.Names, ", "),
strings.Join(perms, ", "),
fmt.Sprintf("%t", *priv.AllowRestrictedIndices),
}
idx++ idx++
} }
@@ -231,10 +220,10 @@ func roleApplications(conf *cfg.Config, role types.Role) error {
table.Addheaders("application", "privileges", "resources") table.Addheaders("application", "privileges", "resources")
idx := 0 idx := 0
for _, priv := range role.Applications { for _, priv := range role.Applications {
table.Entries[idx] = []string{ table.Entries[idx] = []any{
priv.Application, priv.Application,
strings.Join(priv.Privileges, ", "), priv.Privileges,
strings.Join(priv.Resources, ", "), priv.Resources,
} }
idx++ idx++

View File

@@ -229,7 +229,7 @@ func RoleDiff(conf *cfg.Config, csvfile, role string) error {
defined = printer.Colorize(conf, "red", "undefined") defined = printer.Colorize(conf, "red", "undefined")
} }
table.Entries[idx] = []string{ table.Entries[idx] = []any{
row.name, row.name,
deployed, deployed,
defined, defined,

View File

@@ -107,7 +107,7 @@ func printShards(conf *cfg.Config, shardlist shards.Response) error {
for idx, shard := range shardlist { for idx, shard := range shardlist {
name := colorzizeShard(conf, *shard.State, *shard.Index) name := colorzizeShard(conf, *shard.State, *shard.Index)
table.Entries[idx] = []string{ table.Entries[idx] = []any{
name, name,
*shard.Shard, *shard.Shard,
resolvePrirep(*shard.Prirep), resolvePrirep(*shard.Prirep),

View File

@@ -88,7 +88,7 @@ func SnapshotList(conf *cfg.Config) error {
table.Addheaders("name", "index", "start", "orphaned", "status") table.Addheaders("name", "index", "start", "orphaned", "status")
for idx, snap := range snapshots { for idx, snap := range snapshots {
table.Entries[idx] = []string{ table.Entries[idx] = []any{
snap.Name, snap.Name,
snap.Forindex, snap.Forindex,
snap.Start, snap.Start,
@@ -122,20 +122,20 @@ func SnapshotShow(conf *cfg.Config, snapshot string) error {
snap := res.Snapshots[0] snap := res.Snapshots[0]
table.Entries = [][]string{ table.Entries = [][]any{
{"snapshot", snapshot}, {"snapshot", snapshot},
{"uuid", snap.Uuid}, {"uuid", snap.Uuid},
{"repository", *snap.Repository}, {"repository", *snap.Repository},
{"version_id", fmt.Sprintf("%d", snap.VersionId)}, {"version_id", snap.VersionId},
{"version", *snap.Version}, {"version", *snap.Version},
{"include_global_state", fmt.Sprintf("%t", *snap.IncludeGlobalState)}, {"include_global_state", *snap.IncludeGlobalState},
{"state", *snap.State}, {"state", *snap.State},
{"start_time", fmt.Sprintf("%s", snap.StartTime)}, {"start_time", snap.StartTime},
{"end_time", fmt.Sprintf("%s", snap.EndTime)}, {"end_time", snap.EndTime},
{"duration_in_millis", fmt.Sprintf("%d", *snap.DurationInMillis)}, {"duration_in_millis", *snap.DurationInMillis},
{"shards-total", fmt.Sprintf("%d", snap.Shards.Total)}, {"shards-total", snap.Shards.Total},
{"shards-failed", fmt.Sprintf("%d", snap.Shards.Failed)}, {"shards-failed", snap.Shards.Failed},
{"shards-successful", fmt.Sprintf("%d", snap.Shards.Successful)}, {"shards-successful", snap.Shards.Successful},
} }
if err := table.Print(); err != nil { if err := table.Print(); err != nil {

View File

@@ -49,10 +49,10 @@ func TaskList(conf *cfg.Config) error {
ts = time.Unix(int64(epc/1000), 0) ts = time.Unix(int64(epc/1000), 0)
} }
table.Entries[idx] = []string{ table.Entries[idx] = []any{
*task.TaskId, *task.TaskId,
*task.Action, *task.Action,
ts.Format("2006-01-02T15:04:05"), ts,
*task.RunningTime, *task.RunningTime,
*task.Node, *task.Node,
*task.Type, *task.Type,