def Close_action(index_name, alias_name, day): try: ilo = curator.IndexList(client) # 筛选以什么开头的,进行删除 ilo.filter_by_regex(kind='prefix', value=index_name) # 按创建时间赛选 older|younger 老的| 新的 timestring 匹配datestamp中的时间(当source为name的时候需) ilo.filter_by_age(source='creation_date', direction='older', unit='days', unit_count=day) # 进行移除别名操作 try: Remove_alias(name=alias_name, ilo=ilo).run() except Exception as e: raise "移除名别失败" finally: # 进行关闭操作 close_indices = curator.Close(ilo) # 操作记录,不会执行操作 msg = close_indices.do_dry_run() # 执行关闭操作 close_indices.do_action() return msg except Exception as e: return e
def test_init(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) co = curator.Close(ilo) self.assertEqual(ilo, co.index_list) self.assertEqual(client, co.client)
def test_do_action_with_delete_aliases(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.flush_synced.return_value = testvars.synced_pass client.indices.close.return_value = None ilo = curator.IndexList(client) co = curator.Close(ilo, delete_aliases=True) self.assertIsNone(co.do_action())
def test_do_dry_run(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.flush_synced.return_value = testvars.synced_pass client.indices.close.return_value = None ilo = curator.IndexList(client) co = curator.Close(ilo) self.assertIsNone(co.do_dry_run())
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.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_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 client.indices.flush_synced.return_value = testvars.synced_pass client.indices.close.return_value = None ilo = curator.IndexList(client) co = curator.Close(ilo) self.assertIsNone(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 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())