Skip to content

Commit

Permalink
Merge pull request #837 from untergeek/fix/826
Browse files Browse the repository at this point in the history
Enable snapshot of .security in 2.4.2
  • Loading branch information
untergeek committed Dec 8, 2016
2 parents cba4801 + d32b2c0 commit 84cf03f
Show file tree
Hide file tree
Showing 14 changed files with 191 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ env:
- ES_VERSION=2.1.1
- ES_VERSION=2.2.2
- ES_VERSION=2.3.5
- ES_VERSION=2.4.0
- ES_VERSION=2.4.2
- ES_VERSION=5.0.0

os: linux
Expand Down
18 changes: 18 additions & 0 deletions curator/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,24 @@ def get_indices(client):
client.indices.get_settings(
index='_all', params={'expand_wildcards': 'open,closed'})
)
version_number = get_version(client)
logger.debug(
'Detected Elasticsearch version '
'{0}'.format(".".join(map(str,version_number)))
)
# This hack ONLY works if you're using 2.4.2 or higher, but is unneeded
# if you are using 5.0 or higher. See issue #826
if version_number >= (2, 4, 2) \
and version_number < (5, 0, 0):
logger.debug('Using Elasticsearch >= 2.4.2 < 5.0.0')
if client.indices.exists(index='.security'):
logger.debug(
'Found the ".security" index. '
'Adding to list of all indices'
)
# Double check to see if it's there before appending
if not '.security' in indices:
indices.append('.security')
logger.debug("All indices: {0}".format(indices))
return indices
except Exception as e:
Expand Down
2 changes: 2 additions & 0 deletions docs/Changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ Changelog
* ``--wait_for_completion`` should be `True` by default for Snapshot singleton
action. Reported in #829 (untergeek)
* Increase `version_max` to 5.1.99. Prematurely reported in #832 (untergeek)
* Make the '.security' index visible for snapshots so long as proper
credentials are used. Reported in #826 (untergeek)

