Skip to content

Commit 1072cf9

Browse files
committed
use common function
1 parent 6860373 commit 1072cf9

File tree

3 files changed

+30
-31
lines changed

3 files changed

+30
-31
lines changed

services/autoscaling/src/simcore_service_autoscaling/modules/cluster_scaling/_auto_scaling_core.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1518,12 +1518,10 @@ async def _pre_pull_docker_images_on_idle_hot_buffers(
15181518
updated_node.ec2_instance.type
15191519
]
15201520
)
1521-
desired_pre_pulled_images = list(
1522-
set(
1523-
app_settings.AUTOSCALING_EC2_INSTANCES.EC2_INSTANCES_COLD_START_DOCKER_IMAGES_PRE_PULLING
1524-
)
1525-
| set(ec2_boot_specific.pre_pull_images),
1521+
desired_pre_pulled_images = utils_docker.compute_full_list_of_pre_pulled_images(
1522+
ec2_boot_specific, app_settings
15261523
)
1524+
15271525
if pre_pulled_images != desired_pre_pulled_images:
15281526
_logger.info(
15291527
"%s needs to pre-pull images %s, currently has %s",
@@ -1540,11 +1538,8 @@ async def _pre_pull_docker_images_on_idle_hot_buffers(
15401538
node.ec2_instance.type
15411539
]
15421540
)
1543-
desired_pre_pulled_images = list(
1544-
set(
1545-
app_settings.AUTOSCALING_EC2_INSTANCES.EC2_INSTANCES_COLD_START_DOCKER_IMAGES_PRE_PULLING
1546-
)
1547-
| set(ec2_boot_specific.pre_pull_images),
1541+
desired_pre_pulled_images = utils_docker.compute_full_list_of_pre_pulled_images(
1542+
ec2_boot_specific, app_settings
15481543
)
15491544
_logger.info(
15501545
"triggering pre-pull of images %s on %s of type %s",

services/autoscaling/src/simcore_service_autoscaling/modules/cluster_scaling/_warm_buffer_machines_pool_core.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
)
4343
from ...core.settings import get_application_settings
4444
from ...models import WarmBufferPool, WarmBufferPoolManager
45+
from ...utils import utils_docker
4546
from ...utils.warm_buffer_machines import (
4647
dump_pre_pulled_images_as_tags,
4748
ec2_warm_buffer_startup_script,
@@ -76,10 +77,13 @@ def _handle_completed_cloud_init_instance(
7677
assert app_settings.AUTOSCALING_EC2_INSTANCES # nosec
7778

7879
_record_instance_ready_metrics(app, instance=instance)
79-
80-
if app_settings.AUTOSCALING_EC2_INSTANCES.EC2_INSTANCES_ALLOWED_TYPES[
81-
instance.type
82-
].pre_pull_images:
80+
pre_pull_images = utils_docker.compute_full_list_of_pre_pulled_images(
81+
app_settings.AUTOSCALING_EC2_INSTANCES.EC2_INSTANCES_ALLOWED_TYPES[
82+
instance.type
83+
],
84+
app_settings,
85+
)
86+
if pre_pull_images:
8387
buffer_pool.waiting_to_pull_instances.add(instance)
8488
else:
8589
buffer_pool.waiting_to_stop_instances.add(instance)
@@ -230,14 +234,18 @@ async def _terminate_instances_with_invalid_pre_pulled_images(
230234
instance_type
231235
].pre_pulled_instances()
232236

237+
desired_pre_pull_images = utils_docker.compute_full_list_of_pre_pulled_images(
238+
ec2_boot_config, app_settings
239+
)
240+
233241
for instance in all_pre_pulled_instances:
234242
pre_pulled_images = load_pre_pulled_images_from_tags(instance.tags)
235243
if (
236244
pre_pulled_images is not None
237-
) and pre_pulled_images != ec2_boot_config.pre_pull_images:
245+
) and pre_pulled_images != desired_pre_pull_images:
238246
_logger.info(
239247
"%s",
240-
f"{instance.id=} has invalid {pre_pulled_images=}, expected is {ec2_boot_config.pre_pull_images=}",
248+
f"{instance.id=} has invalid {pre_pulled_images=}, expected is {desired_pre_pull_images=}",
241249
)
242250
terminateable_instances.add(instance)
243251

@@ -387,9 +395,12 @@ async def _handle_pool_image_pulling(
387395
await ec2_client.set_instances_tags(
388396
tuple(instances_to_stop),
389397
tags=dump_pre_pulled_images_as_tags(
390-
app_settings.AUTOSCALING_EC2_INSTANCES.EC2_INSTANCES_ALLOWED_TYPES[
391-
instance_type
392-
].pre_pull_images
398+
utils_docker.compute_full_list_of_pre_pulled_images(
399+
app_settings.AUTOSCALING_EC2_INSTANCES.EC2_INSTANCES_ALLOWED_TYPES[
400+
instance_type
401+
],
402+
app_settings,
403+
)
393404
),
394405
)
395406
return instances_to_stop, broken_instances_to_terminate

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

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -103,25 +103,18 @@ def ec2_warm_buffer_startup_script(
103103
) -> str:
104104
startup_commands = ec2_boot_specific.custom_boot_scripts.copy()
105105
assert app_settings.AUTOSCALING_EC2_INSTANCES # nosec
106-
if (
107-
app_settings.AUTOSCALING_EC2_INSTANCES.EC2_INSTANCES_COLD_START_DOCKER_IMAGES_PRE_PULLING
108-
or ec2_boot_specific.pre_pull_images
109-
):
106+
desired_pre_pull_images = utils_docker.compute_full_list_of_pre_pulled_images(
107+
ec2_boot_specific, app_settings
108+
)
109+
if desired_pre_pull_images:
110110
assert app_settings.AUTOSCALING_REGISTRY # nosec
111111

112112
startup_commands.extend(
113113
(
114114
utils_docker.get_docker_login_on_start_bash_command(
115115
app_settings.AUTOSCALING_REGISTRY
116116
),
117-
utils_docker.write_compose_file_command(
118-
list(
119-
set(
120-
app_settings.AUTOSCALING_EC2_INSTANCES.EC2_INSTANCES_COLD_START_DOCKER_IMAGES_PRE_PULLING
121-
)
122-
| set(ec2_boot_specific.pre_pull_images),
123-
)
124-
),
117+
utils_docker.write_compose_file_command(desired_pre_pull_images),
125118
)
126119
)
127120
return " && ".join(startup_commands)

0 commit comments

Comments
 (0)