A service for managing and provisioning Bare Metal servers.
Go to file
Surya Seetharaman d693d4c06c Support power state change callbacks to nova using ksa_adapter
Add power state change callbacks of an instance to nova by
performing API requests. Whenever there is a change in the
power state of a physical instance (example a "power on"
or "power off" IPMI command is issued or the periodic
``_sync_power_states`` task detects a change in power state)
ironic will create and send a ``power-update`` external event
to nova using which nova will update the power state of the
instance in its database. By conveying the power state changes
to nova, ironic becomes the source of truth thus preventing
nova from forcing wrong power states on the instance during
the nova-ironic periodic sync. It also adds the possibility of
bringing up/down a physical instance through the ironic API
even if it was put down/up through the nova API.

Note that ironic only sends requests to nova if the target
power state is either "power on" or "power off". Other error
states will be ignored. In cases where the power state change
is originally coming from nova, the event will still be
created and sent to nova and on the nova side it will be a
no-op with a debug log saying the node is already powering on/off.

NOTE: Although an exclusive lock (task_manager.upgrade_lock()
method) is used when calling the nova API to send events,
there can still be a race condition if the nova-ironic power sync
happens to happen a nano-second before the power state change
event is received from ironic in which case the nova state will
be forced on the node.

Credit for introducing ksa adapter: Eric Fried <openstack@fried.cc>
Depends-On: https://review.opendev.org/#/c/645611/
Part of blueprint nova-support-instance-power-update
Story: 2004969
Task: 29424

Change-Id: I6d105524e1645d9a40dfeae2850c33cf2d110826
2019-08-12 19:29:57 +02:00
api-ref Merge "Add api-ref for allocation update" 2019-06-07 14:11:35 +00:00
devstack Support power state change callbacks to nova using ksa_adapter 2019-08-12 19:29:57 +02:00
doc Support power state change callbacks to nova using ksa_adapter 2019-08-12 19:29:57 +02:00
etc Remove sample policy and config files 2018-02-02 11:21:29 +00:00
ironic Support power state change callbacks to nova using ksa_adapter 2019-08-12 19:29:57 +02:00
playbooks CI: stop using pyghmi from git master 2019-07-29 17:52:49 +02:00
releasenotes Support power state change callbacks to nova using ksa_adapter 2019-08-12 19:29:57 +02:00
tools Adds bandit template and exclude some of tests 2019-06-20 15:08:43 +08:00
zuul.d CI: stop using pyghmi from git master 2019-07-29 17:52:49 +02:00
.gitignore Migrate to stestr as unit tests runner 2017-09-22 08:56:34 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:40:53 +00:00
.mailmap Update mailmap for Joe Gordon 2013-10-28 10:19:15 +00:00
.stestr.conf Migrate to stestr as unit tests runner 2017-09-22 08:56:34 +00:00
babel.cfg Run extract_messages 2013-07-22 09:51:10 +02:00
bindep.txt Add a pxe/uefi/grub2 CI job 2019-06-05 14:21:13 -07:00
CONTRIBUTING.rst Update Launchpad references to Storyboard 2018-04-09 12:37:14 -07:00
driver-requirements.txt Merge "Collect sensor data in `redfish` hardware type" 2019-07-01 10:03:43 +00:00
LICENSE Added project infrastructure needs. 2013-05-02 14:55:43 -04:00
lower-constraints.txt Support power state change callbacks to nova using ksa_adapter 2019-08-12 19:29:57 +02:00
README.rst Update api-ref location 2019-07-22 19:19:38 +02:00
requirements.txt Support power state change callbacks to nova using ksa_adapter 2019-08-12 19:29:57 +02:00
setup.cfg Merge "Add IntelIPMIHardware" 2019-07-09 10:39:44 +00:00
setup.py Updated from global requirements 2017-03-02 11:45:27 +00:00
test-requirements.txt Support power state change callbacks to nova using ksa_adapter 2019-08-12 19:29:57 +02:00
tox.ini Adds bandit template and exclude some of tests 2019-06-20 15:08:43 +08:00

Ironic

Team and repository tags

image

Overview

Ironic consists of an API and plug-ins for managing and provisioning physical machines in a security-aware and fault-tolerant manner. It can be used with nova as a hypervisor driver, or standalone service using bifrost. By default, it will use PXE and IPMI to interact with bare metal machines. Ironic also supports vendor-specific plug-ins which may implement additional functionality.

Ironic is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.

Project resources

Project status, bugs, and requests for feature enhancements (RFEs) are tracked in StoryBoard: https://storyboard.openstack.org/#!/project/943

For information on how to contribute to ironic, see https://docs.openstack.org/ironic/latest/contributor