From 0106758ceb313eb25940e58b144d5b11120dd073 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Wed, 1 Jul 2026 21:06:32 -0400 Subject: [PATCH] Prevent overwrite of existing files when saving licenses --- confluent_server/aiohmi/ipmi/oem/lenovo/imm.py | 3 +++ confluent_server/aiohmi/redfish/oem/generic.py | 3 +++ confluent_server/aiohmi/redfish/oem/lenovo/xcc.py | 3 +++ confluent_server/aiohmi/redfish/oem/lenovo/xcc3.py | 3 +++ 4 files changed, 12 insertions(+) diff --git a/confluent_server/aiohmi/ipmi/oem/lenovo/imm.py b/confluent_server/aiohmi/ipmi/oem/lenovo/imm.py index 2af4c078..3fe2e8f9 100644 --- a/confluent_server/aiohmi/ipmi/oem/lenovo/imm.py +++ b/confluent_server/aiohmi/ipmi/oem/lenovo/imm.py @@ -2592,6 +2592,9 @@ class XCCClient(IMMClient): if filename: url = '/download/' + filename savefile = os.path.join(directory, filename) + if os.path.exists(savefile): + raise pygexc.InvalidParameterValue( + 'File already exists: ' + savefile) wc = await self.wc() fd = webclient.make_downloader(wc, url, savefile) while not fd.completed(): diff --git a/confluent_server/aiohmi/redfish/oem/generic.py b/confluent_server/aiohmi/redfish/oem/generic.py index fe280dcc..87c052a2 100644 --- a/confluent_server/aiohmi/redfish/oem/generic.py +++ b/confluent_server/aiohmi/redfish/oem/generic.py @@ -1658,6 +1658,9 @@ class OEMHandler(object): if dload: filename = os.path.basename(dload) savefile = os.path.join(directory, filename) + if os.path.exists(savefile): + raise exc.PyghmiException( + 'File {} already exists'.format(savefile)) dler = webclient.make_downloader(fishclient.wc, dload, savefile) await dler.join() yield savefile diff --git a/confluent_server/aiohmi/redfish/oem/lenovo/xcc.py b/confluent_server/aiohmi/redfish/oem/lenovo/xcc.py index 2a83f06d..575b3726 100644 --- a/confluent_server/aiohmi/redfish/oem/lenovo/xcc.py +++ b/confluent_server/aiohmi/redfish/oem/lenovo/xcc.py @@ -1697,6 +1697,9 @@ class OEMHandler(generic.OEMHandler): if filename: url = '/download/' + filename savefile = os.path.join(directory, filename) + if os.path.exists(savefile): + raise pygexc.InvalidParameterValue( + 'File {0} already exists'.format(savefile)) fd = webclient.make_downloader(wc, url, savefile) while not fd.completed(): try: diff --git a/confluent_server/aiohmi/redfish/oem/lenovo/xcc3.py b/confluent_server/aiohmi/redfish/oem/lenovo/xcc3.py index 365571fa..3c465a34 100644 --- a/confluent_server/aiohmi/redfish/oem/lenovo/xcc3.py +++ b/confluent_server/aiohmi/redfish/oem/lenovo/xcc3.py @@ -789,6 +789,9 @@ class OEMHandler(generic.OEMHandler): fname = os.path.basename(durl) if autosuffix and not savefile.endswith('.tar.zst'): savefile += '-{0}'.format(fname) + if os.path.exists(savefile): + raise pygexc.InvalidParameterValue( + 'File {0} already exists'.format(savefile)) fd = webclient.make_downloader(self.webclient, durl, savefile) while not fd.completed(): try: