Skip to content

Commit

Permalink
Merge pull request #102 from github/uyumazhakan/remove-ilm
Browse files Browse the repository at this point in the history
Removing ILM Policy from Index is added
  • Loading branch information
UyumazHakan authored Dec 6, 2022
2 parents 2b93a65 + b0aeb1f commit a99df93
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
36 changes: 36 additions & 0 deletions es.go
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,18 @@ func (c *Client) GetIndices(index string) ([]Index, error) {
return indices, nil
}

// Get a subset of indices including hidden ones
func (c *Client) GetHiddenIndices(index string) ([]Index, error) {
var indices []Index
err := handleErrWithStruct(c.buildGetRequest(fmt.Sprintf("_cat/indices/%s?h=health,status,index,pri,rep,store.size,docs.count&expand_wildcards=open,closed,hidden", index)), &indices)

if err != nil {
return nil, err
}

return indices, nil
}

// Get all the aliases in the cluster.
//
// Use case: You want to see some basic info on all the aliases of the cluster
Expand Down Expand Up @@ -1673,3 +1685,27 @@ func (c *Client) AllocateStalePrimaryShard(node, index string, shard int) error

return nil
}

// RemoveIndexILMPolicy removes the ILM policy from the index
func (c *Client) RemoveIndexILMPolicy(index string) error {
agent := c.buildPostRequest(fmt.Sprintf("%s/_ilm/remove", index))

_, err := handleErrWithBytes(agent)
if err != nil {
return err
}

ilmHistoryIndices, err := c.GetHiddenIndices(fmt.Sprintf("%s*.ds-ilm-history-*", index))
if err != nil {
return err
}

for _, ilmHistoryIndex := range ilmHistoryIndices {
err = c.DeleteIndex(ilmHistoryIndex.Name)
if err != nil {
return err
}
}

return nil
}
21 changes: 21 additions & 0 deletions es_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2212,3 +2212,24 @@ func TestAllocateStalePrimaryShard(t *testing.T) {
t.Fatalf("Unexpected error. expected nil, got %s", err)
}
}

func TestRemoveIndexILMPolicy(t *testing.T) {
ilmRemoveTestSetup := &ServerSetup{
Method: "POST",
Path: "/test-index/_ilm/remove",
}
getIndicesTestSetup := &ServerSetup{
Method: "GET",
Path: "/_cat/indices/test-index*.ds-ilm-history-*",
Response: "[]",
}

host, port, ts := setupTestServers(t, []*ServerSetup{ilmRemoveTestSetup, getIndicesTestSetup})
defer ts.Close()
client := NewClient(host, port)

err := client.RemoveIndexILMPolicy("test-index")
if err != nil {
t.Fatalf("Unexpected error. expected nil, got %s", err)
}
}

0 comments on commit a99df93

Please sign in to comment.