Source code for infrahouse_toolkit.cli.ih_ec2.cmd_terminate
"""
.. topic:: ``ih-ec2 terminate``
A ``ih-ec2 terminate`` subcommand.
See ``ih-ec2 terminate`` for more details.
"""
import sys
from logging import getLogger
import click
from infrahouse_core.logging import setup_logging
from infrahouse_toolkit.cli.ih_ec2.cmd_list import list_ec2_instances
LOG = getLogger()
[docs]def terminate_ec2_instance(ec2_client, instance_id):
"""Terminate an EC2 instance."""
ec2_client.terminate_instances(
InstanceIds=[
instance_id,
],
)
LOG.info("Successfully terminated %s", instance_id)
@click.command(name="terminate")
@click.argument("instance_id", required=False)
@click.pass_context
def cmd_terminate(ctx, instance_id):
"""
Terminate an EC2 instance.
"""
setup_logging(debug=ctx.obj["debug"])
ec2_client = ctx.obj["ec2_client"]
if not instance_id:
LOG.error("Please specify INSTANCE_ID from following:")
list_ec2_instances(ec2_client)
sys.exit(1)
if click.prompt(f"Are you sure you want to terminate {instance_id}? (yes/no)"):
terminate_ec2_instance(ctx.obj["ec2_client"], instance_id)