Driving any logic off the return value of migrateToURI* is really a bad idea. When migrateToURI* fails, there are many different states the VM can be in on either the src/dst host, and the migrateToURI return status gives no useful info about which applies. Migration might even have 100% succeeded, despite migrateToURI returning an error. This is why Nova stopped looking at migrateToURI error status and switched to the job info records, to solve https://bugs.launchpad.net/nova/+bug/1414065
Driving any logic off the return value of migrateToURI* is really a bad idea. When migrateToURI* fails, there are many different states the VM can be in on either the src/dst host, and the migrateToURI return status gives no useful info about which applies. Migration might even have 100% succeeded, despite migrateToURI returning an error. This is why Nova stopped looking at migrateToURI error status and switched to the job info records, to solve https:/ /bugs.launchpad .net/nova/ +bug/1414065