Hi,
so far we register providers in rpm %post scripts. This has shown to be
error prone, the registration repositories are quite fragile and tend to
break.
As a solution, I can imagine we could add new package, let's say
cim-provider-register.rpm, with /bin/provider-register and
/lib/provider-register (or /etc/providers.d?).
The /lib/provider-register/ would be authoritative repository of
registered providers.
* /bin/provider-register would have capability re-register all providers
from /lib/provider-register to all installed CIMOMs. Useful when an user
breaks something.
* All rpm packages with CIM providers (incl. SBLIM ones) would add some
registration metadata to /lib/provider-register/.
* All rpm packages with CIM providers (incl. SBLIM ones) would register
the provider in its %post script and deregister the providers in %preun
script.
* CIMOM rpm package would add all providers from /lib/provider-register
to its repository in %post script. This fixes situation when a CIMOM is
installed _after_ a provider.
* It could be also possible to update CIMOM registrations in CIMOM's
unit file. I.e. when a CIMOM starts, it would get refreshed with
registrations from /lib/provider-register.
While this approach fixes most problems with provider registration, this
registration management is different to upstream one. E.g. when an admin
reads Pegasus admin guide and removes a provider according to it, we
will add the provider back on next Pegasus restart. We would need to
carefully describe our new approach, but where?
Jan