Skip to content

Commit 38ce3ba

Browse files
committed
Fixing targets names vs service names using ports in service name
1 parent db9b0f7 commit 38ce3ba

File tree

4 files changed

+22
-24
lines changed

4 files changed

+22
-24
lines changed

ecs_composex/compose/x_resources/services_resources.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ def __init__(
3434
):
3535
self.services = []
3636
self.families_targets: list[tuple] = []
37-
self.families_scaling = []
37+
self.families_scaling: list = []
3838
self.arn_parameter = None
3939
super().__init__(name, definition, module, settings)
40-
self.services = set_else_none("Services", definition, alt_value={})
40+
self.services: dict = set_else_none("Services", definition, alt_value={})
4141
self.set_services_targets(settings)
4242
self.set_services_scaling(settings)
4343

ecs_composex/elbv2/elbv2_ecs.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -606,20 +606,25 @@ def handle_services_association(
606606
identified = []
607607
for target in load_balancer.families_targets:
608608
family: ComposeFamily = target[0]
609-
print("TARGET?", target)
609+
target_service: ComposeService = target[1]
610+
service_def: dict = target[2]
611+
target_combo_name: str = target[3]
610612
if target[1].launch_type == "EXTERNAL":
611613
LOG.error(
612614
f"x-elbv2.{load_balancer.name} - Target family {family.name} uses EXTERNAL launch type. Ignoring"
613615
)
614616
continue
615-
tgt_group = define_service_target_group_definition(
616-
load_balancer, family, target[1], target[2], res_root_stack
617+
tgt_group: ComposeTargetGroup = define_service_target_group_definition(
618+
load_balancer, family, target_service, service_def, res_root_stack
617619
)
618620
for service_name, service in load_balancer.services.items():
619-
target_name = f"{family.name}:{target[1].name}"
621+
target_name = f"{family.name}:{target_service.name}"
620622
if target_name not in service_name:
621623
continue
622-
if target_name == service_name and tgt_group.Port == int(service["port"]):
624+
if (service_name == target_combo_name) or (
625+
service_name.find(target_name) == 0
626+
and tgt_group.Port == int(service["port"])
627+
):
623628
service["target_arn"] = Ref(tgt_group)
624629
identified.append(True)
625630
break
@@ -629,7 +634,6 @@ def handle_services_association(
629634
f"{load_balancer.module.res_key}.{load_balancer.name} - No services found as targets. Skipping association"
630635
)
631636
return
632-
633637
for listener in load_balancer.new_listeners:
634638
listener.map_lb_target_groups_service_to_listener_targets(load_balancer)
635639

@@ -657,7 +661,6 @@ def handle_target_groups_association(
657661
add_outputs(template, load_balancer.outputs)
658662
_targets = set_else_none("TargetGroups", load_balancer.definition, {})
659663
if not _targets:
660-
print("NO TARGET GROUPS")
661664
return
662665
for _target_name, _target_def in _targets.items():
663666
props = {}
@@ -686,7 +689,6 @@ def handle_target_groups_association(
686689
listener.map_target_group_to_listener(_tgt_group)
687690

688691
for listener in load_balancer.lookup_listeners.values():
689-
print("MAPPING TARGET TO LISTENER", _tgt_group, listener)
690692
listener.map_target_group_to_listener(_tgt_group)
691693

692694
for listener_port, listener_def in load_balancer.lookup_listeners.items():

ecs_composex/elbv2/elbv2_stack/elbv2.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,15 @@ def set_listeners(self, template):
156156
f" - Target {target['name']} is not a valid value. Must match",
157157
LISTENER_TARGET_RE.pattern,
158158
)
159-
if (
159+
simple_family: str = (
160160
f"{target_parts.group('family')}:{target_parts.group('container')}"
161-
not in self.services
162-
):
161+
)
162+
family_id: str = (
163+
simple_family + ":" + target_parts.group("port")
164+
if target_parts.group("port")
165+
else simple_family
166+
)
167+
if family_id not in self.services:
163168
listener_def["Targets"].remove(target)
164169
if keyisset("Targets", listener_def) or keyisset(
165170
"DefaultActions", listener_def
@@ -230,7 +235,7 @@ def set_services_targets(self, settings):
230235
f_service.family,
231236
f_service,
232237
service_def,
233-
f"{family_combo_name}{service_def['port']}",
238+
family_combo_name,
234239
)
235240
)
236241
break

ecs_composex/elbv2/elbv2_stack/elbv2_listener/lookup_listener.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from troposphere import Template
1212

1313
from compose_x_common.aws.elasticloadbalancing import LB_V2_LISTENER_ARN_RE
14-
from compose_x_common.compose_x_common import keyisset, keypresent, set_else_none
14+
from compose_x_common.compose_x_common import keyisset, set_else_none
1515
from troposphere import Ref
1616
from troposphere.cognito import UserPoolClient
1717
from troposphere.elasticloadbalancingv2 import ListenerRule
@@ -21,16 +21,10 @@
2121
from ecs_composex.common.logging import LOG
2222
from ecs_composex.elbv2.elbv2_stack.helpers import (
2323
LISTENER_TARGET_RE,
24-
add_acm_certs_arn,
2524
define_actions,
26-
define_listener_rules_actions,
2725
define_target_conditions,
28-
handle_default_actions,
29-
handle_non_default_services,
3026
import_cognito_pool,
31-
import_new_acm_certs,
3227
map_service_target,
33-
tea_pot,
3428
validate_duplicate_targets,
3529
)
3630
from ecs_composex.resources_import import import_record_properties
@@ -86,7 +80,6 @@ def __init__(self, lb: Elbv2, port: int, definition: dict):
8680
and isinstance(self.definition[self.targets_keys], list)
8781
else []
8882
)
89-
print("PROPS?", self.properties)
9083

9184
def __repr__(self):
9285
return self.arn
@@ -216,13 +209,11 @@ def map_lb_target_groups_service_to_listener_targets(self, lb: Elbv2) -> None:
216209
)
217210

218211
def map_target_group_to_listener(self, target_group: MergedTargetGroup) -> None:
219-
print("MAPPING TARGET TO LOOKUP LISTENER")
220212
if not self.services:
221213
LOG.warning(
222214
f"{self.lb.module.res_key}.{self.lb.name} - Listener {self.Port} - No Targets defined."
223215
)
224216
return
225-
print("TARGET GROUP??", target_group)
226217
for _tgt_group in self.services:
227218
_tgt_name = _tgt_group["name"]
228219
if _tgt_name == target_group.name:

0 commit comments

Comments
 (0)