1212if TYPE_CHECKING :
1313 from troposphere .ecs import Service as CfnService
1414 from ecs_composex .common .settings import ComposeXSettings
15+ from ecs_composex .ecs .ecs_service import EcsService
1516
1617import re
1718from itertools import chain
@@ -72,8 +73,8 @@ class ComposeFamily:
7273 """
7374
7475 def __init__ (self , services : list [ComposeService ], family_name ):
75- self ._compose_services = services
76- self .ordered_services = services
76+ self ._compose_services : list [ ComposeService ] = services
77+ self .ordered_services : list [ ComposeService ] = services
7778 self .managed_sidecars = []
7879 self .name = family_name
7980 self .family_hostname = self .name .replace ("_" , "-" ).lower ()
@@ -92,7 +93,7 @@ def __init__(self, services: list[ComposeService], family_name):
9293 self .task_definition = None
9394 self .service_tags = None
9495 self .enable_execute_command = False
95- self .ecs_service = None
96+ self .ecs_service : EcsService | None = None
9697 self .runtime_cpu_arch = None
9798 self .runtime_os_family = None
9899 self .outputs = []
@@ -103,9 +104,9 @@ def __init__(self, services: list[ComposeService], family_name):
103104 self .iam_manager = TaskIam (self )
104105 self .iam_manager .init_update_policies ()
105106 self .service_scaling = None
106- self .service_networking = None
107+ self .service_networking : ServiceNetworking | None = None
107108 self .task_compute = None
108- self .service_compute = ServiceCompute (self )
109+ self .service_compute : ServiceCompute = ServiceCompute (self )
109110 self .set_enable_execute_command ()
110111 set_family_hostname (self )
111112
@@ -447,41 +448,29 @@ def init_network_settings(
447448 self .service_networking .ingress .associate_ext_ingress_rules (self .template )
448449 self .service_networking .add_self_ingress ()
449450
450- def finalize_family_settings (self ):
451+ def finalize_family_settings (self , settings : ComposeXSettings ):
451452 """
452453 Once all services have been added, we add the sidecars and deal with appropriate permissions and settings
453454 Will add xray / prometheus sidecars
454455 """
455- from .family_helpers import set_service_dependency_on_all_iam_policies
456+ from ecs_composex .ecs .ecs_family .family_helpers import (
457+ set_service_dependency_on_all_iam_policies ,
458+ )
459+ from ecs_composex .ecs .ecs_family .family_helpers .compute_finalizers import (
460+ finalize_family_compute ,
461+ finalize_scaling_settings ,
462+ )
463+ from ecs_composex .ecs .ecs_family .family_helpers .network_finalizers import (
464+ finalize_lb_settings ,
465+ finalize_network_settings ,
466+ )
456467
457- self .add_containers_images_cfn_parameters ()
458- self .task_compute .set_task_compute_parameter ()
459- self .task_compute .unlock_compute_for_main_container ()
460- if self .service_compute .ecs_capacity_providers :
461- self .service_compute .apply_capacity_providers_to_service (
462- self .service_compute .ecs_capacity_providers
463- )
468+ finalize_network_settings (self , settings )
469+ finalize_family_compute (self )
464470
465471 set_service_dependency_on_all_iam_policies (self )
466- if self .service_compute .launch_type == "EXTERNAL" :
467- if hasattr (self .service_definition , "LoadBalancers" ):
468- setattr (self .service_definition , "LoadBalancers" , NoValue )
469- if hasattr (self .service_definition , "ServiceRegistries" ):
470- setattr (self .service_definition , "ServiceRegistries" , NoValue )
471- for container in self .task_definition .ContainerDefinitions :
472- if hasattr (container , "LinuxParameters" ):
473- parameters = getattr (container , "LinuxParameters" )
474- setattr (parameters , "InitProcessEnabled" , False )
475- if (
476- self .service_definition
477- and self .service_definition .title in self .template .resources
478- ) and (
479- self .service_scaling
480- and self .service_scaling .scalable_target
481- and self .service_scaling .scalable_target .title
482- not in self .template .resources
483- ):
484- self .template .add_resource (self .service_scaling .scalable_target )
472+ finalize_lb_settings (self )
473+ finalize_scaling_settings (self )
485474 self .generate_outputs ()
486475 service_configs = [
487476 [0 , service ]
0 commit comments