[augeas-devel] Inconsistent matching of multiple predicates (involving last/position)

Mol, Xavier (SCC) xavier.mol at kit.edu
Fri Aug 28 08:58:50 UTC 2015


Forgot the attachement... :-(

> -----Original Message-----
> From: augeas-devel-bounces at redhat.com [mailto:augeas-devel-bounces at redhat.com] On Behalf Of Mol, Xavier (SCC)
> Sent: Friday, August 28, 2015 10:55 AM
> To: augeas-devel at redhat.com
> Subject: [augeas-devel] Inconsistent matching of multiple predicates (involving last/position)
> 
> Hello Augeas developers, Dominic,
> 
> I ran into a strange problem when match multiple predicates.
> 
> What file?
> 	/etc/auto.master (unmodified default shipped with autofs-5.0.5-113.el6.x86_64, attached for reference to this mail)
> 
> What lens?
> 	Automaster
> 
> What Augeas version?
> 	augeas-1.0.0-10.el6.x86_64
> 
> What problem?
> 
> The Automaster lens uses a NULL label for the records of auto.master, which is why I try to find different ways of filtering them and found
> two (seemingly) equivalent methods (*). Yet, only one of them allows for further filtering using last() or position() (**). Reducing matches
> with other conditions seems fine, as far as I tested it, but I'm not sure, that I have covered all cases (***). Using a positive filter in the first
> step can be combined with last()/position() (4*).
> 
> I have consulted the Augeas wiki thoroughly and searched the GitHub issues as well as the devel mailing list archive for "multiple
> predicates" (which yielded https://www.redhat.com/archives/augeas-devel/2009-February/msg00093.html), but found nothing regarding
> this incident.
> 
> Did I overlook something or might this actually be a bug?
> 
> Best regards,
> Xavier.
> 
> *)
> augtool> defvar master /files/etc/auto.master
> augtool> match $master/*[map]
> /files/etc/auto.master/1 = /misc
> /files/etc/auto.master/2 = /net
> /files/etc/auto.master/3 = +
> augtool> match $master/*[label() != '#comment']
> /files/etc/auto.master/1 = /misc
> /files/etc/auto.master/2 = /net
> /files/etc/auto.master/3 = +
> 
> **)
> augtool> match $master/*[map][last()]
> /files/etc/auto.master/3 = +
> augtool> match $master/*[map][position() = 2]
> /files/etc/auto.master/2 = /net
> augtool> match $master/*[label() != '#comment'][last()]
>   (no matches)
> augtool> match $master/*[label() != '#comment'][position() = 2]
>   (no matches)
> 
> ***)
> augtool> match $master/*[label() != '#comment'][map = '-hosts']
> /files/etc/auto.master/2 = /net
> 
> Yes, the result is the same without filtering comments first:
> 
> augtool> match $master/*[map = '-hosts']
> /files/etc/auto.master/2 = /net
> 
> 
> 4*)
> augtool> match $master/*[label() = '#comment'][position() = 1]
> /files/etc/auto.master/#comment[1] = Sample auto.master file
> augtool> match $master/*[label() = '#comment'][last()]
> /files/etc/auto.master/#comment[13] = precedence.
> 
> 
> ****
> Karlsruher Institute of Technology (KIT)
> Steinbuch Centre for Computing (SCC)
> 
> B. Sc. Xavier Mol
> GridKa Storage Administrator and Support Manager
> 
> Hermann-von-Helmholtz-Platz 1
> Geb. 449
> 76344 Eggenstein-Leopoldshafen
> Phone: +49 721 608 23041
> Email: xavier.mol at kit.edu
> www.kit.edu
> KIT - University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz Association
> "Since 2010, the KIT has been certified as a family-friendly university."
> ****
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: auto.master
Type: application/octet-stream
Size: 726 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/augeas-devel/attachments/20150828/9381a850/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6401 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/augeas-devel/attachments/20150828/9381a850/attachment.p7s>


More information about the augeas-devel mailing list