Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions routers/docker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

from models import DockerImage
from utils.bot_archiver import BotArchiver
from utils.docker_images import get_image_tags
from services.docker_service import DockerService
from deps import get_docker_service, get_bot_archiver

Expand Down Expand Up @@ -37,9 +38,7 @@ async def available_images(image_name: str = None, docker_service: DockerService
Dictionary with list of available image tags
"""
available_images = docker_service.get_available_images()
if image_name:
return [tag for image in available_images["images"] for tag in image.tags if image_name in tag]
return [tag for tag in available_images["images"]]
return get_image_tags(available_images["images"], image_name)


@router.get("/active-containers")
Expand Down
32 changes: 32 additions & 0 deletions test/test_docker_router.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
from types import SimpleNamespace

from utils.docker_images import get_image_tags


def test_get_image_tags_without_filter_returns_serializable_tags():
result = get_image_tags(
[
SimpleNamespace(tags=["hummingbot/hummingbot:latest", "hummingbot/hummingbot:dev"]),
SimpleNamespace(tags=[]),
SimpleNamespace(tags=["hummingbot/gateway:latest"]),
]
)

assert result == [
"hummingbot/hummingbot:latest",
"hummingbot/hummingbot:dev",
"hummingbot/gateway:latest",
]


def test_get_image_tags_with_filter_returns_matching_tags():
result = get_image_tags(
[
SimpleNamespace(tags=["hummingbot/hummingbot:latest", "hummingbot/hummingbot:dev"]),
SimpleNamespace(tags=[]),
SimpleNamespace(tags=["hummingbot/gateway:latest"]),
],
image_name="gateway",
)

assert result == ["hummingbot/gateway:latest"]
5 changes: 5 additions & 0 deletions utils/docker_images.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
def get_image_tags(images, image_name: str = None):
image_tags = [tag for image in images for tag in image.tags]
if image_name:
return [tag for tag in image_tags if image_name in tag]
return image_tags