prepare_instance() of new boot interface do not get called when boot_option="local" and image being deployed is partition image

Bug #1488338 reported by Shivanand Tendulker
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Fix Released
High
Shivanand Tendulker

Bug Description

For DIB ramdisk, prepare_instance() of new boot interface do not get called when boot_option="local" and image being deployed is partition image.

The call to prepare_instance() is after retrun in that code path in iscsi_deploy.py
https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/iscsi_deploy.py#L837-L848

def pass_deploy_info(self, task, **kwargs):
...

  try:
            if deploy_utils.get_boot_option(node) == "local":
                deploy_utils.try_set_boot_device(task, boot_devices.DISK)

                if not is_whole_disk_image:
                    LOG.debug('Installing the bootloader on node %s',
                              node.uuid)
                    deploy_utils.notify_ramdisk_to_proceed(kwargs['address'])
                    task.process_event('wait')
                    return

            task.driver.boot.prepare_instance(task)
   except Exception as e:
...

Tags: pxe
Changed in ironic:
assignee: nobody → Shivanand Tendulker (shivanand-tendulker)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

Fix proposed to branch: master
Review: https://review.openstack.org/216756

Changed in ironic:
status: New → In Progress
Dmitry Tantsur (divius)
Changed in ironic:
importance: Undecided → High
tags: added: pxe
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

Reviewed: https://review.openstack.org/216756
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=db16066b52bc1196e7829c070efd1d96c7728b34
Submitter: Jenkins
Branch: master

commit db16066b52bc1196e7829c070efd1d96c7728b34
Author: Shivanand Tendulker <email address hidden>
Date: Mon Aug 24 23:42:13 2015 -0700

    Ensure that pass_deploy_info() always calls boot.prepare_instance()

    Currently, when pass_deploy_info vendor passthru is called for local
    boot, boot.prepare_instance() is not called. This doesn't give an
    opportunity for boot interfaces to do the required things for local
    boot. This commit refactors the code so that pass_deploy_info()
    always calls boot.prepare_instance()

    Closes-Bug: 1488338
    Change-Id: Ibf03caa9cf8a695f6269a3c2a6886cbf11c04b22

Changed in ironic:
status: In Progress → Fix Committed
Changed in ironic:
milestone: none → 4.1.0
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.