Beispiel #1
0
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
Beispiel #2
0
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)
Beispiel #4
0
 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())
Beispiel #5
0
 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))
Beispiel #6
0
 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)
     )
Beispiel #7
0
 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)
Beispiel #10
0
 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())
Beispiel #11
0
 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)
Beispiel #12
0
 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')
Beispiel #13
0
 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)
Beispiel #14
0
 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)
Beispiel #15
0
 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')
Beispiel #20
0
 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)
Beispiel #21
0
 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)
Beispiel #22
0
 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)
Beispiel #23
0
 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)
Beispiel #24
0
 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())
Beispiel #25
0
 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)
Beispiel #29
0
 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')