RE: cf3: incorrect parsing or misdocumented file_select.search_owners attribute
"Faehl, Chris" <[email protected]> Thu, 7 May 2009 08:58:41 -0600
| Newsgroups | gmane.comp.sysutils.cfengine.bugs |
|---|---|
| Message-ID | <C3184DD2010F814F88A2A3F1B613A963054EA9B389@CCRCMS2.corp.rightnow.com> |
Mark, >From svn, cf-promises now validates the input file correctly - but cf-agent evaluates using the pre-change semantics (fails just as cf-promises did). -- Chris Faehl Hosting Engineering Systems Manager, RightNow Technologies -----Original Message----- From: Mark Burgess [mailto:[email protected]] Sent: Wednesday, May 06, 2009 11:22 AM To: Faehl, Chris Cc: [email protected] Subject: Re: cf3: incorrect parsing or misdocumented file_select.search_owners attribute Ok - I've thought about this now. Please try svn and tell me if it works as expected. M Faehl, Chris wrote: > Using cfengine 3.0.1 and cfengine 3 svn 328: > Objective: find unowned files and assign them a default owner. > Problem: search_owners doesn't seem to really accept regexes, as documented examples suggest. Search_groups suffers this same malady. It's difficult to see how the required objective could be met without at least working character classes and the "+" operator. > > Test case: > body common control { > bundlesequence => { "s" }; > } > bundle agent s { > files: > "/" > file_select => noowner, > perms => pnoowner, > action => warn; > } > > body file_select noowner { > search_owners => { "[a-zA-Z0-9_.]+" }; > file_result => "!owner"; > } > > body action warn{ > action_policy => "warn"; > } > > body perms pnoowner { > owners => { "root" }; > groups => { "root" }; > } > > > Cf-promises -v -f ./test7.cf: > . > . > . > cf3 > Parsing file ./test7.cf > cf3:./test7.cf:13,38: Scalar item in search_owners => { [a-zA-Z0-9_.]+ } in rvalue is out of bounds (value should match pattern [a-zA-Z0-9_$.-]+), near token '}' > . > . > . > > > Cf-promises -d2 -f ./test7.cf: > . > . > . > ------------------------------------------------ > - Checking inline constraint/arg file_select[(ext body)] => mappedval (bundle/body) > ------------------------------------------------ > Nothing to check for body reference > end CheckConstraintTypeMatch--------- > Post Check Constraint files: search_owners => {'[a-zA-Z0-9_.]+'} > ------------------------------------------------ > - Checking inline constraint/arg search_owners[slist] => mappedval (l) [a-zA-Z0-9_$.-]+ > ------------------------------------------------ > ------------------------------------------------ > - Checking inline constraint/arg search_owners[slist] => mappedval (s) [a-zA-Z0-9_$.-]+ > ------------------------------------------------ > > CheckParseString(search_owners => [a-zA-Z0-9_.]+/[a-zA-Z0-9_$.-]+) > Deleting scope match > Object match exists > Adding scope data match > Regex [a-zA-Z0-9_$.-]+ did not match ([a-zA-Z0-9_.]+) exactly, but it matched a part of it. > IsCf3VarString([a-zA-Z0-9_.]+) - syntax verify > Found 0 variables in ([a-zA-Z0-9_.]+) > Validation: Scalar item in search_owners => { [a-zA-Z0-9_.]+ } in rvalue is out of bounds (value should match pattern [a-zA-Z0-9_$.-]+) > end CheckConstraintTypeMatch--------- > Post Check Constraint files: file_result =>!owner > . > . > . > -- > Chris Faehl > Hosting Engineering Systems Manager, RightNow Technologies > > _______________________________________________ > Bug-cfengine mailing list > [email protected] > https://cfengine.org/mailman/listinfo/bug-cfengine -- Mark Burgess ------------------------------------------------- Professor of Network and System Administration Oslo University College, Norway Personal Web: http://www.iu.hio.no/~mark Office Telf : +47 22453272 -------------------------------------------------