Page MenuHomeVyOS Platform

cloud-init cannot clean up previously downloaded instance data
Open, HighPublicBUG

Description

When cloud-init runs in the update ISO, it becomes apparent that there's a logic error: it assumes that the instance data is a single file, when in reality it's now a directory.

2024-12-05 18:23:06,198 - util.py[DEBUG]: Attempting to remove /opt/vyatta/etc/config/cloud/instance
2024-12-05 18:23:06,198 - util.py[WARNING]: failed stage init-local
2024-12-05 18:23:06,198 - util.py[DEBUG]: failed stage init-local
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 761, in status_wrapper
    ret = functor(name, args)
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 384, in main_init
    init.fetch(existing=existing)
  File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 432, in fetch
    return self._get_data_source(existing=existing)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 319, in _get_data_source
    util.del_file(self.paths.instance_link)
  File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1900, in del_file
    raise e
  File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1897, in del_file
    os.unlink(path)
IsADirectoryError: [Errno 21] Is a directory: '/opt/vyatta/etc/config/cloud/instance'

Since it's only happens when cloud-init's work was already done during the initial deployment, this issue has no effect on the system operation.

Details

Version
1.4.1
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)