[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