From c8c2b4a09c40bd8a868e9e91510d228c33411218 Mon Sep 17 00:00:00 2001 From: Denis Rouzaud Date: Tue, 26 Mar 2024 16:11:43 +0100 Subject: [PATCH] fix no image yet --- scripts/get_docker_image_version.py | 58 ++++++++++++++++------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/scripts/get_docker_image_version.py b/scripts/get_docker_image_version.py index 8bb7820..96739e2 100755 --- a/scripts/get_docker_image_version.py +++ b/scripts/get_docker_image_version.py @@ -17,42 +17,48 @@ distro = args.dist #default_distro = args.default_dist - if args.qgis == 'dekstop': + stable = "" + ltr = "" + + if args.qgis == 'desktop': repo_name = 'qgis' else: repo_name = 'qgis-server' url = f'https://registry.hub.docker.com/v2/repositories/qgis/{repo_name}/tags?page_size=10000' - data = requests.get(url).content.decode('utf-8') - tags = json.loads(data)['results'] + r = requests.get(url) + if r.status_code == 404: + # the image does not exist yet + pass + else: + data = r.content.decode('utf-8') + tags = json.loads(data)['results'] - stable_sha = None - ltr_sha = None + stable_sha = None + ltr_sha = None - # get available tags - availables_tags = dict() + # get available tags + availables_tags = dict() - # get the full version - match = f'^\d\.\d+\.\d+-{distro}$' + # get the full version + match = f'^\d\.\d+\.\d+-{distro}$' - for tag in tags: - if tag['name'] == f'stable-{distro}': - stable_sha = tag['images'][0]['digest'] # sha - elif tag['name'] == f'ltr-{distro}': - ltr_sha = tag['images'][0]['digest'] # sha - elif re.match(match, tag['name']): - availables_tags[tag['name']] = tag['images'][0]['digest'] + for tag in tags: + if tag['name'] == f'stable-{distro}': + stable_sha = tag['images'][0]['digest'] # sha + elif tag['name'] == f'ltr-{distro}': + ltr_sha = tag['images'][0]['digest'] # sha + elif re.match(match, tag['name']): + availables_tags[tag['name']] = tag['images'][0]['digest'] - # determine what is ltr and stable - stable = "" - ltr = "" - for tag, sha in availables_tags.items(): - if sha == stable_sha: - stable = tag - stable = stable.replace(f'-{distro}', '') - elif sha == ltr_sha: - ltr = tag - ltr = ltr.replace(f'-{distro}', '') + # determine what is ltr and stable + for tag, sha in availables_tags.items(): + if sha == stable_sha: + stable = tag + stable = stable.replace(f'-{distro}', '') + elif sha == ltr_sha: + ltr = tag + ltr = ltr.replace(f'-{distro}', '') output = {'stable': stable, 'ltr': ltr} print(json.dumps(output))