File: delete.py

package info (click to toggle)
elasticsearch-curator 8.0.21-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 2,716 kB
  • sloc: python: 17,838; makefile: 159; sh: 156
file content (111 lines) | stat: -rw-r--r-- 3,099 bytes parent folder | download
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
"""Delete Index and Delete Snapshot Singletons"""

# pylint: disable=R0913,R0917
import click
from curator.cli_singletons.object_class import CLIAction
from curator.cli_singletons.utils import validate_filter_json


# Indices
@click.command()
@click.option(
    '--search_pattern',
    type=str,
    default='*',
    help='Elasticsearch Index Search Pattern',
)
@click.option(
    '--ignore_empty_list',
    is_flag=True,
    help='Do not raise exception if there are no actionable indices',
)
@click.option(
    '--allow_ilm_indices/--no-allow_ilm_indices',
    help='Allow Curator to operate on Index Lifecycle Management monitored indices.',
    default=False,
    show_default=True,
)
@click.option(
    '--filter_list',
    callback=validate_filter_json,
    help='JSON array of filters selecting indices to act on.',
    required=True,
)
@click.pass_context
def delete_indices(
    ctx, search_pattern, ignore_empty_list, allow_ilm_indices, filter_list
):
    """
    Delete Indices
    """
    # ctx.info_name is the name of the function or name specified in @click.command
    # decorator
    action = CLIAction(
        'delete_indices',
        ctx.obj['configdict'],
        {'search_pattern': search_pattern, 'allow_ilm_indices': allow_ilm_indices},
        filter_list,
        ignore_empty_list,
    )
    action.do_singleton_action(dry_run=ctx.obj['dry_run'])


# Snapshots
@click.command()
@click.option('--repository', type=str, required=True, help='Snapshot repository name')
@click.option('--retry_count', type=int, help='Number of times to retry (max 3)')
@click.option('--retry_interval', type=int, help='Time in seconds between retries')
@click.option(
    '--ignore_empty_list',
    is_flag=True,
    help='Do not raise exception if there are no actionable snapshots',
)
@click.option(
    '--allow_ilm_indices/--no-allow_ilm_indices',
    help='Allow Curator to operate on Index Lifecycle Management monitored indices.',
    default=False,
    show_default=True,
)
@click.option(
    '--include_hidden/--no-include_hidden',
    help='Allow Curator to operate on hidden indices (and data_streams).',
    default=False,
    show_default=True,
)
@click.option(
    '--filter_list',
    callback=validate_filter_json,
    help='JSON array of filters selecting snapshots to act on.',
    required=True,
)
@click.pass_context
def delete_snapshots(
    ctx,
    repository,
    retry_count,
    retry_interval,
    ignore_empty_list,
    allow_ilm_indices,
    include_hidden,
    filter_list,
):
    """
    Delete Snapshots
    """
    manual_options = {
        'retry_count': retry_count,
        'retry_interval': retry_interval,
        'allow_ilm_indices': allow_ilm_indices,
        'include_hidden': include_hidden,
    }
    # ctx.info_name is the name of the function or name specified in @click.command
    # decorator
    action = CLIAction(
        'delete_snapshots',
        ctx.obj['configdict'],
        manual_options,
        filter_list,
        ignore_empty_list,
        repository=repository,
    )
    action.do_singleton_action(dry_run=ctx.obj['dry_run'])