From e4f0a002fbb1dfd529cdaa5c4277b2ff4a99260b Mon Sep 17 00:00:00 2001 From: Benjamin Labrecque Date: Mon, 17 Aug 2026 11:05:05 +0200 Subject: [PATCH] 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 --- cli/src/ioc.py | 86 ++++++++++++++++++++++++-------------------------- 1 file changed, 42 insertions(+), 44 deletions(-) diff --git a/cli/src/ioc.py b/cli/src/ioc.py index 4200f2f..d0cd20c 100644 --- a/cli/src/ioc.py +++ b/cli/src/ioc.py @@ -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}"], )