diff --git a/agent/main.py b/agent/main.py index fdb7f4a..00fa42e 100644 --- a/agent/main.py +++ b/agent/main.py @@ -135,13 +135,13 @@ def _start_net_client(docker_api=None): devices=["/dev/net/tun:/dev/net/tun"], detach=True, ) - for container in docker_api.containers.list(all=True): + for container in docker_api.containers.list(all=True, sparse=False, ignore_removed=True): if container.name.startswith(net_container_name) and container.id != net_container.id: container.remove(force=True) net_container.rename(net_container_name) sly.logger.info("Sly-net-client is started") except: - for container in docker_api.containers.list(): + for container in docker_api.containers.list(sparse=False, ignore_removed=True): if ( container.name.startswith(net_container_name) and not container.name == net_container_name diff --git a/agent/worker/agent.py b/agent/worker/agent.py index b162f40..0efc20e 100644 --- a/agent/worker/agent.py +++ b/agent/worker/agent.py @@ -128,7 +128,7 @@ def _remove_old_agent(self): agent_utils.check_and_remove_agent_with_old_name(dc) - for cont in dc.containers.list(): + for cont in dc.containers.list(sparse=False, ignore_removed=True): if cont.name.startswith(agent_name_start): agent_same_token.append(cont) @@ -149,7 +149,7 @@ def _update_net_client(self, dc: docker.DockerClient): sly_net_client_image_name = constants.NET_CLIENT_DOCKER_IMAGE() sly_net_container = None - for container in dc.containers.list(): + for container in dc.containers.list(sparse=False, ignore_removed=True): if container.name == net_container_name: sly_net_container: Container = container break @@ -219,7 +219,7 @@ def _update_net_client(self, dc: docker.DockerClient): def _validate_duplicated_agents(self): dc = docker.from_env() agent_same_token = [] - for cont in dc.containers.list(): + for cont in dc.containers.list(sparse=False, ignore_removed=True): if constants.CONTAINER_NAME() in cont.name: agent_same_token.append(cont) if len(agent_same_token) > 1: @@ -417,7 +417,7 @@ def _forget_task(self, task_id): @staticmethod def _remove_containers(label_filter): dc = docker.from_env() - stop_list = dc.containers.list(all=True, filters=label_filter) + stop_list = dc.containers.list(all=True, filters=label_filter, sparse=False, ignore_removed=True) for cont in stop_list: cont.remove(force=True) return stop_list @@ -606,7 +606,7 @@ def task_stream_net_client_logs(self): net_container_name = constants.NET_CLIENT_CONTAINER_NAME() sly_net_container = None - for container in self.docker_api.containers.list(): + for container in self.docker_api.containers.list(sparse=False, ignore_removed=True): if container.name == net_container_name: sly_net_container: Container = container break diff --git a/agent/worker/agent_utils.py b/agent/worker/agent_utils.py index 9c06be2..1c97162 100644 --- a/agent/worker/agent_utils.py +++ b/agent/worker/agent_utils.py @@ -930,7 +930,7 @@ def check_and_remove_agent_with_old_name(dc: DockerClient): agent_old_name = f"supervisely-agent-{constants.TOKEN()}" cur_agent_contains_old_name = cur_agent_cont.name.startswith(agent_old_name) - for cont in dc.containers.list(): + for cont in dc.containers.list(sparse=False, ignore_removed=True): if cont.name.startswith(agent_name_start): agent_same_token.append(cont)