diff --git a/cloudinit/config/cc_growpart.py b/cloudinit/config/cc_growpart.py index f2e847e3e6e..f0d35319c33 100644 --- a/cloudinit/config/cc_growpart.py +++ b/cloudinit/config/cc_growpart.py @@ -284,11 +284,15 @@ def resize(self, diskdev, partnum, partdev): def get_size(filename): - fd = os.open(filename, os.O_RDONLY) + fd = None try: + fd = os.open(filename, os.O_RDONLY) return os.lseek(fd, 0, os.SEEK_END) + except FileNotFoundError: + return None finally: - os.close(fd) + if fd: + os.close(fd) def device_part_info(devpath): @@ -571,7 +575,7 @@ def resize_devices(resizer, devices): continue try: - (old, new) = resizer.resize(disk, ptnum, blockdev) + old, new = resizer.resize(disk, ptnum, blockdev) if old == new: info.append( ( @@ -580,6 +584,15 @@ def resize_devices(resizer, devices): "no change necessary (%s, %s)" % (disk, ptnum), ) ) + elif new is None: + info.append( + ( + devent, + RESIZE.CHANGED, + "changed (%s, %s) from %s, new size is unknown" + % (disk, ptnum, old), + ) + ) else: info.append( (