4.2.3.post1 (22 November 2016)
------------------------------
Expand Down
12 changes: 12 additions & 0 deletions test/unit/test_action_alias.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ def test_init_raise(self):
self.assertRaises(curator.MissingArgument, curator.Alias)
def test_add_raises_on_missing_parameter(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -18,6 +19,7 @@ def test_add_raises_on_missing_parameter(self):
self.assertRaises(TypeError, ao.add)
def test_add_raises_on_invalid_parameter(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -26,6 +28,7 @@ def test_add_raises_on_invalid_parameter(self):
self.assertRaises(TypeError, ao.add, [])
def test_add_single(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -35,6 +38,7 @@ def test_add_single(self):
self.assertEqual(testvars.alias_one_add, ao.actions)
def test_add_single_with_extra_settings(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -47,6 +51,7 @@ def test_add_single_with_extra_settings(self):
self.assertEqual(testvars.alias_one_add_with_extras, ao.actions)
def test_remove_single(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -56,6 +61,7 @@ def test_remove_single(self):
self.assertEqual(testvars.alias_one_rm, ao.actions)
def test_add_multiple(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_two
client.cluster.state.return_value = testvars.clu_state_two
client.indices.stats.return_value = testvars.stats_two
Expand All @@ -66,6 +72,7 @@ def test_add_multiple(self):
self.assertEqual(testvars.alias_two_add, cmp)
def test_remove_multiple(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_two
client.cluster.state.return_value = testvars.clu_state_two
client.indices.stats.return_value = testvars.stats_two
Expand All @@ -76,6 +83,7 @@ def test_remove_multiple(self):
self.assertEqual(testvars.alias_two_rm, cmp)
def test_show_body(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -90,6 +98,7 @@ def test_show_body(self):
testvars.alias_one_body['actions'][1], body['actions'][1])
def test_raise_on_empty_body(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -98,6 +107,7 @@ def test_raise_on_empty_body(self):
self.assertRaises(curator.ActionError, ao.body)
def test_do_dry_run(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -108,6 +118,7 @@ def test_do_dry_run(self):
self.assertIsNone(ao.do_dry_run())
def test_do_action(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -118,6 +129,7 @@ def test_do_action(self):
self.assertIsNone(ao.do_action())
def test_do_action_raises_exception(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand Down
9 changes: 9 additions & 0 deletions test/unit/test_action_allocation.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ def test_init_raise(self):
self.assertRaises(TypeError, curator.Allocation, 'invalid')
def test_init(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -19,13 +20,15 @@ def test_init(self):
self.assertEqual(client, ao.client)
def test_create_body_no_key(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
ilo = curator.IndexList(client)
self.assertRaises(curator.MissingArgument, curator.Allocation, ilo)
def test_create_body_no_value(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -34,6 +37,7 @@ def test_create_body_no_value(self):
curator.Allocation, ilo, key='key')
def test_create_body_invalid_allocation_type(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -45,6 +49,7 @@ def test_create_body_invalid_allocation_type(self):
)
def test_create_body_valid(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -53,6 +58,7 @@ def test_create_body_valid(self):
self.assertEqual({'index.routing.allocation.require.key': 'value'}, ao.body)
def test_do_action_raise_on_put_settings(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -63,6 +69,7 @@ def test_do_action_raise_on_put_settings(self):
self.assertRaises(Exception, ao.do_action)
def test_do_dry_run(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -72,6 +79,7 @@ def test_do_dry_run(self):
self.assertIsNone(ao.do_dry_run())
def test_do_action(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -81,6 +89,7 @@ def test_do_action(self):
self.assertIsNone(ao.do_action())
def test_do_action_wait(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand Down
6 changes: 6 additions & 0 deletions test/unit/test_action_close.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ def test_init_raise(self):
self.assertRaises(TypeError, curator.Close, 'invalid')
def test_init(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -19,6 +20,7 @@ def test_init(self):
self.assertEqual(client, co.client)
def test_do_dry_run(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -29,6 +31,7 @@ def test_do_dry_run(self):
self.assertIsNone(co.do_dry_run())
def test_do_action(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -39,6 +42,7 @@ def test_do_action(self):
self.assertIsNone(co.do_action())
def test_do_action_with_delete_aliases(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -49,6 +53,7 @@ def test_do_action_with_delete_aliases(self):
self.assertIsNone(co.do_action())
def test_do_action_raises_exception(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -60,6 +65,7 @@ def test_do_action_raises_exception(self):
self.assertRaises(curator.FailedExecution, co.do_action)
def test_do_action_delete_aliases_with_exception(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand Down
7 changes: 7 additions & 0 deletions test/unit/test_action_delete_indices.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@ def test_init_raise(self):
self.assertRaises(TypeError, curator.DeleteIndices, 'invalid')
def test_init_raise_bad_master_timeout(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
ilo = curator.IndexList(client)
self.assertRaises(TypeError, curator.DeleteIndices, ilo, 'invalid')
def test_init(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -26,6 +28,7 @@ def test_init(self):
self.assertEqual(client, do.client)
def test_do_dry_run(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_four
client.cluster.state.return_value = testvars.clu_state_four
client.indices.stats.return_value = testvars.stats_four
Expand All @@ -35,6 +38,7 @@ def test_do_dry_run(self):
self.assertIsNone(do.do_dry_run())
def test_do_action(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_four
client.cluster.state.return_value = testvars.clu_state_four
client.indices.stats.return_value = testvars.stats_four
Expand All @@ -44,6 +48,7 @@ def test_do_action(self):
self.assertIsNone(do.do_action())
def test_do_action_not_successful(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_four
client.cluster.state.return_value = testvars.clu_state_four
client.indices.stats.return_value = testvars.stats_four
Expand All @@ -53,6 +58,7 @@ def test_do_action_not_successful(self):
self.assertIsNone(do.do_action())
def test_do_action_raises_exception(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_four
client.cluster.state.return_value = testvars.clu_state_four
client.indices.stats.return_value = testvars.stats_four
Expand All @@ -63,6 +69,7 @@ def test_do_action_raises_exception(self):
self.assertRaises(curator.FailedExecution, do.do_action)
def test_verify_result_positive(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_four
client.cluster.state.return_value = testvars.clu_state_four
client.indices.stats.return_value = testvars.stats_four
Expand Down
7 changes: 7 additions & 0 deletions test/unit/test_action_forcemerge.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ def test_init_raise_bad_client(self):
TypeError, curator.ForceMerge, 'invalid', max_num_segments=2)
def test_init_raise_no_segment_count(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -20,6 +21,7 @@ def test_init_raise_no_segment_count(self):
curator.MissingArgument, curator.ForceMerge, ilo)
def test_init(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -30,6 +32,7 @@ def test_init(self):
self.assertEqual(client, fmo.client)
def test_do_dry_run(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -41,6 +44,7 @@ def test_do_dry_run(self):
self.assertIsNone(fmo.do_dry_run())
def test_do_action_pre5(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -52,6 +56,7 @@ def test_do_action_pre5(self):
self.assertIsNone(fmo.do_action())
def test_do_action(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -63,6 +68,7 @@ def test_do_action(self):
self.assertIsNone(fmo.do_action())
def test_do_action_with_delay(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand All @@ -74,6 +80,7 @@ def test_do_action_with_delay(self):
self.assertIsNone(fmo.do_action())
def test_do_action_raises_exception(self):
client = Mock()
client.info.return_value = {'version': {'number': '2.4.1'} }
client.indices.get_settings.return_value = testvars.settings_one
client.cluster.state.return_value = testvars.clu_state_one
client.indices.stats.return_value = testvars.stats_one
Expand Down

0 comments on commit 84cf03f

Please sign in to comment.