I may be mixing up two different versions, if cf-agent forks and execs
cf-agent/cf-promises from the working directory binaries.
Is it possible to test cf-* binaries from within the build directory before
installation?
I've now copied the cf-* binaries into the working directory
(/var/cfengine/bin) - and now it does look like it's parsing correctly - but on
RHEL 5, segfaulting in SelectOwnerMatch with this slightly modified test case:
body common control {
bundlesequence => { "s" };
}
bundle agent s {
files:
"/tmp"
depth_search => roottraverse,
file_select => noowner,
perms => pnoowner,
action => warn;
}
body depth_search roottraverse{
depth => "inf";
include_basedir => "true";
}
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" };
}
Last hopefully relevant lines of cf-agent -d2 (I'll backchannel if you want the
whole output):
--------
EvaluateORString(!owner)
(!)(o)(w)(n)(e)(r)
GetORATom(!owner)->!owner
EvaluateANDString(!owner)
GetANDATom(owner)->owner
Checking OR atom (owner)?
EvaluateANDString(!owner) returns false by negation 2
EvalORString-temp-result-n=0 (!owner)
EvaluateORString(!owner) returns 0
Select result "!owner"on /tmp/nerves was 0
Unappending leaf_name
Unappending leaf_path
Unappending owner
Unappending group
Skipping non-selected file /tmp/nerves
Unappending reg
Unappending plain
--------
EvaluateORString([a-zA-Z0-9_.]+)
([)(a)(-)(z)(A)(-)(Z)(0)(-)(9)(_)(.)(])(+)
GetORATom([a-zA-Z0-9_.]+)->[a-zA-Z0-9_.]+
EvaluateANDString([a-zA-Z0-9_.]+)
GetANDATom([a-zA-Z0-9_.]+)->[a-zA-Z0-9_
Checking OR atom ([a-zA-Z0-9_)?
EvaluateANDString([a-zA-Z0-9_.]+) returns false ny negation 3
EvalORString-temp-result-n=0 ([a-zA-Z0-9_.]+)
EvaluateORString([a-zA-Z0-9_.]+) returns 0
Segmentation fault
--
Chris Faehl
Hosting Engineering Systems Manager, RightNow Technologies
-----Original Message-----
From: Mark Burgess [mailto:[email protected]]
Sent: Thursday, May 07, 2009 1:33 PM
To: Faehl, Chris
Cc: [email protected]
Subject: Re: cf3: incorrect parsing or misdocumented file_select.search_owners
attribute
Chris, I don't think this is possible. Are you mixing up two versions?
M
Faehl, Chris wrote:
> 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
-------------------------------------------------
_______________________________________________
Bug-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/bug-cfengine