I think I should be able to reproduce this with a single-host devstack by doing something like:
1. create a host aggregate / AZ with the single host in it
2. create VM, assert the port has the device_owner with the AZ name in it and it matches the instance AZ
3. shelve (offload) the VM, assert the port's device_owner isn't changed even though the port's host binding details are cleared
4. change the host aggregate / AZ name to something new
5. unshelve the VM
6. assert the port's host binding information is updated but the device_owner still points at the old AZ name (but the instance AZ is updated)
I think I should be able to reproduce this with a single-host devstack by doing something like:
1. create a host aggregate / AZ with the single host in it
2. create VM, assert the port has the device_owner with the AZ name in it and it matches the instance AZ
3. shelve (offload) the VM, assert the port's device_owner isn't changed even though the port's host binding details are cleared
4. change the host aggregate / AZ name to something new
5. unshelve the VM
6. assert the port's host binding information is updated but the device_owner still points at the old AZ name (but the instance AZ is updated)