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

1 from voluptuous import Schema

2 from curator.defaults import option_defaults

3

4## Methods for building the schema

5 def 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

138 def 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)