Skip to content

Commit ecc6608

Browse files
authored
Fixed up family dependencies with logical and compose names (#753)
1 parent 8485376 commit ecc6608

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

ecs_composex/ecs/ecs_stack.py

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -67,25 +67,31 @@ def initialize_family_services(
6767

6868

6969
def handle_families_dependencies(
70-
settings: ComposeXSettings, families_post: list
70+
settings: ComposeXSettings, families_post: list[tuple[str, str]]
7171
) -> None:
7272
"""
73-
Function to handle family to family services based on docker compose depends_on
74-
75-
:param ecs_composex.common.settings.ComposeXSettings settings:
76-
:param list families_post:
73+
Function to handle family to family services based on docker compose depends_on.
74+
Given the stack name and the family (services) name can be different due to special chars,
75+
we need to evaluate each of the families for both names to make sure to find it.
7776
"""
78-
for family in families_post:
79-
for family_name in settings.families[family].services_depends_on:
80-
if family_name not in families_post:
77+
for family_def in families_post:
78+
_family_title, _family_name = family_def
79+
for family_name in settings.families[_family_title].services_depends_on:
80+
for __family_title, __family_def in settings.families.items():
81+
if __family_def.name == family_name:
82+
family_title = __family_title
83+
break
84+
else:
8185
continue
8286
if (
83-
family_name not in settings.families[family].stack.DependsOn
84-
and family_name != settings.families[family].name
87+
family_title not in settings.families[_family_title].stack.DependsOn
88+
and family_title != settings.families[_family_title].name
8589
):
86-
LOG.info(f"Adding dependency between {family_name} and {family}")
87-
settings.families[family].stack.DependsOn.append(
88-
settings.families[family_name].stack.title
90+
LOG.info(
91+
f"Adding dependency between {family_name}|{family_title} and {_family_name}|{_family_title}"
92+
)
93+
settings.families[_family_title].stack.DependsOn.append(
94+
settings.families[family_title].stack.title
8995
)
9096

9197

@@ -133,7 +139,7 @@ def add_compose_families(
133139
family.validate_compute_configuration_for_task(settings)
134140

135141
families_stacks = [
136-
family
142+
(family, settings.families[family].name)
137143
for family in settings.root_stack.stack_template.resources
138144
if (
139145
family in settings.families

0 commit comments

Comments
 (0)