From 99b85ec8a945874225904c1e8b27db1197c5fe89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Diot?= Date: Thu, 16 Feb 2023 16:44:52 +0100 Subject: [PATCH] Fix Apicaller error with swarm --- src/common/utils/ApiCaller.py | 45 +++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/common/utils/ApiCaller.py b/src/common/utils/ApiCaller.py index 427821d5d..8dce5d7af 100644 --- a/src/common/utils/ApiCaller.py +++ b/src/common/utils/ApiCaller.py @@ -51,31 +51,34 @@ class ApiCaller: host=api_server_name or getenv("API_SERVER_NAME", "bwapi"), ) ) - elif bw_integration == "Swarm": - for instance in docker_client.services.list( - filters={"label": "bunkerweb.INSTANCE"} - ): - api_http_port = None - api_server_name = None - - for var in instance.attrs["Spec"]["TaskTemplate"]["ContainerSpec"][ - "Env" - ]: - if var.startswith("API_HTTP_PORT="): - api_http_port = var.replace("API_HTTP_PORT=", "", 1) - elif var.startswith("API_SERVER_NAME="): - api_server_name = var.replace("API_SERVER_NAME=", "", 1) - - self.__apis.append( - API( - f"http://{instance.name}:{api_http_port or getenv('API_HTTP_PORT', '5000')}", - host=api_server_name or getenv("API_SERVER_NAME", "bwapi"), - ) - ) else: docker_client = DockerClient( base_url=getenv("DOCKER_HOST", "unix:///var/run/docker.sock") ) + + if bw_integration == "Swarm": + for instance in docker_client.services.list( + filters={"label": "bunkerweb.INSTANCE"} + ): + api_http_port = None + api_server_name = None + + for var in instance.attrs["Spec"]["TaskTemplate"]["ContainerSpec"][ + "Env" + ]: + if var.startswith("API_HTTP_PORT="): + api_http_port = var.replace("API_HTTP_PORT=", "", 1) + elif var.startswith("API_SERVER_NAME="): + api_server_name = var.replace("API_SERVER_NAME=", "", 1) + + self.__apis.append( + API( + f"http://{instance.name}:{api_http_port or getenv('API_HTTP_PORT', '5000')}", + host=api_server_name or getenv("API_SERVER_NAME", "bwapi"), + ) + ) + return + for instance in docker_client.containers.list( filters={"label": "bunkerweb.INSTANCE"} ):