← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1400269] [NEW] unable to destroy bare-metal instance when flavor is deleted

 

Public bug reported:

Get error if delete flavor before delete instance.
This is caused by ironic driver in nova.
We have below code in _cleanup_deploy function in nova/virt/ironic/driver.py
if flavor is None:
            # TODO(mrda): It would be better to use instance.get_flavor() here
            # but right now that doesn't include extra_specs which are required
            flavor = objects.Flavor.get_by_id(context,
                                              instance['instance_type_id'])
So if the flavor is deleted before we destroy bare metal node, we get FlavorNotFoud exception without handling.


At same time, I found the flavor is used to clean deploy ramdisk/kernel in driver_info, which was plan to remove in Kilo, are we ready for that?

** Affects: ironic
     Importance: Undecided
     Assignee: Tan Lin (tan-lin-good)
         Status: New

** Affects: nova
     Importance: Undecided
     Assignee: Tan Lin (tan-lin-good)
         Status: New

** Also affects: nova
   Importance: Undecided
       Status: New

** Changed in: nova
     Assignee: (unassigned) => Tan Lin (tan-lin-good)

** Changed in: ironic
     Assignee: (unassigned) => Tan Lin (tan-lin-good)

** Description changed:

  Get error if delete flavor before delete instance.
  This is caused by ironic driver in nova.
  We have below code in _cleanup_deploy function in nova/virt/ironic/driver.py
  if flavor is None:
-             # TODO(mrda): It would be better to use instance.get_flavor() here
-             # but right now that doesn't include extra_specs which are required
-             flavor = objects.Flavor.get_by_id(context,
-                                               instance['instance_type_id'])
+             # TODO(mrda): It would be better to use instance.get_flavor() here
+             # but right now that doesn't include extra_specs which are required
+             flavor = objects.Flavor.get_by_id(context,
+                                               instance['instance_type_id'])
  So if the flavor is deleted before we destroy bare metal node, we get FlavorNotFoud exception without handling.
- I prefer to add to log and ignore the exception to solve this one.
  
- At same time, I found the flavor is used to clean deploy ramdisk/kernel
- in driver_info, which was plan to remove in Kilo, are we ready for that?
+ 
+ At same time, I found the flavor is used to clean deploy ramdisk/kernel in driver_info, which was plan to remove in Kilo, are we ready for that?

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

Title:
  unable to destroy bare-metal instance when flavor is deleted

Status in OpenStack Bare Metal Provisioning Service (Ironic):
  New
Status in OpenStack Compute (Nova):
  New

Bug description:
  Get error if delete flavor before delete instance.
  This is caused by ironic driver in nova.
  We have below code in _cleanup_deploy function in nova/virt/ironic/driver.py
  if flavor is None:
              # TODO(mrda): It would be better to use instance.get_flavor() here
              # but right now that doesn't include extra_specs which are required
              flavor = objects.Flavor.get_by_id(context,
                                                instance['instance_type_id'])
  So if the flavor is deleted before we destroy bare metal node, we get FlavorNotFoud exception without handling.

  
  At same time, I found the flavor is used to clean deploy ramdisk/kernel in driver_info, which was plan to remove in Kilo, are we ready for that?

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


Follow ups

References