Comment 0 for bug 1405448

Revision history for this message
Vladyslav Drok (vdrok) wrote :

Suppose you have a deployed node and you want to change one of its images in instance_info - kernel, ramdisk, image_source; or you may want to change the driver from pxe_ipmitool to agent_ipmitool and because of that you have to change deploy_kernel and deploy_ramdisk in driver_info.

After changing it in node's instance_info or driver_info in conductor log it can be seen that new images are downloaded to image cache, but files in /opt/stack/data/ironic/tftpboot/<node-uuid>/ or /var/lib/ironic/images/<node-uuid> are still hard linked to old values.

It happens because of this part of code: https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/image_cache.py#L153-L160 , where OSErrors are just ignored if they happen when hard link is created. OSError appears if you try to do e.g. os.link('aaa', 'bbb') and file 'bbb' already exists.