115 lines
3.8 KiB
Python
115 lines
3.8 KiB
Python
import typer
|
|
|
|
from agebd.utils import get_git_root
|
|
from config.paths import Paths
|
|
from core.ansible import run_playbook
|
|
from core.enums import IOC_ENV
|
|
from models import ServiceRegistry
|
|
|
|
ioc = typer.Typer(no_args_is_help=True)
|
|
|
|
REPO_ROOT = get_git_root(__file__)
|
|
|
|
ANSIBLE_PLAYBOOKS_DIR = REPO_ROOT / "ansible" / "playbooks"
|
|
IOC_PLAYBOOK_INSTALL = ANSIBLE_PLAYBOOKS_DIR / "ioc-install.yml"
|
|
IOC_PLAYBOOK_RESTART = ANSIBLE_PLAYBOOKS_DIR / "ioc-restart.yml"
|
|
IOC_PLAYBOOK_START = ANSIBLE_PLAYBOOKS_DIR / "ioc-start.yml"
|
|
|
|
SERVICE_NAME_HELP = "Service name in lower case"
|
|
|
|
|
|
@ioc.command(no_args_is_help=True)
|
|
def install(
|
|
env: IOC_ENV = typer.Option(..., "--env"),
|
|
service_name_lower: str = typer.Option(..., "--service-name", "-s", help=SERVICE_NAME_HELP),
|
|
branch_name: str | None = typer.Option(
|
|
None, "--branch-name", "-b", help="Default is 'feature/add-service-{service-name}'"
|
|
),
|
|
):
|
|
if branch_name is None:
|
|
branch_name = f"feature/add-service-{service_name_lower}"
|
|
branch_var = f"branch_name={branch_name}"
|
|
service_name_var = f"service_name_lower={service_name_lower}"
|
|
|
|
run_playbook(playbook=str(IOC_PLAYBOOK_INSTALL), env=env, vars=[branch_var, service_name_var])
|
|
|
|
|
|
@ioc.command(no_args_is_help=True)
|
|
def install_all(
|
|
env: IOC_ENV = typer.Option(..., "--env"),
|
|
):
|
|
paths = Paths()
|
|
registry = ServiceRegistry.read_from_file(paths.service_registry_file)
|
|
services = registry.get_services()
|
|
|
|
branch_var = "branch_name=main"
|
|
for service in services:
|
|
service_name_var = f"service_name_lower={service.name_lower}"
|
|
|
|
run_playbook(
|
|
playbook=str(IOC_PLAYBOOK_INSTALL), env=env, vars=[branch_var, service_name_var]
|
|
)
|
|
|
|
|
|
@ioc.command(no_args_is_help=True)
|
|
def start(
|
|
env: IOC_ENV = typer.Option(..., "--env"),
|
|
service_name_lower: str = typer.Option(..., "--service-name", "-s", help=SERVICE_NAME_HELP),
|
|
branch_name: str | None = typer.Option(
|
|
None, "--branch-name", "-b", help="Default is 'feature/add-service-{service-name}'"
|
|
),
|
|
):
|
|
if branch_name is None:
|
|
branch_name = f"feature/add-service-{service_name_lower}"
|
|
branch_var = f"branch_name={branch_name}"
|
|
service_name_var = f"service_name_lower={service_name_lower}"
|
|
|
|
run_playbook(playbook=str(IOC_PLAYBOOK_START), env=env, vars=[service_name_var, branch_var])
|
|
|
|
|
|
@ioc.command()
|
|
def start_all(
|
|
env: IOC_ENV = typer.Option(..., "--env"),
|
|
):
|
|
paths = Paths()
|
|
registry = ServiceRegistry.read_from_file(paths.service_registry_file)
|
|
services = registry.get_services()
|
|
|
|
for service in services:
|
|
service_name_var = f"service_name_lower={service.name_lower}"
|
|
|
|
run_playbook(playbook=str(IOC_PLAYBOOK_START), env=env, vars=[service_name_var])
|
|
|
|
|
|
@ioc.command(no_args_is_help=True)
|
|
def restart(
|
|
env: IOC_ENV = typer.Option(..., "--env"),
|
|
service_name_lower: str = typer.Option(..., "--service-name", "-s", help=SERVICE_NAME_HELP),
|
|
branch_name: str | None = typer.Option(
|
|
None, "--branch-name", "-b", help="Default is 'feature/add-service-{service-name}'"
|
|
),
|
|
):
|
|
if branch_name is None:
|
|
branch_name = f"feature/add-service-{service_name_lower}"
|
|
branch_var = f"branch_name={branch_name}"
|
|
service_name_var = f"service_name_lower={service_name_lower}"
|
|
|
|
run_playbook(playbook=str(IOC_PLAYBOOK_RESTART), env=env, vars=[branch_var, service_name_var])
|
|
|
|
|
|
@ioc.command(no_args_is_help=True)
|
|
def restart_all(
|
|
env: IOC_ENV = typer.Option(..., "--env"),
|
|
):
|
|
paths = Paths()
|
|
registry = ServiceRegistry.read_from_file(paths.service_registry_file)
|
|
services = registry.get_services()
|
|
|
|
branch_var = "branch_name=main"
|
|
for service in services:
|
|
service_name_var = f"service_name_lower={service.name_lower}"
|
|
|
|
run_playbook(
|
|
playbook=str(IOC_PLAYBOOK_RESTART), env=env, vars=[branch_var, service_name_var]
|
|
)
|