Ironic plugin

This spec is proposed to add ironic plugin for Searchlight. Ironic is OpenStack baremetal service. Plugin should support these baremetal resources: nodes (OS::Ironic::Node), ports (OS::Ironic::Port) and chassis (OS::Ironic::Chassis).

Problem Description

Notifications about baremetal node state changes (power, provisioning) and create, update and delete of resources are proposed to ironic (1, 2). Because information about node in the database can be changed quickly during deployment specification 2 provides ways to limits flow of notifications. Using of Searchlight API with ironic plugin can reduce load on ironic API from periodical polling tasks.

Proposed Change

1. Searchlight listener should be changed, because ironic can use also ERROR notifications message priority. New handler for ERROR priority will be added.

2. Plugin with indexers and notification handlers for ironic nodes, ports and chassis should be implemented.

3. Custom Searchlight configurations should be used with ironic because ironic uses own hardcoded ironic_versioned_notifications topic (3).