From 7dedfdb5d7fd78a1a6842dc424a56d8257bf0224 Mon Sep 17 00:00:00 2001 From: Gentile G Date: Thu, 25 Apr 2024 10:54:06 +0200 Subject: [PATCH] Adding function to wait for server to be back online after core element upgrade --- main.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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)