12345678910111213141516171819202122232425262728293031323334353637 |
- # Copyright Materialize, Inc. and contributors. All rights reserved.
- #
- # Use of this software is governed by the Business Source License
- # included in the LICENSE file at the root of this repository.
- #
- # As of the Change Date specified in that file, in accordance with
- # the Business Source License, use of this software will be governed
- # by the Apache License, Version 2.0.
- import argparse
- import boto3
- from mypy_boto3_ec2.type_defs import FilterTypeDef
- from materialize.cli.scratch import check_required_vars
- from materialize.scratch import print_instances, whoami
- def configure_parser(parser: argparse.ArgumentParser) -> None:
- check_required_vars()
- parser.add_argument(
- "who",
- nargs="*",
- help="Whose instances to show (defaults to yourself)",
- )
- parser.add_argument("--all", help="Show all instances", action="store_true")
- parser.add_argument("--output-format", choices=["table", "csv"], default="table")
- def run(args: argparse.Namespace) -> None:
- filters: list[FilterTypeDef] = []
- if not args.all:
- filters.append({"Name": "tag:LaunchedBy", "Values": args.who or [whoami()]})
- print_instances(
- list(boto3.resource("ec2").instances.filter(Filters=filters)),
- args.output_format,
- )
|