refac: production mode startup logic

This commit is contained in:
Jörn-Michael Miehe 2023-10-20 11:50:52 +02:00
parent b8b1c30313
commit 2b17aa5b8f
3 changed files with 16 additions and 4 deletions

View file

@ -16,6 +16,9 @@
"PYDEVD_DISABLE_FILE_VALIDATION": "1",
"LOG_LEVEL": "DEBUG",
"WEBDAV__CACHE_TTL": "30",
// "PRODUCTION_MODE": "true",
// "WEBDAV__RETRIES": "5",
// "WEBDAV__RETRY_DELAY": "1",
},
"justMyCode": true
}

View file

@ -53,15 +53,23 @@ if SETTINGS.production_mode:
name="frontend",
)
for _ in range(SETTINGS.webdav.retries):
def check_webdav(retry: int) -> bool | None:
if WebDAV._webdav_client.check(""):
break
return True
_logger.warning(
"Waiting for WebDAV connection to %s ...",
"WebDAV connection to %s failed (try %d of %d)",
repr(SETTINGS.webdav.url),
retry + 1,
SETTINGS.webdav.retries,
)
time.sleep(30)
if retry < SETTINGS.webdav.retries:
_logger.debug("Retrying in %d seconds ...", SETTINGS.webdav.retry_delay)
time.sleep(SETTINGS.webdav.retry_delay)
if not any(check_webdav(n) for n in range(SETTINGS.webdav.retries)):
raise ConnectionError("WebDAV connection failed")
else:
assert WebDAV._webdav_client.check("")

View file

@ -54,6 +54,7 @@ class WebDAVSettings(DAVSettings):
disable_check: bool = False
retries: int = 20
retry_delay: int = 30
prefix: str = "/ovdashboard"
@property