← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1702454] [NEW] Transforming the RequestSpec object into legacy dicts doesn't support the requested_destination field

 

Public bug reported:

We added a new field in the RequestSpec object called
'requested_destination' and we began using it for evacuations by
https://review.openstack.org/#/c/315572/ (Newton)

That object was tranformed into legacy dictionaries (called
"filter_properties" and "request_spec") before being rehydrated for the
rebuild_instance() method in the conductor service. That said, when
transforming, we were forgetting about the 'requested_destination' field
in the object so that when we were calling the scheduler, we were never
using that field.

That bug was fixed implicitly by
https://review.openstack.org/#/c/469037/ which is now merged in master,
but the issue is still there in stable branches, and if you need to use
the legacy methods, you'll not have it.

As a consequence, the feature to pass a destination for evacuation is
not working in Newton and Ocata. Fortunately, given we didn't
transformed the object into dicts before calling the scheduler for live-
migrations, it does work for that action.

A proper resolution would be to make sure that we pass the
requested_destination field into 'filter_properties' so that when
transforming again into an object, we set again the field.

** Affects: nova
     Importance: High
     Assignee: Sylvain Bauza (sylvain-bauza)
         Status: Confirmed


** Tags: rebuild scheduler

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1702454

Title:
  Transforming the RequestSpec object into legacy dicts doesn't support
  the requested_destination field

Status in OpenStack Compute (nova):
  Confirmed

Bug description:
  We added a new field in the RequestSpec object called
  'requested_destination' and we began using it for evacuations by
  https://review.openstack.org/#/c/315572/ (Newton)

  That object was tranformed into legacy dictionaries (called
  "filter_properties" and "request_spec") before being rehydrated for
  the rebuild_instance() method in the conductor service. That said,
  when transforming, we were forgetting about the
  'requested_destination' field in the object so that when we were
  calling the scheduler, we were never using that field.

  That bug was fixed implicitly by
  https://review.openstack.org/#/c/469037/ which is now merged in
  master, but the issue is still there in stable branches, and if you
  need to use the legacy methods, you'll not have it.

  As a consequence, the feature to pass a destination for evacuation is
  not working in Newton and Ocata. Fortunately, given we didn't
  transformed the object into dicts before calling the scheduler for
  live-migrations, it does work for that action.

  A proper resolution would be to make sure that we pass the
  requested_destination field into 'filter_properties' so that when
  transforming again into an object, we set again the field.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1702454/+subscriptions


Follow ups