[Openstack-operators] Problems with AggregateMultiTenancyIsolation while migrating an instance

Matt Riedemann mriedemos at gmail.com
Wed May 30 14:41:32 UTC 2018


On 5/30/2018 5:21 AM, Massimo Sgaravatto wrote:
> The problem is indeed with the tenant_id
> 
> When I create a VM, tenant_id is ee1865a76440481cbcff08544c7d580a 
> (SgaraPrj1), as expected
> 
> But when, as admin, I run the "nova migrate" command to migrate the very 
> same instance, the tenant_id is 56c3f5c047e74a78a71438c4412e6e13 (admin) !

OK that's good information.

Tracing the code for cold migrate in ocata, we get the request spec that 
was created when the instance was created here:

https://github.com/openstack/nova/blob/stable/ocata/nova/compute/api.py#L3339

As I mentioned earlier, if it was cold migrating an instance created 
before Newton and the online data migration wasn't run on it, we'd 
create a temporary request spec here:

https://github.com/openstack/nova/blob/stable/ocata/nova/conductor/manager.py#L263

But that shouldn't be the case in your scenario.

Right before we call the scheduler, for some reason, we completely 
ignore the request spec retrieved in the API, and re-create it from 
local scope variables in conductor:

https://github.com/openstack/nova/blob/stable/ocata/nova/conductor/tasks/migrate.py#L50

And *that* is precisely where this breaks down and takes the project_id 
from the current context (admin) rather than the instance:

https://github.com/openstack/nova/blob/stable/ocata/nova/objects/request_spec.py#L407

Thanks for your patience in debugging this Massimo! I'll get a bug 
reported and patch posted to fix it.

-- 

Thanks,

Matt



More information about the OpenStack-operators mailing list