Description of problem:
As Node becomes more abstract and unspecific and on the other side seeing Node being used in different projects (ovirt, gluster, openstack, foreman, ...) we should add a framework (let's call it FeatureService here) to allow Node and plugins to
a) publish supported features/protocols/services
b) offer triggers e.g. to allow consumers to kick-off the registration with
What has to be defined is
1) What informations plugins (or node itself, which can reuse the same
E.g. Do we do something similar to mdns where a service is
2) How is the information feed into the framework?
Programmatically (like plugins are registering themselves with the UI right
now), or using e.g. an XML file (like for firewalld).
3) How is the information published?
E.g. RESTless HTTP or py+SSH, or maybe even actively using mDns or upnp?
Basically we can allow more than on transport method here.
4) Do we allow triggers?
This RFE is a superset of bug 875088, as the above sketched "FeatureService" can publish that it supports Engine, and a trigger/API can be used to kick off the registration.
Some ideas regarding the transport methods and API:
I'd suggest to implement the framework in some python module and try to separate it from the transport protocol.
oVirt 3.5 has been released and should include the fix for this issue.