Coverage for curator/validators/options.py: 100%

13 statements  

« prev     ^ index     » next       coverage.py v7.3.0, created at 2023-08-16 15:27 -0600

1from voluptuous import Schema 

2from curator.defaults import option_defaults 

3 

4## Methods for building the schema 

5def action_specific(action): 

6 options = { 

7 'alias' : [ 

8 option_defaults.name(action), 

9 option_defaults.warn_if_no_indices(), 

10 option_defaults.extra_settings(), 

11 ], 

12 'allocation' : [ 

13 option_defaults.key(), 

14 option_defaults.value(), 

15 option_defaults.allocation_type(), 

16 option_defaults.wait_for_completion(action), 

17 option_defaults.wait_interval(action), 

18 option_defaults.max_wait(action), 

19 ], 

20 'close' : [ 

21 option_defaults.delete_aliases(), 

22 option_defaults.skip_flush(), 

23 option_defaults.ignore_sync_failures(), 

24 ], 

25 'cluster_routing' : [ 

26 option_defaults.routing_type(), 

27 option_defaults.cluster_routing_setting(), 

28 option_defaults.cluster_routing_value(), 

29 option_defaults.wait_for_completion(action), 

30 option_defaults.wait_interval(action), 

31 option_defaults.max_wait(action), 

32 ], 

33 'create_index' : [ 

34 option_defaults.name(action), 

35 option_defaults.ignore_existing(), 

36 option_defaults.extra_settings(), 

37 ], 

38 'delete_indices' : [], 

39 'delete_snapshots' : [ 

40 option_defaults.repository(), 

41 option_defaults.retry_interval(), 

42 option_defaults.retry_count(), 

43 ], 

44 'forcemerge' : [ 

45 option_defaults.delay(), 

46 option_defaults.max_num_segments(), 

47 ], 

48 'freeze': [], 

49 'index_settings' : [ 

50 option_defaults.index_settings(), 

51 option_defaults.ignore_unavailable(), 

52 option_defaults.preserve_existing(), 

53 ], 

54 'open' : [], 

55 'reindex' : [ 

56 option_defaults.request_body(), 

57 option_defaults.refresh(), 

58 option_defaults.requests_per_second(), 

59 option_defaults.slices(), 

60 option_defaults.timeout(action), 

61 option_defaults.wait_for_active_shards(action), 

62 option_defaults.wait_for_completion(action), 

63 option_defaults.wait_interval(action), 

64 option_defaults.max_wait(action), 

65 option_defaults.remote_certificate(), 

66 option_defaults.remote_client_cert(), 

67 option_defaults.remote_client_key(), 

68 option_defaults.remote_aws_key(), 

69 option_defaults.remote_aws_secret_key(), 

70 option_defaults.remote_aws_region(), 

71 option_defaults.remote_filters(), 

72 option_defaults.remote_url_prefix(), 

73 option_defaults.remote_ssl_no_validate(), 

74 option_defaults.migration_prefix(), 

75 option_defaults.migration_suffix(), 

76 ], 

77 'replicas' : [ 

78 option_defaults.count(), 

79 option_defaults.wait_for_completion(action), 

80 option_defaults.wait_interval(action), 

81 option_defaults.max_wait(action), 

82 ], 

83 'rollover' : [ 

84 option_defaults.name(action), 

85 option_defaults.new_index(), 

86 option_defaults.conditions(), 

87 option_defaults.extra_settings(), 

88 option_defaults.wait_for_active_shards(action), 

89 ], 

90 'restore' : [ 

91 option_defaults.repository(), 

92 option_defaults.name(action), 

93 option_defaults.indices(), 

94 option_defaults.ignore_unavailable(), 

95 option_defaults.include_aliases(), 

96 option_defaults.include_global_state(action), 

97 option_defaults.partial(), 

98 option_defaults.rename_pattern(), 

99 option_defaults.rename_replacement(), 

100 option_defaults.extra_settings(), 

101 option_defaults.wait_for_completion(action), 

102 option_defaults.wait_interval(action), 

103 option_defaults.max_wait(action), 

104 option_defaults.skip_repo_fs_check(), 

105 ], 

106 'snapshot' : [ 

107 option_defaults.repository(), 

108 option_defaults.name(action), 

109 option_defaults.ignore_unavailable(), 

110 option_defaults.include_global_state(action), 

111 option_defaults.partial(), 

112 option_defaults.wait_for_completion(action), 

113 option_defaults.wait_interval(action), 

114 option_defaults.max_wait(action), 

115 option_defaults.skip_repo_fs_check(), 

116 ], 

117 'shrink' : [ 

118 option_defaults.shrink_node(), 

119 option_defaults.node_filters(), 

120 option_defaults.number_of_shards(), 

121 option_defaults.number_of_replicas(), 

122 option_defaults.shrink_prefix(), 

123 option_defaults.shrink_suffix(), 

124 option_defaults.copy_aliases(), 

125 option_defaults.delete_after(), 

126 option_defaults.post_allocation(), 

127 option_defaults.wait_for_active_shards(action), 

128 option_defaults.extra_settings(), 

129 option_defaults.wait_for_completion(action), 

130 option_defaults.wait_for_rebalance(), 

131 option_defaults.wait_interval(action), 

132 option_defaults.max_wait(action), 

133 ], 

134 'unfreeze': [], 

135 } 

136 return options[action] 

137 

138def get_schema(action): 

139 # Appending the options dictionary seems to be the best way, since the 

140 # "Required" and "Optional" elements are hashes themselves. 

141 options = {} 

142 defaults = [ 

143 option_defaults.allow_ilm_indices(), 

144 option_defaults.continue_if_exception(), 

145 option_defaults.disable_action(), 

146 option_defaults.ignore_empty_list(), 

147 option_defaults.timeout_override(action), 

148 ] 

149 for each in defaults: 

150 options.update(each) 

151 for each in action_specific(action): 

152 options.update(each) 

153 return Schema(options)