in curator/actions/forcemerge.py [0:0]
def do_action(self):
"""
:py:meth:`~.elasticsearch.client.IndicesClient.forcemerge` indices in
:py:attr:`index_list`
"""
self.index_list.filter_closed()
self.index_list.filter_forceMerged(max_num_segments=self.max_num_segments)
self.index_list.empty_list_check()
msg = (
f'forceMerging {len(self.index_list.indices)} '
f'selected indices: {self.index_list.indices}'
)
self.loggit.info(msg)
try:
for index_name in self.index_list.indices:
msg = (
f'forceMerging index {index_name} to {self.max_num_segments} '
f'segments per shard. Please wait...'
)
self.loggit.info(msg)
self.client.indices.forcemerge(
index=index_name, max_num_segments=self.max_num_segments
)
if self.delay > 0:
self.loggit.info(
'Pausing for %s seconds before continuing...', self.delay
)
sleep(self.delay)
# pylint: disable=broad-except
except Exception as err:
report_failure(err)