← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2064826] Re: Can not hard reboot VM with ironic driver

 

Reviewed:  https://review.opendev.org/c/openstack/nova/+/918195
Committed: https://opendev.org/openstack/nova/commit/0e766885f65068559f6680116db6dad898ad5b8c
Submitter: "Zuul (22348)"
Branch:    master

commit 0e766885f65068559f6680116db6dad898ad5b8c
Author: Vasyl Saienko <vsaienko@xxxxxxxxxxxx>
Date:   Sat May 4 22:09:34 2024 +0300

    [ironic] Fix rebooting instance
    
    The correct state for hard and soft reboots are rebooting [0]
    
    [0] https://github.com/openstack/openstacksdk/blob/master/openstack/baremetal/v1/node.py#L44
    
    Closes-Bug: #2064826
    Change-Id: I18e0352b3638872e85ce91a3cfcbbfddc812ab67


** Changed in: nova
       Status: In Progress => Fix Released

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

Title:
  Can not hard reboot VM with ironic driver

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  After switching to openstacksdk hard reboot stop working for ironic.

  2024-05-04 17:43:20.213 1 DEBUG nova.compute.manager [None req-dfe5f95e-afa2-433d-bc34-ca9186936928 462cb36b3999412393b826b8d8bcc323 a9267fb61f0a428882eafc45b42bc489 - - f0b81946e4eb4f338
  a13f241726662ea f0b81946e4eb4f338a13f241726662ea] [instance: 5987800b-77f6-451b-ad83-38af30eac1b1] Checking state _get_power_state /var/lib/openstack/lib/python3.10/site-packages/nova/com
  pute/manager.py:1784
  2024-05-04 17:43:20.403 1 DEBUG nova.virt.ironic.driver [None req-dfe5f95e-afa2-433d-bc34-ca9186936928 462cb36b3999412393b826b8d8bcc323 a9267fb61f0a428882eafc45b42bc489 - - f0b81946e4eb4f338a13f241726662ea f0b81946e4eb4f338a13f241726662ea] [instance: 5987800b-77f6-451b-ad83-38af30eac1b1] Reboot(type HARD) called for instance reboot /var/lib/openstack/lib/python3.10/site-packages/nova/virt/ironic/driver.py:1401
  2024-05-04 17:43:20.485 1 DEBUG nova.compute.manager [None req-dfe5f95e-afa2-433d-bc34-ca9186936928 462cb36b3999412393b826b8d8bcc323 a9267fb61f0a428882eafc45b42bc489 - - f0b81946e4eb4f338a13f241726662ea f0b81946e4eb4f338a13f241726662ea] [instance: 5987800b-77f6-451b-ad83-38af30eac1b1] Checking state _get_power_state /var/lib/openstack/lib/python3.10/site-packages/nova/compute/manager.py:1784
  2024-05-04 17:43:20.530 1 WARNING nova.compute.manager [None req-dfe5f95e-afa2-433d-bc34-ca9186936928 462cb36b3999412393b826b8d8bcc323 a9267fb61f0a428882eafc45b42bc489 - - f0b81946e4eb4f338a13f241726662ea f0b81946e4eb4f338a13f241726662ea] [instance: 5987800b-77f6-451b-ad83-38af30eac1b1] Reboot failed but instance is running: openstack.exceptions.BadRequestException: Failed to set power state for bare metal node b9fbad5f-c0c9-40be-9521-ca777c85740a to reboot: Client Error for url: http://ironic-api.openstack.svc.cluster.local:6385/v1/nodes/b9fbad5f-c0c9-40be-9521-ca777c85740a/states/power, The requested action "reboot" can not be performed on node "b9fbad5f-c0c9-40be-9521-ca777c85740a" while it is in state "power on".
  2024-05-04 17:43:20.555 1 DEBUG nova.compute.utils [None req-dfe5f95e-afa2-433d-bc34-ca9186936928 462cb36b3999412393b826b8d8bcc323 a9267fb61f0a428882eafc45b42bc489 - - f0b81946e4eb4f338a13f241726662ea f0b81946e4eb4f338a13f241726662ea] [instance: 5987800b-77f6-451b-ad83-38af30eac1b1] BadRequestException notify_about_instance_usage /var/lib/openstack/lib/python3.10/site-packages/nova/compute/utils.py:430

  With manual run got same

  >>> ocm.baremetal.set_node_power_state('a38a8613-f961-4633-b972-6be00f0f9339', 'reboot')
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/var/lib/openstack/lib/python3.10/site-packages/openstack/baremetal/v1/_proxy.py", line 617, in set_node_power_state
      self._get_resource(_node.Node, node).set_power_state(
    File "/var/lib/openstack/lib/python3.10/site-packages/openstack/baremetal/v1/node.py", line 782, in set_power_state
      exceptions.raise_from_response(response, error_message=msg)
    File "/var/lib/openstack/lib/python3.10/site-packages/openstack/exceptions.py", line 247, in raise_from_response
      raise cls(
  openstack.exceptions.BadRequestException: Failed to set power state for bare metal node a38a8613-f961-4633-b972-6be00f0f9339 to reboot: Client Error for url: http://ironic-api.openstack.svc.cluster.local:6385/v1/nodes/a38a8613-f961-4633-b972-6be00f0f9339/states/power, The requested action "reboot" can not be performed on node "a38a8613-f961-4633-b972-6be00f0f9339" while it is in state "power on".
  >>> ocm.baremetal.set_node_power_state('a38a8613-f961-4633-b972-6be00f0f9339', 'rebooting')
  >>> 

  To fix the problem we need to use correct target state `rebooting` not
  `reboot`

  https://github.com/openstack/openstacksdk/blob/master/openstack/baremetal/v1/node.py#L44

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



References