Looking at https://github.com/openstack/nova/blob/0315d46766fa4357c6608541be39aada4eb5941d/nova/compute/manager.py#L2878-L2890
It seems that when the instance is on shared storage, we're creating a new ImageMeta object from an empty dict, instead of trying to get the older image metadata (only if image_ref is None)
But, there is a flaw, evacuate is called by the compute API with setting image_ref=None. https://github.com/openstack/nova/blob/6464c0a4c788df816b33a63c6d2bf2c61349f052/nova/compute/api.py#L3514
So there is litterally no way to get the previous image_ref when evacuating a shared-storage-backed instance because we don't use it.
Looking at https:/ /github. com/openstack/ nova/blob/ 0315d46766fa435 7c6608541be39aa da4eb5941d/ nova/compute/ manager. py#L2878- L2890
It seems that when the instance is on shared storage, we're creating a new ImageMeta object from an empty dict, instead of trying to get the older image metadata (only if image_ref is None)
But, there is a flaw, evacuate is called by the compute API with setting image_ref=None. /github. com/openstack/ nova/blob/ 6464c0a4c788df8 16b33a63c6d2bf2 c61349f052/ nova/compute/ api.py# L3514
https:/
So there is litterally no way to get the previous image_ref when evacuating a shared- storage- backed instance because we don't use it.