Ticket 51177 - on upgrade configuration handlers
Bug Description: 389 to function in docker and other environments
such as restore-from-backup, needs to be able to upgrade it's configuration
on startup. This lets us ship-and-enable new features, upgrade plugins
and more (similar to libglobs upgrades)
Previously we had only basic machinery for this (IE make sure this
entry exists like this) which would always write the content. This
caused problems where plugins would re-enable on restart, or couldn't
be removed.
Fix Description: This adds an upgrade processor and an exists_or_add
so that we can do stateful creates of entries, but without trampling
user modifications IE disabling plugins.
https://pagure.io/389-ds-base/issue/51177
fixes: #51177
Author: William Brown <william@blackhats.net.au>
Review by: tbordaz, mreynolds (Thanks!)