[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: modules bug with pre-scanning for a user
From: |
Ted Zlatanov |
Subject: |
Re: modules bug with pre-scanning for a user |
Date: |
12 Jun 2001 13:02:49 -0400 |
User-agent: |
Gnus/5.090004 (Oort Gnus v0.04) Emacs/21.0.100 |
Mark.Burgess@iu.hio.no writes:
> This is expected behaviour if the JoeFound class is defined. There have
> been bugs related to class definition, but I'm not sure what is the
> problem in your case. My tip would be to use your orginal idea, but like
> this to remove the output
>
> groups:
> JoeFound = ( "/bin/grep joe /etc/passwd >/dev/null 2>&1" )
I forgot to mention that I had tried that already:
groups:
JoeFound = ( "/bin/grep joe /etc/passwd >/dev/null" )
But I get the error:
grep: can't open >/dev/null
So you are interpreting the > yourself, rather than passing it to the
shell. I'm not sure where to look in the source code to dig further.
The original problem that I had was that, even if a files: command is
conditional upon an AddInstallable class defined by a module (thus, in
an unknown state at first), it will be checked for username validity
regardless of whether the conditional class is really defined or not.
I hope that explains it better.
In C lingo it might be clearer:
char JoeFound; /* the class */
AddInstallable(JoeFound);
JoeFound = ask_module_if_Joe_Found();
if (JoeFound) check_files("/home/joe", "owner=joe");
The problem is that the owner=joe parameter to check_files is getting
checked for validity against /etc/passwd regardless of whether
JoeFound was true or not.
It's not a critical bug for me, but I'd like to use modules in
conjunction with a database to download dynamic rules applicable to
certain machines. If module-defined classes have funny evaluation
rules vs. hard-coded classes, I may have to rewrite the cf.classes
file dynamically instead - not a worse solution, but I'd rather have
clean integration between cfengine and my software.
Thanks
Ted