1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# Licensed to Elasticsearch B.V under one or more agreements.
# Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
# See the LICENSE file in the project root for more information
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
class IlmClient(NamespacedClient):
@query_params()
async def delete_lifecycle(self, policy, params=None, headers=None):
"""
Deletes the specified lifecycle policy definition. A currently used policy
cannot be deleted.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.8/ilm-delete-lifecycle.html>`_
:arg policy: The name of the index lifecycle policy
"""
if policy in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'policy'.")
return await self.transport.perform_request(
"DELETE",
_make_path("_ilm", "policy", policy),
params=params,
headers=headers,
)
@query_params("only_errors", "only_managed")
async def explain_lifecycle(self, index, params=None, headers=None):
"""
Retrieves information about the index's current lifecycle state, such as the
currently executing phase, action, and step.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.8/ilm-explain-lifecycle.html>`_
:arg index: The name of the index to explain
:arg only_errors: filters the indices included in the response
to ones in an ILM error state, implies only_managed
:arg only_managed: filters the indices included in the response
to ones managed by ILM
"""
if index in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'index'.")
return await self.transport.perform_request(
"GET", _make_path(index, "_ilm", "explain"), params=params, headers=headers
)
@query_params()
async def get_lifecycle(self, policy=None, params=None, headers=None):
"""
Returns the specified policy definition. Includes the policy version and last
modified date.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.8/ilm-get-lifecycle.html>`_
:arg policy: The name of the index lifecycle policy
"""
return await self.transport.perform_request(
"GET", _make_path("_ilm", "policy", policy), params=params, headers=headers
)
@query_params()
async def get_status(self, params=None, headers=None):
"""
Retrieves the current index lifecycle management (ILM) status.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.8/ilm-get-status.html>`_
"""
return await self.transport.perform_request(
"GET", "/_ilm/status", params=params, headers=headers
)
@query_params()
async def move_to_step(self, index, body=None, params=None, headers=None):
"""
Manually moves an index into the specified step and executes that step.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.8/ilm-move-to-step.html>`_
:arg index: The name of the index whose lifecycle step is to
change
:arg body: The new lifecycle step to move to
"""
if index in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'index'.")
return await self.transport.perform_request(
"POST",
_make_path("_ilm", "move", index),
params=params,
headers=headers,
body=body,
)
@query_params()
async def put_lifecycle(self, policy, body=None, params=None, headers=None):
"""
Creates a lifecycle policy
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.8/ilm-put-lifecycle.html>`_
:arg policy: The name of the index lifecycle policy
:arg body: The lifecycle policy definition to register
"""
if policy in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'policy'.")
return await self.transport.perform_request(
"PUT",
_make_path("_ilm", "policy", policy),
params=params,
headers=headers,
body=body,
)
@query_params()
async def remove_policy(self, index, params=None, headers=None):
"""
Removes the assigned lifecycle policy and stops managing the specified index
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.8/ilm-remove-policy.html>`_
:arg index: The name of the index to remove policy on
"""
if index in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'index'.")
return await self.transport.perform_request(
"POST", _make_path(index, "_ilm", "remove"), params=params, headers=headers
)
@query_params()
async def retry(self, index, params=None, headers=None):
"""
Retries executing the policy for an index that is in the ERROR step.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.8/ilm-retry-policy.html>`_
:arg index: The name of the indices (comma-separated) whose
failed lifecycle step is to be retry
"""
if index in SKIP_IN_PATH:
raise ValueError("Empty value passed for a required argument 'index'.")
return await self.transport.perform_request(
"POST", _make_path(index, "_ilm", "retry"), params=params, headers=headers
)
@query_params()
async def start(self, params=None, headers=None):
"""
Start the index lifecycle management (ILM) plugin.
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.8/ilm-start.html>`_
"""
return await self.transport.perform_request(
"POST", "/_ilm/start", params=params, headers=headers
)
@query_params()
async def stop(self, params=None, headers=None):
"""
Halts all lifecycle management operations and stops the index lifecycle
management (ILM) plugin
`<https://www.elastic.co/guide/en/elasticsearch/reference/7.8/ilm-stop.html>`_
"""
return await self.transport.perform_request(
"POST", "/_ilm/stop", params=params, headers=headers
)