Skip to content

Commit 21e5648

Browse files
committed
remove circular dependency
1 parent 1d4eabe commit 21e5648

File tree

2 files changed

+12
-15
lines changed

2 files changed

+12
-15
lines changed

services/autoscaling/src/simcore_service_autoscaling/modules/auto_scaling_core.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -340,10 +340,10 @@ async def _sorted_allowed_instance_types(app: FastAPI) -> list[EC2InstanceType]:
340340
allowed_instance_type_names
341341
), "EC2_INSTANCES_ALLOWED_TYPES cannot be empty!"
342342

343-
allowed_instance_types: list[EC2InstanceType] = (
344-
await ec2_client.get_ec2_instance_capabilities(
345-
cast(set[InstanceTypeType], set(allowed_instance_type_names))
346-
)
343+
allowed_instance_types: list[
344+
EC2InstanceType
345+
] = await ec2_client.get_ec2_instance_capabilities(
346+
cast(set[InstanceTypeType], set(allowed_instance_type_names))
347347
)
348348

349349
def _as_selection(instance_type: EC2InstanceType) -> int:
@@ -631,8 +631,8 @@ async def _find_needed_instances(
631631
defined_ec2 = find_selected_instance_type_for_task(
632632
task_required_ec2_instance,
633633
available_ec2_types,
634-
auto_scaling_mode,
635634
task,
635+
auto_scaling_mode.get_task_required_resources(task),
636636
)
637637
needed_new_instance_types_for_tasks.append(
638638
AssignedTasksToInstanceType(
@@ -1075,9 +1075,9 @@ async def _notify_based_on_machine_type(
10751075
launch_time_to_tasks: dict[datetime.datetime, list] = collections.defaultdict(list)
10761076
now = datetime.datetime.now(datetime.UTC)
10771077
for instance in instances:
1078-
launch_time_to_tasks[
1079-
instance.ec2_instance.launch_time
1080-
] += instance.assigned_tasks
1078+
launch_time_to_tasks[instance.ec2_instance.launch_time] += (
1079+
instance.assigned_tasks
1080+
)
10811081

10821082
for launch_time, tasks in launch_time_to_tasks.items():
10831083
time_since_launch = now - launch_time

services/autoscaling/src/simcore_service_autoscaling/utils/auto_scaling_core.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from typing import Final
55

66
from aws_library.ec2 import EC2InstanceBootSpecific, EC2InstanceData, EC2InstanceType
7+
from aws_library.ec2._models import Resources
78
from models_library.generated_models.docker_rest_api import Node
89
from types_aiobotocore_ec2.literals import InstanceTypeType
910

@@ -14,7 +15,6 @@
1415
)
1516
from ..core.settings import ApplicationSettings
1617
from ..models import AssociatedInstance
17-
from ..modules.auto_scaling_mode_base import BaseAutoscaling
1818
from . import utils_docker
1919

2020
_EC2_INTERNAL_DNS_RE: Final[re.Pattern] = re.compile(r"^(?P<host_name>ip-[^.]+).*$")
@@ -138,8 +138,8 @@ def _instance_type_by_type_name(
138138
def find_selected_instance_type_for_task(
139139
instance_type_name: InstanceTypeType,
140140
available_ec2_types: list[EC2InstanceType],
141-
auto_scaling_mode: BaseAutoscaling,
142141
task,
142+
task_required_resources: Resources,
143143
) -> EC2InstanceType:
144144
filtered_instances = list(
145145
filter(
@@ -158,14 +158,11 @@ def find_selected_instance_type_for_task(
158158
selected_instance = filtered_instances[0]
159159

160160
# check that the assigned resources and the machine resource fit
161-
if (
162-
auto_scaling_mode.get_task_required_resources(task)
163-
> selected_instance.resources
164-
):
161+
if task_required_resources > selected_instance.resources:
165162
raise TaskRequirementsAboveRequiredEC2InstanceTypeError(
166163
task=task,
167164
instance_type=selected_instance,
168-
resources=auto_scaling_mode.get_task_required_resources(task),
165+
resources=task_required_resources,
169166
)
170167

171168
return selected_instance

0 commit comments

Comments
 (0)