From fb0a2f4c08408f1adc1829993c6564d228e05892 Mon Sep 17 00:00:00 2001 From: Andree Klattenhoff <andree.klattenhoff@open-xchange.com> Date: Wed, 22 May 2024 20:59:10 +0200 Subject: [PATCH] Improve logging if fetch for manifest.json/meta.json failed --- src/version.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/version.js b/src/version.js index 304aef7..29cb2fc 100644 --- a/src/version.js +++ b/src/version.js @@ -45,8 +45,15 @@ export const versionUpdateGauge = new Gauge({ export async function fetchVersionInfo () { const versions = await Promise.all(configMap.urls.map(async baseUrl => { try { - const response = await fetch(new URL('meta.json', baseUrl), { cache: 'no-store' }) - if (!response.ok) throw new Error() + const response = await fetch(new URL('meta.json', baseUrl), { cache: 'no-store' }).catch((err) => { + logger.error(err) + logger.warn(`[Version] Failed to load meta.json from UI container at ${baseUrl}.`) + throw new Error() + }) + if (!response.ok) { + logger.warn(`[Version] Failed to load meta.json from ${response.url} (Status: ${response.status}: ${response.statusText})`) + throw new Error() + } if (response.headers.get('version')) return response.headers.get('version') @@ -55,10 +62,18 @@ export async function fetchVersionInfo () { if (!version) throw new Error() return version } catch (err) { - logger.warn(`[Version] UI container at ${baseUrl} does not have meta.json. Fall back to version hash based on manifest.`) + logger.warn('[Version] Fall back to version hash based on manifest.') + } + + const response = await fetch(new URL('manifest.json', baseUrl), { cache: 'no-store' }).catch((err) => { + logger.error(err) + logger.warn(`[Version] Failed to load manifest.json from UI container at ${baseUrl}.`) + throw new Error(`Cannot fetch manifest.json from ${baseUrl}`) + }) + if (!response.ok) { + logger.warn(`[Version] Failed to load manifest.json from ${response.url} (Status: ${response.status}: ${response.statusText})`) + throw new Error(`Cannot fetch manifest.json from ${baseUrl}`) } - const response = await fetch(new URL('manifest.json', baseUrl), { cache: 'no-store' }) - if (!response.ok) throw new Error(`Cannot fetch manifest.json from ${baseUrl}`) const manifest = await response.json() return hash(manifest) })) -- GitLab