← Back to team overview

yahoo-eng-team team mailing list archive

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

 

Reviewed:  https://review.openstack.org/481116
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=7317afd3201c4f9f21d3f37dab08423dae236b17
Submitter: Zuul
Branch:    master

commit 7317afd3201c4f9f21d3f37dab08423dae236b17
Author: Sylvain Bauza <sbauza@xxxxxxxxxx>
Date:   Thu Jul 6 17:17:31 2017 +0200

    Pass requested_destination in filter_properties
    
    When we added the requested_destination field for the RequestSpec object
    in Newton, we forgot to pass it to the legacy dictionary when wanting to
    use scheduler methods not yet supporting the NovaObject.
    As a consequence, when we were transforming the RequestSpec object into a
    tuple of (request_spec, filter_props) dicts and then rehydrating a new
    RequestSpec object using those dicts, the newly created object was not
    keeping that requested_destination field from the original.
    
    Change-Id: Iba0b88172e9a3bfd4f216dd364d70f7e01c60ee2
    Closes-Bug: #1702454


** Changed in: nova
       Status: In Progress => Fix Released

-- 
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):
  Fix Released
Status in OpenStack Compute (nova) newton series:
  In Progress
Status in OpenStack Compute (nova) ocata series:
  In Progress
Status in OpenStack Compute (nova) pike series:
  In Progress

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


References