diff --git a/main.py b/main.py index 846fb42..2ad3183 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,6 @@ import os import json +from time import sleep import requests @@ -75,6 +76,14 @@ class PortainerClient: return f"Downloaded newer image for {image}" in status + def ping_server(self): + try: + r = requests.get(f"{self.api_url}/", headers=self._get_headers()) + except requests.exceptions.ConnectionError: + return False + + return r.status_code == 200 + def update_repositories(): for repo_path in config.git_repositories: @@ -118,6 +127,9 @@ if __name__ == '__main__': print(f"Restarting {stack_name}") if endpoint == 2 and stack_name in ('portainer', 'traefik'): update_local_stack(stack) + while not client.ping_server(): + print("Waiting for server to be back online...") + sleep(1) else: client.upgrade_stack(stack)