[389-devel] Upgrade procedures

Nathan Kinder nkinder at redhat.com
Tue Sep 1 23:00:50 UTC 2009


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 at redhat.com
>>> https://www.redhat.com/mailman/listinfo/fedora-directory-devel
>>
>> ------------------------------------------------------------------------
>>
>> -- 
>> 389-devel mailing list
>> 389-devel at redhat.com
>> https://www.redhat.com/mailman/listinfo/fedora-directory-devel
>
> ------------------------------------------------------------------------
>
> --
> 389-devel mailing list
> 389-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-directory-devel
>    

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/fedora-directory-devel/attachments/20090901/65400f94/attachment.htm>


More information about the Fedora-directory-devel mailing list