def is_alias_empty(client, alias_name): """" Checks whether alias is empty or not """ ilo = curator.IndexList(client) ilo.filter_by_alias(aliases=alias_name) if len(ilo.working_list()) > 0: print("Alias {} is not empty. Not adding indices to it.".format( alias_name)) return False return True
def create_aliases(client, alias_name, archive_index_name): """" Create read write aliases """ ilo = curator.IndexList(client) ilo.filter_by_regex(kind='regex', value='^' + archive_index_name + '$') alias = curator.Alias(client=client, name=alias_name) for index in ilo.working_list(): print("Adding index {} to alias {}".format(index, alias_name)) alias.add(ilo) alias.do_action()
def test_reindex_timedout(self): client = Mock() client.info.return_value = {'version': {'number': '5.0.0'} } 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 client.reindex.return_value = testvars.generic_task client.tasks.get.return_value = testvars.incomplete_task ilo = curator.IndexList(client) ro = curator.Reindex(ilo, testvars.reindex_basic, max_wait=1, wait_interval=1) self.assertRaises(curator.FailedExecution, ro.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 client.indices.segments.return_value = testvars.shards client.info.return_value = {'version': {'number': '5.0.0'}} client.indices.forcemerge.return_value = None ilo = curator.IndexList(client) fmo = curator.ForceMerge(ilo, max_num_segments=2, delay=0.050) self.assertIsNone(fmo.do_action())
def test_field_stats_older_than_past_date_max(self): client = Mock() 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 client.field_stats.return_value = testvars.fieldstats_two il = curator.IndexList(client) il.filter_by_age(source='field_stats', direction='older', field='timestamp', stats_result='max_value', unit='seconds', unit_count=0, epoch=1457049600 ) self.assertEqual(['index-2016.03.03'], sorted(il.indices))
def test_name_older_than_now_exclude(self): client = Mock() 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 il = curator.IndexList(client) il.filter_by_age(source='name', direction='older', timestring='%Y.%m.%d', unit='days', unit_count=1, exclude=True ) self.assertEqual( [], sorted(il.indices) )
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 client.indices.update_aliases.return_value = testvars.alias_success client.indices.update_aliases.side_effect = testvars.four_oh_one ilo = curator.IndexList(client) ao = curator.Alias(name='alias') ao.add(ilo) self.assertRaises(curator.FailedExecution, ao.do_action)
def test_filter_result_by_date_non_matching_timestring(self): client = Mock() 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 client.field_stats.return_value = testvars.fieldstats_four il = curator.IndexList(client) il.filter_by_space(disk_space=2.1, use_age=True, source='name', timestring='%Y.%m.%d.%H') self.assertEqual([], sorted(il.indices))
def test_settings_check_raises_with_opened(self): client = Mock() client.info.return_value = {'version': {'number': '5.0.0'}} 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) iso = curator.IndexSettings(ilo, {'index': { 'codec': 'best_compression' }}) self.assertRaises(curator.ActionError, iso._settings_check)
def test_do_action(self): client = Mock() client.info.return_value = {'version': {'number': '5.0.0'}} 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 client.indices.open.return_value = None ilo = curator.IndexList(client) ilo.filter_opened() oo = curator.Open(ilo) self.assertEqual([u'c-2016.03.05'], oo.index_list.indices) self.assertIsNone(oo.do_action())
def test_init_no_name_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 client.snapshot.get_repository.return_value = testvars.test_repo ilo = curator.IndexList(client) self.assertRaises(curator.MissingArgument, curator.Snapshot, ilo, repository=testvars.repo_name)
def test_init_no_repo_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 client.snapshot.get_repository.return_value = {'repo': {'foo': 'bar'}} ilo = curator.IndexList(client) self.assertRaises(curator.ActionError, curator.Snapshot, ilo, repository='notfound')
def test_with_age_reversed(self): client = Mock() 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 client.indices.get_alias.return_value = testvars.settings_2_get_aliases il = curator.IndexList(client) il.filter_by_count( count=1, use_age=True, source='name', timestring='%Y.%m.%d', reverse=False ) self.assertEqual([u'index-2016.03.04'], il.indices)
def test_get_state_fail(self): client = Mock() client.info.return_value = {'version': {'number': '5.0.0'} } 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 client.snapshot.get_repository.return_value = testvars.test_repo client.snapshot.get.return_value = {'snapshots':[]} ilo = curator.IndexList(client) so = curator.Snapshot(ilo, repository=testvars.repo_name, name=testvars.snap_name) self.assertRaises(curator.CuratorException, so.get_state)
def test_init_success(self): client = Mock() client.info.return_value = {'version': {'number': '5.0.0'} } 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 client.snapshot.get_repository.return_value = testvars.test_repo ilo = curator.IndexList(client) so = curator.Snapshot(ilo, repository=testvars.repo_name, name=testvars.snap_name) self.assertEqual(testvars.repo_name, so.repository) self.assertIsNone(so.state)
def test_creation_date_older_than_past_date(self): client = Mock() 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 il = curator.IndexList(client) il.filter_by_age(source='creation_date', direction='older', unit='seconds', unit_count=0, epoch=1456963201) self.assertEqual(['index-2016.03.03'], sorted(il.indices))
def test_field_stats_invalid_source(self): client = Mock() 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 il = curator.IndexList(client) self.assertRaises(ValueError, il.filter_by_age, source='invalid', direction='older', unit='days', unit_count=1)
def test_create_body_invalid_allocation_type(self): client = Mock() 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(ValueError, curator.Allocation, ilo, key='key', value='value', allocation_type='invalid')
def test_filter_result_by_date_no_field_raise(self): client = Mock() 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 client.field_stats.return_value = testvars.fieldstats_four il = curator.IndexList(client) self.assertRaises(curator.MissingArgument, il.filter_by_space, disk_space=2.1, use_age=True, source='field_stats')
def test_raise_no_indices_on_empty_body_when_warn_if_no_indices(self): client = Mock() client.info.return_value = {'version': {'number': '5.0.0'}} 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 _ = curator.IndexList(client) # empty it, so there can be no body _.indices = [] ao = curator.Alias(name='alias') ao.add(_, warn_if_no_indices=True) self.assertRaises(curator.NoIndices, ao.body)
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 client.indices.get_alias.return_value = testvars.settings_2_get_aliases ilo = curator.IndexList(client) ao = curator.Alias(name='my_alias') ao.remove(ilo) cmp = sorted(ao.actions, key=lambda k: k['remove']['index']) self.assertEqual(testvars.alias_two_rm, cmp)
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 client.indices.flush_synced.return_value = testvars.synced_pass client.indices.close.return_value = None client.indices.close.side_effect = testvars.fake_fail ilo = curator.IndexList(client) co = curator.Close(ilo) self.assertRaises(curator.FailedExecution, co.do_action)
def test_creation_date_older_than_now_raises(self): client = Mock() 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 il = curator.IndexList(client) il.index_info['index-2016.03.03']['age'].pop('creation_date') il.index_info['index-2016.03.04']['age'].pop('creation_date') il.filter_by_age( source='creation_date', direction='older', unit='days', unit_count=1 ) self.assertEqual([], il.indices)
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 client.indices.flush_synced.return_value = testvars.synced_pass client.indices.close.return_value = None ilo = curator.IndexList(client) client.indices.delete_alias.side_effect = testvars.fake_fail co = curator.Close(ilo, delete_aliases=True) self.assertIsNone(co.do_action())
def test_filter_result_by_date_field_stats(self): client = Mock() 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 client.field_stats.return_value = testvars.fieldstats_four il = curator.IndexList(client) il.filter_by_space( disk_space=2.1, use_age=True, source='field_stats', field='timestamp' ) self.assertEqual(['a-2016.03.03'], il.indices)
def test_filter_by_regex_no_match_exclude(self): client = Mock() 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 il = curator.IndexList(client) self.assertEqual([u'index-2016.03.03', u'index-2016.03.04'], sorted(il.indices)) il.filter_by_regex(kind='prefix', value='invalid', exclude=True) # self.assertEqual([], il.indices) self.assertEqual([u'index-2016.03.03', u'index-2016.03.04'], sorted(il.indices))
def test_reindex_without_wait(self): client = Mock() client.info.return_value = {'version': {'number': '5.0.0'} } 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 client.reindex.return_value = testvars.generic_task client.tasks.get.return_value = testvars.completed_task ilo = curator.IndexList(client) ro = curator.Reindex(ilo, testvars.reindex_basic, wait_for_completion=False) self.assertIsNone(ro.do_action())
def test_filter_by_regex_bad_kind(self): client = Mock() 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 il = curator.IndexList(client) self.assertEqual([u'index-2016.03.03', u'index-2016.03.04'], sorted(il.indices)) self.assertRaises(ValueError, il.filter_by_regex, kind='invalid', value=None)
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 client.indices.segments.return_value = testvars.shards client.indices.put_settings.return_value = None client.indices.put_settings.side_effect = testvars.fake_fail ilo = curator.IndexList(client) ro = curator.Replicas(ilo, count=2) self.assertRaises(curator.FailedExecution, ro.do_action)
def test_name_no_timestring(self): client = Mock() 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 il = curator.IndexList(client) self.assertRaises(curator.MissingArgument, il.filter_by_age, source='name', unit='days', unit_count=1, direction='older')