This spec is proposed to add ironic plugin for Searchlight. Ironic is OpenStack baremetal service. Plugin should support these baremetal resourses: nodes (OS::Ironic::Node), ports (OS::Ironic::Port) and chassis (OS::Ironic::Chassis).
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 specification3 provides ways to limits flow of notifications. Using of Searchlight API with ironic plugin can reduce load on ironic API from periodical polling tasks.
1. Searchlight listener should be changed because ironic can use any notifications message priority, not only INFO (4). For possibility of use this feature and backward compatibility new configuration option (list type)
additional_priorities will be added to
listener group. Allowed values are "audit", "debug", "warn", "error", "critical" and "sample". Default value is not set (no additional priorities).
2. Plugin with indexers and notification handlers for ironic nodes, ports and chassis shoud be implemented.
3. Custom Searchlight config should be used with ironic because ironic uses own hardcoded
ironic_versioned_notifications topic (5).