Nova and Horizon allow inappropriate actions to be performed on baremetal nodes

Bug #1483639 reported by Kyrylo Romanenko
34
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Ironic
Incomplete
Low
Unassigned
OpenStack Compute (nova)
Confirmed
Undecided
Unassigned
OpenStack Dashboard (Horizon)
Confirmed
Medium
Unassigned

Bug Description

Ironic baremetal nodes do not support all variety of operations that nova virtual instances do.

But Nova and Horizon still offers to perform actions with ironic baremetal nodes that can be applied to virtual instances only.

Examples of steps:
root@node-1:~# nova pause NEW1
root@node-1:~# nova suspend NEW1
As result Nova silently accepts commands without any warning or error messages. Same actions can be performed via Horizon with green "Success" popup.
Also see list of actions over baremetal node on screenshot.

One more example:
Backup to image baremetal instance:
root@node-1:~# nova image-create --poll --show NEW1 IMAGENEW1
Server snapshotting... 0% complete

and process stalls showing 0% in console infinitely.
Expected that nova will not try do this with baremetal node at all.

Currently baremetal nodes do not support following actions:

a) Create Snapshot
b) Pause
c) Suspend
d) Migrate
e) Live Migrate
f) Only one kind or reboot should be supported (Hard reboot?)
g) Resize

These actions should be disabled for baremetal machines in Nova and Horizon.
Currently there are no destructive aftermaths detected, therefore this bug affects user by confusing him when using Horizon and Nova.

Revision history for this message
Kyrylo Romanenko (kromanenko) wrote :
no longer affects: mos
David Lyle (david-lyle)
Changed in horizon:
importance: Undecided → Medium
Changed in ironic:
status: New → Confirmed
Changed in nova:
status: New → Confirmed
Changed in horizon:
status: New → Confirmed
summary: - Nova and Horizon allow to perform inappropriate actions for baremetal
- node
+ Nova and Horizon allow inappropriate actions to be performed on
+ baremetal nodes
Michael Davies (mrda)
Changed in ironic:
assignee: nobody → Michael Davies (mrda)
Changed in horizon:
assignee: nobody → Zhenguo Niu (niu-zglinux)
Revision history for this message
Zhenguo Niu (niu-zglinux) wrote :

hi, Is it possible to find hypervisor of instance belongs to? seems there's no extend attrbute like hypervisor_type in instance object.

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

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

Changed in horizon:
status: Confirmed → In Progress
David Lyle (david-lyle)
Changed in horizon:
milestone: none → liberty-rc1
Revision history for this message
Michael Davies (mrda) wrote :

I'm not going to get to this soon, so unassigning for now

Changed in ironic:
assignee: Michael Davies (mrda) → nobody
David Lyle (david-lyle)
Changed in horizon:
milestone: liberty-rc1 → mitaka-1
Revision history for this message
Dmitry Tantsur (divius) wrote :

Hi! Do you folks expect something to be done at Ironic side? I see it as a problem in Ironic nova driver and/or in Horizon.

Changed in ironic:
status: Confirmed → Incomplete
Revision history for this message
Michael Davies (mrda) wrote :

I think that Ironic can possibly support some of these features (although they may be hardware dependent), but certainly some of these features just cannot apply to hardware.

But certainly for the operations that are not supported, the driver needs to provide a better interface, letting Nova (and hence the user) that the requested operation is not supported.

I'll chase some Ironic people to get some definitive answers on this.

Revision history for this message
Jim Rollenhagen (jim-rollenhagen) wrote :

I tend to think this should all be above the Ironic driver; Nova should have a method for returning an error for commands not supported by a given virt driver.

Bonus points for an API in Nova that exposes which methods an instance can do, for Horizon's use.

Michael Davies (mrda)
Changed in ironic:
importance: Undecided → Low
Wenzhi Yu (yuywz)
Changed in nova:
assignee: nobody → Wen Zhi Yu (yuywz)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to nova-specs (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/283904

Wenzhi Yu (yuywz)
Changed in nova:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on horizon (master)

Change abandoned by David Lyle (<email address hidden>) on branch: master
Review: https://review.openstack.org/215419
Reason: This review is > 4 weeks without comment, and failed Jenkins the last time it was checked. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and leaving a 'recheck' comment to get fresh test results.

Changed in horizon:
assignee: Zhenguo Niu (niu-zglinux) → nobody
status: In Progress → New
milestone: mitaka-1 → next
Revision history for this message
Tyr Johanson (tyr-6) wrote :
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on nova-specs (master)

Change abandoned by Michael Still (<email address hidden>) on branch: master
Review: https://review.openstack.org/283904
Reason: Per discussion at the summit (https://etherpad.openstack.org/p/ocata-nova-summit-meetup), we are abandoning Newton specs that haven't merged. You may restore this patch and move it to Ocata if you'd like.

Changed in horizon:
status: New → Confirmed
Revision history for this message
Sean Dague (sdague) wrote :

There are no currently open reviews on this bug, changing the status back to the previous state and unassigning. If there are active reviews related to this bug, please include links in comments.

Changed in nova:
status: In Progress → Confirmed
assignee: Wenzhi Yu (yuywz) → nobody
Revision history for this message
Mithun (mithunsunku) wrote :

Change should be added in Nova to reject invalid operations for baremetal servers by making instance type as a mandatory parameter instead of optional to distinguish between the type instances.

Revision history for this message
Jay Faulkner (jason-oldos) wrote :

This showed up in Ironic's bug review dashboard.

I don't think this is a valid bug anymore; Ironic is implementing support for more and more of these every day. We have a path forward (using service steps) for implementing snapshotting, if desired. Resize can make sense in some future-world with composable hardware and we support multiple kinds of reboot already (soft and hard).

I disagree with the basic premise that baremetal servers will simply never be able to support some of thse endpoints; over the last ten years we've enabled baremetal servers, through Nova, to do things -- like rescue -- which might have previously been seen as unreasonable to do on bare metal.

From an Ironic standpoint; I would say this bug is invalid. If this is a bug in Nova/Horizon, it should be around exposing hypervisor/instance capabilities, generally, via API -- not about special casing bare metal instances.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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