← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1496495] [NEW] breaking change to utility functions

 

Public bug reported:

Change b7e9a64416ff239a4c1b8501f398796b02c46ce7 introduces a
filter_deleted flag into the metadata_to_dict function in nova/utils.py
and modified two utility functions to use this flag.  Unfortunately, the
value passed makes these utility functions behave differently:

def instance_sys_meta(instance) -> sets filter_deleted=True -> change in
behavior (now includes deleted instance_system_metadata)

def get_image_from_system_metadata(system_meta) -> sets
filter_deleted=True -> change in behavior (now includes deleted
instance_system_metadata)

It's never a good idea to change the expected behavior of utility
functions.  I propose to fix this as follows:

(1) Fix bug #1496394, which will change the name of the flag from
'filter_deleted' to 'include_deleted' in the base function so hopefully
this problem won't happen again.

(2) Change the signatures of the two functions mentioned above to have
an optional 'include_deleted' parameter whose default setting will
preserve the original behavior of these functions.

(3) The change that introduced the flag was made to support the display
of metadata on deleted instances for server-detail-list calls using the
changes_since parameter, so check usage of the utility functions and
include passing the 'include_deleted' parameter if appropriate.

** Affects: nova
     Importance: Undecided
         Status: New

-- 
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/1496495

Title:
  breaking change to utility functions

Status in OpenStack Compute (nova):
  New

Bug description:
  Change b7e9a64416ff239a4c1b8501f398796b02c46ce7 introduces a
  filter_deleted flag into the metadata_to_dict function in
  nova/utils.py and modified two utility functions to use this flag.
  Unfortunately, the value passed makes these utility functions behave
  differently:

  def instance_sys_meta(instance) -> sets filter_deleted=True -> change
  in behavior (now includes deleted instance_system_metadata)

  def get_image_from_system_metadata(system_meta) -> sets
  filter_deleted=True -> change in behavior (now includes deleted
  instance_system_metadata)

  It's never a good idea to change the expected behavior of utility
  functions.  I propose to fix this as follows:

  (1) Fix bug #1496394, which will change the name of the flag from
  'filter_deleted' to 'include_deleted' in the base function so
  hopefully this problem won't happen again.

  (2) Change the signatures of the two functions mentioned above to have
  an optional 'include_deleted' parameter whose default setting will
  preserve the original behavior of these functions.

  (3) The change that introduced the flag was made to support the
  display of metadata on deleted instances for server-detail-list calls
  using the changes_since parameter, so check usage of the utility
  functions and include passing the 'include_deleted' parameter if
  appropriate.

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


Follow ups