import os import sys import click from click import secho from delphi_es_utils.core.utils import printf_code from delphi_es_utils.errors.exceptions import IndexManagerException from delphi_es_utils.services import IndexManager from delphi_es_utils.settings import ENVIRONMENT @click.command('set-lifecycle-policy', short_help='Set lifecycle policy to indexes by alias.') @click.option('--name', required=True, help='Name of the index alias.') @click.option('--env', default=ENVIRONMENT, help='Environment override') def set_lifecycle_policy_cmd(name, env=ENVIRONMENT): os.environ["ENVIRONMENT"] = env try: result = IndexManager(name).set_lifecycle_policy_by_alias() except IndexManagerException as e: secho('**✘ Lifecycle policy set failed**') secho(str(e)) sys.exit(1) except Exception as e: secho('**✘ Lifecycle policy set failed**') printf_code(e) sys.exit(1) else: secho(f'\n✔︎ Updated indices: {result["updated_indices"]}') if result['failures']: secho(f'\n✘ Skipped indices: {result["failed_indices"]}')