modular-service-cli/modular_service_cli/group/region.py (39 lines of code) (raw):

import operator import click from modular_service_cli.group import ContextObj, ViewCommand, cli_response from modular_service_cli.service.constants import Cloud attributes_order = 'maestro_name', 'native_name', 'cloud', 'is_active' @click.group(name='region') def region(): """Manages Region Entity""" @region.command(cls=ViewCommand, name='describe') @click.option('--maestro_name', '-n', type=str, help='Region name.', required=False) @cli_response(attributes_order=attributes_order) def describe(ctx: ContextObj, maestro_name, customer_id): """ Describes Region. """ if maestro_name: return ctx.api_client.get_region(maestro_name) return ctx.api_client.query_regions() @region.command(cls=ViewCommand, name='activate') @click.option('--maestro_name', '-mn', type=str, help='Region name.', required=True) @click.option('--native_name', '-nn', type=str, help='Native region name.', required=True) @click.option('--cloud', '-c', type=click.Choice(tuple(map(operator.attrgetter('value'), Cloud))), required=True, help='Region cloud') @click.option('--region_id', '-rid', type=str, help='Region id.', required=False) @cli_response(attributes_order=attributes_order) def activate(ctx: ContextObj, maestro_name, native_name, cloud, region_id, customer_id): """ Activates Region. """ return ctx.api_client.create_region( maestro_name=maestro_name, native_name=native_name, cloud=cloud, region_id=region_id ) @region.command(cls=ViewCommand, name='delete') @click.option('--maestro_name', '-n', type=str, help='Region name.', required=True) @cli_response(attributes_order=attributes_order) def delete(ctx: ContextObj, maestro_name, customer_id): """ Deletes Region. """ return ctx.api_client.delete_region(maestro_name)