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+'$') for index in ilo.working_list(): print("Adding index {} to alias {}".format(index, alias_name)) if re.search(r'write', alias_name): alias = curator.Alias(client=client, name=alias_name, extra_settings={'is_write_index': True}) else: alias = curator.Alias(client=client, name=alias_name) alias.add(ilo) alias.do_action()
def test_add_raises_on_invalid_parameter(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) ao = curator.Alias(name='alias') self.assertRaises(TypeError, ao.add, [])
def test_raise_on_empty_body(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) ao = curator.Alias(name='alias') self.assertRaises(curator.ActionError, ao.body)
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 ilo = curator.IndexList(client) ao = curator.Alias(name='alias') self.assertRaises(TypeError, ao.add)
def test_remove_single(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) ao = curator.Alias(name='alias') ao.remove(ilo) self.assertEqual(testvars.alias_one_rm, ao.actions)
def test_raise_action_error_on_empty_body(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) ao = curator.Alias(name='alias') self.assertRaises(curator.ActionError, ao.body)
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 ilo = curator.IndexList(client) ao = curator.Alias(name='alias') ao.add(ilo) self.assertEqual(testvars.alias_one_add, ao.actions)
def test_remove_multiple(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 ilo = curator.IndexList(client) ao = curator.Alias(name='alias') ao.remove(ilo) cmp = sorted(ao.actions, key=lambda k: k['remove']['index']) self.assertEqual(testvars.alias_two_rm, cmp)
def test_add_single_with_extra_settings(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) esd = {'filter': {'term': {'user': '******'}}} ao = curator.Alias(name='alias', extra_settings=esd) ao.add(ilo) self.assertEqual(testvars.alias_one_add_with_extras, ao.actions)
def test_do_action(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 client.indices.update_aliases.return_value = testvars.alias_success ilo = curator.IndexList(client) ao = curator.Alias(name='alias') ao.add(ilo) self.assertIsNone(ao.do_action())
def test_do_action_raises_exception(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 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 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_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 ilo = curator.IndexList(client) ao = curator.Alias(name='alias') ao.add(ilo) cmp = sorted(ao.actions, key=lambda k: k['add']['index']) self.assertEqual(testvars.alias_two_add, cmp)
def test_do_dry_run(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.indices.update_aliases.return_value = testvars.alias_success _ = curator.IndexList(client) ao = curator.Alias(name='alias') ao.add(_) self.assertIsNone(ao.do_dry_run())
def test_remove_single(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.indices.get_alias.return_value = testvars.settings_1_get_aliases _ = curator.IndexList(client) ao = curator.Alias(name='my_alias') ao.remove(_) self.assertEqual(testvars.alias_one_rm, ao.actions)
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': '5.0.0'}} 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 _ = curator.IndexList(client) ao = curator.Alias(name='my_alias') ao.remove(_) cmp = sorted(ao.actions, key=lambda k: k['remove']['index']) self.assertEqual(testvars.alias_two_rm, cmp)
def test_show_body(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) ao = curator.Alias(name='alias') ao.remove(ilo) ao.add(ilo) body = ao.body() self.assertEqual(testvars.alias_one_body['actions'][0], body['actions'][0]) self.assertEqual(testvars.alias_one_body['actions'][1], body['actions'][1])
def rollover(client, write_alias, read_alias, conditions): """ Rollover to new index and put it into read alias """ print("Rollover {}, based on conditions {}".format(write_alias, conditions)) roll = curator.Rollover(client=client, name=write_alias, conditions=conditions) roll.do_action() ilo = curator.IndexList(client) ilo.filter_by_alias(aliases=[write_alias]) alias = curator.Alias(client=client, name=read_alias) for index in ilo.working_list(): print("Adding index {} to alias {}".format(index, read_alias)) alias.add(ilo) alias.do_action()
def read_alias_lookback(client, write_alias, read_alias, unit, unit_count): """ This is used to mimic --es.max-span-age - The maximum lookback for spans in Elasticsearch by removing old indices from read alias """ ilo = curator.IndexList(client) ilo.filter_by_alias(aliases=[read_alias]) ilo.filter_by_alias(aliases=[write_alias], exclude=True) ilo.filter_by_age(source='creation_date', direction='older', unit=unit, unit_count=unit_count) empty_list(ilo, 'No indices to remove from alias {}'.format(read_alias)) for index in ilo.working_list(): print("Removing index {} from alias {}".format(index, read_alias)) alias = curator.Alias(client=client, name=read_alias) alias.remove(ilo) alias.do_action()
def run(self): remove_alias = curator.Alias(name=self.name) remove_alias.remove(self.ilo) remove_alias.do_action() return True