From 6d4b8df12c6602461d57e6837b1f4802a3b67e4e Mon Sep 17 00:00:00 2001 From: Matteo Valentini Date: Mon, 5 Aug 2024 15:35:12 +0200 Subject: [PATCH] set-certificate: skip if certificate already exists Don't request a certificate if an updated custom one is already present. --- imageroot/actions/set-certificate/20writeconfig | 7 +++++++ imageroot/actions/set-certificate/21waitsync | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/imageroot/actions/set-certificate/20writeconfig b/imageroot/actions/set-certificate/20writeconfig index fc548f7..7ef2d91 100755 --- a/imageroot/actions/set-certificate/20writeconfig +++ b/imageroot/actions/set-certificate/20writeconfig @@ -16,11 +16,18 @@ import sys import os import uuid import yaml +from custom_certificate_manager import list_custom_certificates # Try to parse the stdin as JSON. # If parsing fails, output everything to stderr data = json.load(sys.stdin) + +#Don't request a certificate if it is already uploaded +for cert in list_custom_certificates(): + if cert.get('fqdn') == data['fqdn']: + sys.exit(0) + agent_id = os.getenv("AGENT_ID", "") if not agent_id: raise Exception("AGENT_ID not found inside the environemnt") diff --git a/imageroot/actions/set-certificate/21waitsync b/imageroot/actions/set-certificate/21waitsync index 386d401..6acc79c 100755 --- a/imageroot/actions/set-certificate/21waitsync +++ b/imageroot/actions/set-certificate/21waitsync @@ -10,11 +10,19 @@ import sys import time import agent from get_certificate import get_certificate +from custom_certificate_manager import list_custom_certificates data = json.load(sys.stdin) retry = 0 certificate = {} +#Don't wait if certificate it is already uploaded +for cert in list_custom_certificates(): + if cert.get('fqdn') == data['fqdn']: + certificate['obtained'] = True + json.dump(certificate, fp=sys.stdout) + exit(0) + sync_timeout = data['sync_timeout'] if data.get('sync_timeout') is not None else 120 while get_certificate(data).get('fqdn') != data['fqdn'] and retry <= 10: