On 09/01/2009 03:38 PM, Rich Megginson wrote:
Nathan Kinder wrote:
On 09/01/2009 02:23 PM, Rich Megginson wrote:
I'm envisioning something like patch files in an RPM - things that can easily come and go depending on what needs to be done for a particular release.  In this case, instead of patch files, these would be short perl or shell scripts.  These would be invoked once or once per instance.

One way would be to have a large script which would be edited for each release, adding or deleting code as needed.  This is the way it worked in the past - the file quickly becomes "unruly".  However, we would only have to touch Makefile.am once to add the upgrade script.
You mean like the migrate4to6, migrate5to6, etc. stuff?
Sort of, but much smaller.  And not necessarily version specific - see below.

Another way would be to have small scripts that could come and go with each release.  The disadvantage is that we would be constantly adding/deleting items from Makefile.am.  This is what I would prefer.
I prefer the scriptlet approach too.

How do you envision dealing with upgrading from different versions?  For example, we would need to do much different work upgrading from 1.1 -> 1.3 than we would from 1.2 -> 1.3.  Will there be some way for the scriptlet to specify what versions it needs to be run for?
I'm hoping to avoid looking at explicit versions.  Instead, I would prefer that the scriptlet would determine if the work it needed to do is already done.  For example, upgrading from 1.2.0 to 1.2.x would need to add the syntax validation plugin.  The scriptlet should check to see if the syntax validation plugin exists before adding it.  I can't really think of anything which would require an explicit version.
That makes sense.  We may want to talk with Rob C. since I think he's done something similar for FreeIPA's upgrade procedure with regards to DS plug-in config.  Perhaps he has some insight.

Before invoking the update scripts, the code would create some sort of context, containing information about the config directory, each instance, and an identity and credentials that can be used to manage each instance.  For example, when you run setup-ds-admin.pl -u, it uses the uid=admin identity and asks for the password, then uses that identity to manage each instance.  However, in the case where there is just the base ds package, we would need some way to ask or specify the identity for each instance.  For the UI, I don't think there's any way around just simply asking for the username and password for each instance (we can default the username to directory manager or the last value specified).  For .inf file usage, I was thinking about adding a new section - [slapd-instancename] - in which you could specify the RootDN and RootDNPwd.
------------------------------------------------------------------------

--
389-devel mailing list
389-devel@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-directory-devel
 

------------------------------------------------------------------------

--
389-devel mailing list
389-devel@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-directory-devel
 


-- 389-devel mailing list 389-devel@redhat.com https://www.redhat.com/mailman/listinfo/fedora-directory-devel