[chef] Re: Re: only_if conditions key off exit value?


Chronological Thread 
  • From: "Jason J. W. Williams" < >
  • To:
  • Subject: [chef] Re: Re: only_if conditions key off exit value?
  • Date: Thu, 22 Sep 2011 13:59:08 -0600

On Fri, Sep 16, 2011 at 9:42 AM, Daniel DeLeo 
< >
 wrote:
> On Friday, September 16, 2011 at 1:35 AM, Jason J. W. Williams wrote:
>> I'm having some issues with an only_if condition that works on Linux
>> but seems to be having issues on Solaris, and I want to make sure I
>> understand how Chef is handling it.
>>
>> I have an only_if as follows:
>>
>> only_if "mysql -u root -h localhost -e 'SHOW STATUS;'"
>>
>> If the MySQL root user still has no password, the command will succeed
>> and the exit status will be 0. However, if the root user now has a
>> password, the command will fail and the exit status will be 1. My
>> understanding is the the only_if will be True if the exit status from
>> the command is 0. Is this incorrect?
>>
> You've got it right, 0 is true, anything else is false. Running with `-l 
> debug` might provide more insight into what's going on.
>

What appears to have been causing it to execute anyway is that I had
two only_if conditions. The one I listed was not being triggered but
the second once checking for the MySQL local socket file was true. So
it appears if you have multiple only_if conditions only one has to be
true for the block to execute. By converting the second only_if to a
not_if, the block is working properly now.

-J



Archive powered by MHonArc 2.6.16.

§