IPMI set_boot_device is not called or tested

Bug #1264596 reported by aeva black
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Fix Released
High
Ghe Rivero

Bug Description

First of all, we are not calling set_boot_device at all. At a minimum, we need to set the next boot to 'network' within the PXE driver's deploy() method. Better yet, we should default to setting all nodes to boot from network all the time, while allowing operators to manually change this only when they need to.

Secondly, the PXEAndIPMIToolDriver attempts to expose set_boot_device via vendor_passthru(), and while this is the correct place to expose it, there are no unit tests covering this code path and it is broken right now.

aeva black (tenbrae)
Changed in ironic:
status: New → Triaged
importance: Undecided → High
milestone: none → icehouse-3
tags: added: low-hanging-fruit
Imre Farkas (ifarkas)
Changed in ironic:
assignee: nobody → Imre Farkas (ifarkas)
Imre Farkas (ifarkas)
Changed in ironic:
assignee: Imre Farkas (ifarkas) → nobody
Ghe Rivero (ghe.rivero)
Changed in ironic:
assignee: nobody → Ghe Rivero (ghe.rivero)
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/71332

Changed in ironic:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

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

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

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

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

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

commit ef2a8c3cdae7ceca0dbb0ca11f0449ce9d5315a3
Author: Ghe Rivero <email address hidden>
Date: Thu Feb 6 16:34:16 2014 +0000

    Move ipmitool _set_boot_device to VendorPassthru

    _set_boot_device must be exposed via vendor_passthru, allowing
    operators to manually change it, and force to boot from net when
    performing a pxe deploy.
    Until now, it was just a private method of the power driver.

    Partial-Bug: #1264596
    Change-Id: I174f0a058bfe6276b7a42291661f3fd00de9a7ca

Changed in ironic:
assignee: Ghe Rivero (ghe.rivero) → Michael Davies (mrda)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

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

commit ccb4267f4245c3e659cf818c093f7200baeaec62
Author: Ghe Rivero <email address hidden>
Date: Mon Feb 10 22:39:28 2014 +0000

    Move ipminative _set_boot_device to VendorPassthru

    _set_boot_device must be exposed via vendor_passthru, allowing
    operators to manually change it, and force to boot from net when
    performing a pxe deploy.
    Until now, it was just a private method of the power driver.

    Change-Id: Iac3a7183db4c3486bd6a2aa1ba36bf33e11722a9
    Partial-Bug: #1264596

Changed in ironic:
assignee: Michael Davies (mrda) → Ghe Rivero (ghe.rivero)
aeva black (tenbrae)
Changed in ironic:
milestone: icehouse-3 → icehouse-rc1
Changed in ironic:
assignee: Ghe Rivero (ghe.rivero) → Devananda van der Veen (devananda)
aeva black (tenbrae)
tags: removed: low-hanging-fruit
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

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

commit 9377e447b8327d010c2a32312a7c8c5f778a381e
Author: Ghe Rivero <email address hidden>
Date: Wed Mar 5 19:12:15 2014 +0100

    Generic MixinVendorInterface using static mapping

    Use a MixinVendorInterface and a dict for static mapping,
    so every method:vendor interface mapping is explicit.

    Example:

    self.pxe_vendor = pxe.VendorPassthru()
    self.ipmi_vendor = ipminative.VendorPassthru()
    self.mapping = {'pass_deploy_info': self.pxe_vendor,
             'set_boot_device': self.ipmi_vendor}
    self.vendor = utils.MixinVendorInterface(self.mapping)

    Partial-Bug: #1264596

    Change-Id: I5dd5a02164670476b0d6ff121bed57569c341a61

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

Changed in ironic:
assignee: Devananda van der Veen (devananda) → Ghe Rivero (ghe.rivero)
Changed in ironic:
assignee: Ghe Rivero (ghe.rivero) → Devananda van der Veen (devananda)
Changed in ironic:
assignee: Devananda van der Veen (devananda) → Ghe Rivero (ghe.rivero)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

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

commit 60d3697f1bba31bc676a5acd4170f86f195c790d
Author: Ghe Rivero <email address hidden>
Date: Wed Mar 12 10:49:44 2014 +0100

    Set boot device to PXE when deploying

    When deploying a node using the PXE driver, we set the boot device to
    'pxe' (both ipminative and ipmitool understand it), and set it as persistent,
    so after the deployment, the node boots using the PXE selected kernel

    Change-Id: I1d25023f5a0bd46a714395367ceb2ee60a680cff
    Closes-Bug: #1264596

Changed in ironic:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in ironic:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in ironic:
milestone: icehouse-rc1 → 2014.1
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.