[augeas-devel] cobbersettings lense

Greg Swift gregswift at gmail.com
Fri Apr 6 13:26:39 UTC 2012


On Fri, Apr 6, 2012 at 07:10, Dominic Cleal <dcleal at redhat.com> wrote:
> On 04/04/12 23:44, Greg Swift wrote:
>> On Wed, Apr 4, 2012 at 15:32, Dominic Cleal <dcleal at redhat.com> wrote:
>>> On 04/04/12 14:14, Greg Swift wrote:
>>>> I'm also slightly confused by the fact that these two expressions
>>>> seems to overlap, but augeas doesn't complain, and if I change the ws
>>>> one to not use a *, it blows up.
>>>>
>>>>    let indent = del /^[ \t]+/ "    "
>>>>    let ws = del /[ \t]*/ " "
>>>
>>> These two don't seem to be used in combination with each other - they're
>>> just defined side by side.  The only error I can generate by changing
>>> "ws" to require a space is where it's used for lists of entries to
>>> permit whitespace next to square brackets.  I don't think you want to
>>> change this, only "indent".
>>
>> well my concern was that the two regex expressions should match
>> similar data.  and was suprised it wasn't breaking.  When I changed
>> the * in ws to a + i was unable to load /etc/cobbler/settings.
>>
>> [root at infra1-rep network-scripts]# augtool
>> augtool> ls /files/etc/cobbler/settings
>> augtool> print /augeas/files/etc/cobbler/settings/error
>> /augeas/files/etc/cobbler/settings/error = "parse_failed"
>> /augeas/files/etc/cobbler/settings/error/pos = "2974"
>> /augeas/files/etc/cobbler/settings/error/line = "69"
>
> The "ws" lens is only used in this context:
>    let lbr = del /\[/ "["
>    let rbr = del /\]/ "]"
>    let setting_list_suffix =  [label "sequence" . lbr . ws .
> (value_list . ws)? . rbr ] . eol
>
> It's used for lines such as this:
>  Setting_List:[Value1, Value2, Value3]
>
> If you change the regexp to /[ \t]+/ then the above line would be
> invalid and you'd need to put spaces around the [ ] characters.  I'm not
> sure why you're trying to change this.
>
> There's no overlap between them because they're used in different
> places.  It'd only matter if they were in a union etc together.

That was my problem.... I was thinking of it in the wrong context.
thanks for that

>>> If you're working on a patch to tidy up and fix the indentation, that
>>> would be great.  I hadn't realised we had this lens which implemented
>>> plain YAML, it would be nice to complete and copy it to become a generic
>>> YAML lens (to sit with other lenses such as XML, JSON etc).  I think
>>> some parts such as the [] lists are Cobbler extensions.
>>
>> Seems to me like this is a much more useful direction, although I
>> don't know that myself or the cobbler guys are up to the task of
>> implementing a YAML lens.
>
> I think a general YAML lens is something for us to pick up and include
> upstream.

kewl.

>>> As mentioned on IRC, it would be nice to have Cobbler adopt the lenses
>>> as part of their source tree.  There are some projects (libvirt,
>>> corosync) that ship their own lenses, so this one could equally
>>> "graduate" into Cobbler itself if they'd like it - preventing lag in
>>> changes and fixes.
>>
>> That may be very doable.  although the 'getting there is an
>> interesting concept to me, although I guess they can do a required
>> augeas-libs >= version.
>
> If it was included in Cobbler then their packages could install it to
> /usr/share/augeas/lenses which would override any older/broken lens
> shipped by Augeas in /usr/share/augeas/lenses/dist.

We would still have to require a version of augeas that didn't provide
the lense, because we can't provide a file that augeas-libs provides
in our RPM.

> If it was only fixed in Augeas then yes, a dependency on the new version
> could be done, but you won't get new versions of Augeas lenses in
> existing distro releases (the oldest ship version 0.7.2).

Yes, which is why we should handle our own, but still doesn't fix the
race condition of providing a file that is already in existence.




More information about the augeas-devel mailing list