Skip to content

Commit 13c8036

Browse files
committed
sort nodes
1 parent 32a52db commit 13c8036

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,19 +82,26 @@
8282
).validate_python("io.simcore.osparc-node-termination-started")
8383

8484

85+
def _get_node_creation_date(node: Node) -> datetime.datetime:
86+
assert node.created_at # nosec
87+
return arrow.get(node.created_at).datetime
88+
89+
8590
async def get_monitored_nodes(
8691
docker_client: AutoscalingDocker, node_labels: list[DockerLabelKey]
8792
) -> list[Node]:
8893
node_label_filters = [f"{label}=true" for label in node_labels] + [
8994
f"{label}" for label in _OSPARC_SERVICE_READY_LABEL_KEYS
9095
]
91-
return TypeAdapter(list[Node]).validate_python(
96+
list_of_nodes = TypeAdapter(list[Node]).validate_python(
9297
await docker_client.nodes.list(filters={"node.label": node_label_filters})
9398
)
99+
list_of_nodes.sort(key=_get_node_creation_date)
100+
return list_of_nodes
94101

95102

96103
async def get_worker_nodes(docker_client: AutoscalingDocker) -> list[Node]:
97-
return TypeAdapter(list[Node]).validate_python(
104+
list_of_nodes = TypeAdapter(list[Node]).validate_python(
98105
await docker_client.nodes.list(
99106
filters={
100107
"role": ["worker"],
@@ -104,6 +111,8 @@ async def get_worker_nodes(docker_client: AutoscalingDocker) -> list[Node]:
104111
}
105112
)
106113
)
114+
list_of_nodes.sort(key=_get_node_creation_date)
115+
return list_of_nodes
107116

108117

109118
async def remove_nodes(

0 commit comments

Comments
 (0)