1// Copyright 2012-present Oliver Eilhard. All rights reserved. 2// Use of this source code is governed by a MIT-license. 3// See http://olivere.mit-license.org/license.txt for details. 4 5package elastic 6 7import ( 8 "context" 9 "testing" 10) 11 12func TestXPackIlmPolicyLifecycle(t *testing.T) { 13 client := setupTestClient(t, SetURL("http://elastic:elastic@localhost:9210")) 14 15 testPolicyName := "test-policy" 16 17 body := `{ 18 "policy": { 19 "phases": { 20 "delete": { 21 "min_age": "20m", 22 "actions": { 23 "delete": {} 24 } 25 } 26 } 27 } 28 }` 29 30 // Create the policy 31 putilm, err := client.XPackIlmPutLifecycle().Policy(testPolicyName).BodyString(body).Do(context.TODO()) 32 if err != nil { 33 t.Fatalf("expected put lifecycle to succeed; got: %v", err) 34 } 35 if putilm == nil { 36 t.Fatalf("expected put lifecycle response; got: %v", putilm) 37 } 38 if !putilm.Acknowledged { 39 t.Fatalf("expected put lifecycle ack; got: %v", putilm.Acknowledged) 40 } 41 42 // Get the policy 43 getilm, err := client.XPackIlmGetLifecycle().Policy(testPolicyName).Do(context.TODO()) 44 if err != nil { 45 t.Fatalf("expected get lifecycle to succeed; got: %v", err) 46 } 47 if getilm == nil { 48 t.Fatalf("expected get lifecycle response; got: %v", getilm) 49 } 50 51 // Check the policy exists 52 _, found := getilm[testPolicyName] 53 if !found { 54 t.Fatalf("expected to get policy for %q", testPolicyName) 55 } 56 57 // Delete the policy 58 delilm, err := client.XPackIlmDeleteLifecycle().Policy(testPolicyName).Do(context.TODO()) 59 if err != nil { 60 t.Fatalf("expected deletelifecycle to succeed; got: %v", err) 61 } 62 if delilm == nil { 63 t.Fatalf("expected delete lifecycle response; got: %v", delilm) 64 } 65 if !delilm.Acknowledged { 66 t.Fatalf("expected delete lifecycle ack; got: %v", delilm.Acknowledged) 67 } 68 69 // Get the policy 70 getilm, err = client.XPackIlmGetLifecycle().Policy(testPolicyName).Do(context.TODO()) 71 if err == nil { 72 t.Fatalf("expected lifecycle to be deleted; got: %v", getilm) 73 } 74} 75