[augeas-devel] Recursive lens and "malformed node" error in put direction

Raphaël Pinson raphink at gmail.com
Tue Feb 15 07:47:14 UTC 2011


2011/2/15 David Lutterkort <lutter at redhat.com>:
> On Mon, 2011-02-14 at 18:15 +0100, Raphaël Pinson wrote:
>> Now the problem...
>>
>> I manage to do a put with the AptConf.entry lens:
>>
>>    (* Test put recursive value *)
>>    test AptConf.entry put "APT { Clean-Installed \"true\"; }\n"
>>       after set "/APT/Clean-Installed" "false" =
>>       "APT { Clean-Installed \"false\"; }\n"
>>
>>
>> But a put with the AptConf.lns:
>>
>>    (* Test with full lens *)
>>    test AptConf.lns put "APT { Clean-Installed \"true\"; }\n"
>>       after set "/APT/Clean-Installed" "false" =
>>       "APT { Clean-Installed \"false\"; }\n"
>>
>>
>> fails with:
>>
>>   tests/test_aptconf.aug:120.3-122.44:exception thrown in test
>>   tests/test_aptconf.aug:120.8-121.46:exception: Malformed child node
>>       Lens: ./aptconf.aug:105.10-.56:
>>       Error encountered at path
>>
>>   Syntax error in lens definition
>>   Failed to load tests/test_aptconf.aug
>
> The error message means 'when putting nodes for a "*", there were nodes
> left over at the end' (this needs to be said better in the error
> message)
>
> From looking at your examples, I don't really see what Augeas is
> tripping over. Can you send the result of
>
>        test AptConf.lns get "APT { Clean-Installed \"true\"; }\n" = ?
>

I tried that. In fact, I tried setting up an apt.conf file with the
following contents:

  APT { Clean-Installed "true"; }


I launched augtool, the file was parsed fine. I changed the value to
"false", triggered "save" and it failed with the "malformed node"
error. So it was fine the get way, but not the put way, for the very
same syntax.


Raphaël




More information about the augeas-devel mailing list