- From: Bryan McLellan <
>
- To:
- Subject: [chef] Re: What can be used in not_if / how to build something that can be used?
- Date: Wed, 21 Sep 2011 08:27:03 -0400
On Wed, Sep 21, 2011 at 8:11 AM, Norbert Hartl
<
>
wrote:
>
Now I try to integrate the stuff a little bit more and make it more
>
reliable. One of the things I do is to check condition that decide if a
>
action needs to take place or not. In the tutorials/examples this almost
>
all the time done using something like "unless File.exists....". I need to
>
do something similar but for another running component. The task is to load
>
some code into server. In order not to load the code every single
>
provisioning time I like to check if it has been loaded already. I know how
>
to do it with execute/script/bash... but then I have to write the specific
>
action it has to do (that follows the condition) within the action. But I
>
need the capabiltiy of checking things in the server quite often. So I'm
>
looking for slightly more generic way of achieving it.
>
I don't know if it is possible to create a definition function, an action
>
or anything that returns a value and therefor can be used in not_if,
>
only_if, etc. I had the impression LWRP could help but know I don't know
>
how. My last ressort seems to be writing a library that I include in a
>
recipe. But I wanted to ask if there is a better possibility to achieve the
>
same.
only_if and not_if either run a ruby block, or execute a command,
depending on if their argument is a block or a string. Since you know
how to perform your test in bash, you could put that in a string:
# store our shell command in a string
test_conditional = "test 1 -lt 5"
# echo run only if our previously set shell command exits with 0
execute "test" do
command "echo run"
only_if test_conditional
end
Archive powered by MHonArc 2.6.16.