---
features:
  - |
    Adds power state change callbacks of an instance to the Compute service by
    performing API notifications. This feature is enabled by default and can be
    disabled via the new ``[nova]send_power_notifications`` configuration
    option.

    Whenever there is a change in the power state of a physical instance,
    the Bare Metal service will send a ``power-update`` external event to
    the Compute service which will cause the power state of the instance
    to be updated in the Compute database. It also adds the possibility of
    bringing up/down a physical instance through the Bare Metal service API
    even if it was put down/up through the Compute service API.
fixes:
  - |
    By immediately conveying power state changes of a node through
    external events to the Compute service, the Bare Metal service becomes the
    source of truth about the node's power state, preventing the Compute
    service from forcing wrong power states on instances during the periodic
    power state synchronization between the Compute and Bare Metal services.

    .. note::
        There is a possibility of a race condition due to the nova-ironic power
        sync task happening during or right before the power state change
        event is received from the Bare Metal service, in which case the
        instance state will be forced on the baremetal node.
upgrade:
  - |
    In order to support power state change call backs to nova, the ``[nova]``
    section must be configured in the Bare Metal service configuration.
    As the functionality to process the event is new to nova's Train release,
    this should only be set to ``True`` in ironic, once *ALL* ``nova-compute``
    instances have been upgraded to the Train release of nova.
