Fix exception in image cleanup

Fix the following Traceback:
Traceback (most recent call last):
  File "/opt/nodepool/lib/python3.11/site-packages/nodepool/builder.py", line 402, in _cleanup
    self._pruneLocalBuildFormats(
  File "/opt/nodepool/lib/python3.11/site-packages/nodepool/builder.py", line 434, in _pruneLocalBuildFormats
    if not diskimage.delete_after_upload:
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'delete_after_upload'

Change-Id: Idb6c9be905f12aa81fe309c88625b0efd4cbc8ad
This commit is contained in:
Dong Zhang 2025-03-05 12:41:55 +01:00
parent 454f1edb39
commit 58be304264

View File

@ -430,20 +430,25 @@ class CleanupWorker(BaseWorker):
'''
images_dir = self._config.images_dir
diskimage = self._config.diskimages.get(image_name)
if not diskimage.delete_after_upload:
return
to_keep = set(diskimage.keep_image_types)
# Examine the currently uploaded images and determine which
# formats need to be kept for future uploads.
for provider in providers:
if not provider.manage_images:
continue
if image_name not in provider.diskimages:
continue
upload = self._zk.getMostRecentBuildImageUploads(
1, image_name, build_id, provider.name, zk.READY)
if not upload:
to_keep.add(provider.image_type)
# If the diskimage is not in the config, it can be deleted.
if not diskimage:
to_keep = set()
else:
if not diskimage.delete_after_upload:
return
to_keep = set(diskimage.keep_image_types)
# Examine the currently uploaded images and determine which
# formats need to be kept for future uploads.
for provider in providers:
if not provider.manage_images:
continue
if image_name not in provider.diskimages:
continue
upload = self._zk.getMostRecentBuildImageUploads(
1, image_name, build_id, provider.name, zk.READY)
if not upload:
to_keep.add(provider.image_type)
base = "-".join([image_name, build_id])
files = DibImageFile.from_image_id(images_dir, base)