iact3/cli_modules/cost.py (35 lines of code) (raw):

import json import logging from iact3.cli import CliCore from iact3.cli_modules.delete import Delete from iact3.cli_modules.list import List from iact3.config import DEFAULT_CONFIG_FILE from iact3.testing.ros_stack import StackTest LOG = logging.getLogger(__name__) class Cost: ''' Give the price of the templates. ''' def __init__(self, template: str = None, config_file: str = DEFAULT_CONFIG_FILE, regions: str = None): ''' :param template: path to a template :param config_file: path to a config file :param regions: comma separated list of regions ''' self.template = template self.config_file = config_file self.regions = regions @classmethod async def create(cls, template: str = None, config_file: str = None, regions: str = None, tags: dict = None): tests = await StackTest.from_file( template=template, project_config_file=config_file, regions=regions ) LOG.info(f'start querying templates costs.') await StackTest.get_stacks_price(tests)