refactor: dedupe branch-name resolution and registry loading in ioc.py

Extract _resolve_branch_name and _get_registry_services helpers used
across install/start/restart and their *_all variants.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Benjamin Labrecque
2026-08-17 11:05:05 +02:00
co-authored by Claude Sonnet 5
parent da4836ac0a
commit e4f0a002fb
+42 -44
View File
@@ -18,6 +18,16 @@ IOC_PLAYBOOK_START = ANSIBLE_PLAYBOOKS_DIR / "ioc-start.yml"
SERVICE_NAME_HELP = "Service name in lower case"
def _resolve_branch_name(branch_name: str | None, service_name_lower: str) -> str:
return branch_name or f"feature/add-service-{service_name_lower}"
def _get_registry_services():
paths = Paths()
registry = ServiceRegistry.read_from_file(paths.service_registry_file)
return registry.get_services()
@ioc.command(no_args_is_help=True)
def install(
env: IOC_ENV = typer.Option(..., "--env"),
@@ -26,28 +36,23 @@ def install(
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])
branch_name = _resolve_branch_name(branch_name, service_name_lower)
run_playbook(
playbook=str(IOC_PLAYBOOK_INSTALL),
env=env,
vars=[f"branch_name={branch_name}", f"service_name_lower={service_name_lower}"],
)
@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}"
for service in _get_registry_services():
run_playbook(
playbook=str(IOC_PLAYBOOK_INSTALL), env=env, vars=[branch_var, service_name_var]
playbook=str(IOC_PLAYBOOK_INSTALL),
env=env,
vars=["branch_name=main", f"service_name_lower={service.name_lower}"],
)
@@ -59,26 +64,24 @@ def start(
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])
branch_name = _resolve_branch_name(branch_name, service_name_lower)
run_playbook(
playbook=str(IOC_PLAYBOOK_START),
env=env,
vars=[f"service_name_lower={service_name_lower}", f"branch_name={branch_name}"],
)
@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])
for service in _get_registry_services():
run_playbook(
playbook=str(IOC_PLAYBOOK_START),
env=env,
vars=[f"service_name_lower={service.name_lower}"],
)
@ioc.command(no_args_is_help=True)
@@ -89,26 +92,21 @@ def restart(
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])
branch_name = _resolve_branch_name(branch_name, service_name_lower)
run_playbook(
playbook=str(IOC_PLAYBOOK_RESTART),
env=env,
vars=[f"branch_name={branch_name}", f"service_name_lower={service_name_lower}"],
)
@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}"
for service in _get_registry_services():
run_playbook(
playbook=str(IOC_PLAYBOOK_RESTART), env=env, vars=[branch_var, service_name_var]
playbook=str(IOC_PLAYBOOK_RESTART),
env=env,
vars=["branch_name=main", f"service_name_lower={service.name_lower}"],
)