Forgot the attachement... :-( > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Mol, Xavier (SCC) > Sent: Friday, August 28, 2015 10:55 AM > To: [email protected] > 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: [email protected] > 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." > **** >
auto.master
Description: Binary data
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ augeas-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/augeas-devel
