mirror of
https://codeberg.org/scip/esctl.git
synced 2026-08-24 06:34:18 +02:00
feature add ilm-explain (#52)
This commit is contained in:
@@ -18,6 +18,7 @@ package es
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
@@ -26,6 +27,7 @@ import (
|
||||
"codeberg.org/scip/esctl/pkg/cfg"
|
||||
"codeberg.org/scip/esctl/pkg/printer"
|
||||
"github.com/alecthomas/repr"
|
||||
"github.com/charmbracelet/lipgloss"
|
||||
"github.com/elastic/go-elasticsearch/v9/typedapi/esdsl"
|
||||
"github.com/elastic/go-elasticsearch/v9/typedapi/ilm/putlifecycle"
|
||||
"github.com/elastic/go-elasticsearch/v9/typedapi/types"
|
||||
@@ -183,18 +185,38 @@ func IlmExplain(conf *cfg.Config, index string) error {
|
||||
table := printer.NewTable(conf, 2, 0)
|
||||
table.Addheaders("ilm status field", "value")
|
||||
|
||||
info := ""
|
||||
err = json.Unmarshal(ilm.StepInfo["reason"], &info)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to unmarshal step info: %w", err)
|
||||
}
|
||||
|
||||
table.Entries = [][]string{
|
||||
{"index", ilm.Index},
|
||||
{"ilm policy", *ilm.Policy},
|
||||
{"action", *ilm.Action},
|
||||
{"step", *ilm.Step},
|
||||
{"age", fmt.Sprintf("%s", ilm.Age)},
|
||||
{"managed", fmt.Sprintf("%t", ilm.Managed)},
|
||||
{"phase", *ilm.Phase},
|
||||
{"phase execution", ilmPhaseString(ilm.PhaseExecution.PhaseDefinition, false)},
|
||||
{"step", *ilm.Step},
|
||||
{"failed step", *ilm.FailedStep},
|
||||
{"failed step retry count", fmt.Sprintf("%d", ilm.FailedStepRetryCount)},
|
||||
}
|
||||
|
||||
return table.Print()
|
||||
if err := table.Print(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if info != "" {
|
||||
var bold = lipgloss.NewStyle().Bold(true)
|
||||
|
||||
fmt.Printf("\n%s:\n%s\n",
|
||||
bold.Render("Step Reason"),
|
||||
info)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func IlmCreate(conf *cfg.Config, policyname string) error {
|
||||
|
||||
Reference in New Issue
Block a user