fix #53: shardsize to string, fix nil pointer, add cold phase (#54)

This commit is contained in:
T. von Dein
2026-06-26 11:25:30 +02:00
parent e3aa50af37
commit bbe72a474b
3 changed files with 48 additions and 8 deletions

View File

@@ -21,7 +21,7 @@ type Ilm struct {
HotMinAge string
HotRolloverMaxAge string
HotRolloverMaxPrimaryShardSize int64
HotRolloverMaxPrimaryShardSize string
HotRolloverMaxDocs int64
HotReadonly bool
@@ -35,7 +35,8 @@ type Ilm struct {
ColdForceMerge int
ColdPriority int
FrozenMinAge string
FrozenMinAge string
FrozenSearchableSnapshotRepo string
DeleteMinAge string
DeleteSearchableSnapshots bool
@@ -47,7 +48,7 @@ func (cfg *Ilm) HaveHot() bool {
return cfg.HotMinAge != "" ||
cfg.HotRolloverMaxAge != "" ||
cfg.HotRolloverMaxDocs > 0 ||
cfg.HotRolloverMaxPrimaryShardSize > 0 ||
cfg.HotRolloverMaxPrimaryShardSize != "" ||
cfg.HotReadonly
}

View File

@@ -245,7 +245,7 @@ func IlmCreate(conf *cfg.Config, policyname string) error {
haveroll = true
}
if cfg.HotRolloverMaxPrimaryShardSize != 0 {
if cfg.HotRolloverMaxPrimaryShardSize != "" {
rollover.MaxPrimaryShardSize = &cfg.HotRolloverMaxPrimaryShardSize
}
@@ -281,16 +281,50 @@ func IlmCreate(conf *cfg.Config, policyname string) error {
phases.PhasesCaster().Warm = &warm
}
if cfg.HaveCold() {
cold := types.Phase{}
var actions types.IlmActionsVariant = esdsl.NewIlmActions()
if cfg.ColdForceMerge != 0 {
actions.IlmActionsCaster().Forcemerge = &types.ForceMergeAction{MaxNumSegments: cfg.ColdForceMerge}
}
if cfg.ColdMinAge != "" {
cold.MinAge = cfg.ColdMinAge
}
if cfg.ColdPriority != 0 {
actions.IlmActionsCaster().SetPriority = &types.SetPriorityAction{Priority: &cfg.ColdPriority}
}
if cfg.ColdSearchableSnapshotRepo != "" {
actions.IlmActionsCaster().SearchableSnapshot =
&types.SearchableSnapshotAction{SnapshotRepository: cfg.ColdSearchableSnapshotRepo}
}
cold.Actions = actions.IlmActionsCaster()
phases.PhasesCaster().Cold = &cold
}
if cfg.HaveFrozen() {
froze := phases.PhasesCaster().Frozen
froze := types.Phase{}
var actions types.IlmActionsVariant = esdsl.NewIlmActions()
if cfg.FrozenMinAge != "" {
froze.MinAge = cfg.FrozenMinAge
}
if cfg.FrozenSearchableSnapshotRepo != "" {
actions.IlmActionsCaster().SearchableSnapshot =
&types.SearchableSnapshotAction{SnapshotRepository: cfg.FrozenSearchableSnapshotRepo}
}
froze.Actions = actions.IlmActionsCaster()
phases.PhasesCaster().Frozen = &froze
}
if cfg.HaveDelete() {
del := phases.PhasesCaster().Delete
del := types.Phase{}
delete := types.DeleteAction{}
var actions types.IlmActionsVariant = esdsl.NewIlmActions()
@@ -304,7 +338,7 @@ func IlmCreate(conf *cfg.Config, policyname string) error {
actions.IlmActionsCaster().Delete = &delete
del.Actions = actions.IlmActionsCaster()
phases.PhasesCaster().Delete = del
phases.PhasesCaster().Delete = &del
}
put := &putlifecycle.Request{}