diff --git a/alakazam.py b/alakazam.py index 3069215..eac9e78 100755 --- a/alakazam.py +++ b/alakazam.py @@ -1221,9 +1221,12 @@ def deploy(recipes: Tuple[str], execute_hooks: bool, force: bool, converge_check @click.option('-e', '--execute-hooks', is_flag=True, help='run post-upgrade commands.') @click.option('-d', '--dry-run', is_flag=True, help="don't execute the upgrade process") @click.option('-rd', '--redeploy', is_flag=True, help="use undeploy and deploy for the updating process") +@click.option('--redeploy-wait', type=int, default=20, metavar='', + help='seconds to wait between undeploy and deploy in --redeploy mode (default: 20).') @click.option('-c', '--converge-checks', is_flag=True, help='perform convergence checks during deployment.') @click.option('noninteractive', '-n', '--non-interactive', is_flag=True, help='Run this command non-interactively') -def upgrade(recipes: Tuple[str], execute_hooks: bool, dry_run: bool, redeploy: bool, converge_checks: bool, noninteractive: bool) -> None: +def upgrade(recipes: Tuple[str], execute_hooks: bool, dry_run: bool, redeploy: bool, + converge_checks: bool, noninteractive: bool, redeploy_wait: int) -> None: """ Upgrades specified applications by executing the upgrade commands via the 'abra' command-line interface. It checks the current deployment status of the apps and performs upgrades only where necessary, with options to execute additional commands or perform a dry run. It either took the target version from the configuration or it uses the latest available version. @@ -1286,10 +1289,11 @@ def upgrade(recipes: Tuple[str], execute_hooks: bool, dry_run: bool, redeploy: b app_domain = app_config.get('app_domain') if redeploy: upgrade_cmd.pop(0) - print(f'undeploy {app_domain}') upgrade_cmd.insert(0, 'deploy') + print(f'undeploy {app_domain}') print(abra("app", "undeploy", '--no-input', app_domain)) - sleep(20) + print(f'waiting {redeploy_wait}s …') + sleep(redeploy_wait) print(f'deploy {app_domain}') print(abra("app", *upgrade_cmd)) if execute_hooks: