[389-devel] Please Review: Fix parsing of start-slapd scripts

Rich Megginson rmeggins at redhat.com
Thu Apr 1 18:48:41 UTC 2010


Nathan Kinder wrote:
> On 03/31/2010 10:04 PM, Nathan Kinder wrote:
>> On 03/31/2010 09:52 PM, Endi Sukma Dewata wrote:
>>   
>>> ----- "Nathan Kinder"<nkinder at redhat.com>   wrote:
>>>
>>>
>>>     
>>>>>> The admin server CGIs parse the start-slapd scripts to determine the
>>>>>> DS instance names.  A recent format change to start-slapd caused 
>>>>>> this
>>>>>> parsing to break.  These patches make the instance name easier to
>>>>>> parse from the script.  One patch is for DS itself and one is for 
>>>>>> the
>>>>>> Admin Server.
>>>>>>
>>>>>>
>>>>>>            
>>>>> ack - much better
>>>>>
>>>>>
>>>>>          
>>>> Thanks, but I need to nak my own patch since it's imcomplete.
>>>>
>>>> This isn't going to work well when upgrading an instance.  We don't
>>>> regenerate the start-slapd script when running 'setup-ds.pl -u'.  This
>>>> means that an upgraded instance will not work properly with any of the
>>>> admin server CGIs that need to parse the instance name from
>>>> start-slapd.  This issue is already a problem not related to this 
>>>> patch,
>>>> but it seems we should fix it along with this issue.
>>>>
>>>> I suppose the right thing to do is to make 'setup-ds.pl -u' generate a
>>>> new start-slapd script for the existing instances as well as a new
>>>> instance specific initconfig script if one doesn't exist.  I think we
>>>> need to avoid wiping out an existing instance specific sysconfig 
>>>> script
>>>> since it may have been modified by an admin to add other stuff to it
>>>> (like KRB5_KTNAME for Kerberos).  Do you see any problems with this
>>>> approach?
>>>>        
> I've attached a new set of patches that implements the solution 
> outlined above.
>
> -NGK
>>>>
>>>>        
>>> Sorry that my changes caused this problem. Peace... :)
>>>
>>>      
>> Actually, a previous change of mine actually broke the upgrade case.
>> You just broke the admin server parsing code. :)
>>   
>>> Would it be better to have a pure configuration file (not script) in 
>>> the
>>> instance directory that contains things like instance name, etc.? The
>>> start-dirsrv is a script, and parsing a script without a proper 
>>> parser is
>>> risky. Same thing with the sysconfig scripts. Even a slight change 
>>> in that
>>> file could break some regular expressions in the Perl modules. What 
>>> do you
>>> think?
>>>
>>>      
>> My previous change that breaks the upgrade case is trying to accomplish
>> this.  We previously had all sorts of paths in the start-slapd scripts
>> which were parsed in various places.  I created the instance specific
>> config files in /etc/sysconfig that now contain the paths and other
>> things needed to start an instance in an easily parsed format.  The one
>> wrinkle is that we need to know the instance name to know which
>> sysconfig file to read since the file name is "dirsrv-<instance>".  The
>> admin server tries to get the instance name from the start script to
>> find the sysconfig file so we can determine other things, such as the
>> pid file location.  The only other way I can think of to get the
>> instance name would be to parse it out of the instance path that we use
>> to locate the start-slapd script.  This is usually something like
>> "/usr/lib/dirsrv/slapd-<instance>".  I think that my proposed change to
>> the start-slapd format is less error prone since there is no complex
>> parsing needed.
>>
>> -NGK
ack
>>   
>>> Thanks.
>>>
>>> -- 
>>> Endi S. Dewata
>>> -- 
>>> 389-devel mailing list
>>> 389-devel at lists.fedoraproject.org
>>> https://admin.fedoraproject.org/mailman/listinfo/389-devel
>>>
>>>      
>> -- 
>> 389-devel mailing list
>> 389-devel at lists.fedoraproject.org
>> https://admin.fedoraproject.org/mailman/listinfo/389-devel
>>    
>
> ------------------------------------------------------------------------
>
> --
> 389-devel mailing list
> 389-devel at lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/389-devel



More information about the 389-devel mailing list