厨师 - 呼叫其他行动行动LWRP

问题描述:

我定义如下供应商:厨师 - 呼叫其他行动行动LWRP

action :start do 
... 
end 

action :stop do 
... 
end 

action :restart do 
... 
end 

现在,而不是重写的restartstopstart实施,我想打电话给action :stop,然后在action :startaction :restart,像这样:

action :restart do 
    action :stop 
    action :start 
end 

有没有办法做到这一点?

编辑 - 正如Coderanger答复中提到,解决的办法是:

action :restart do 
    action_stop 
    action_start 
end 

呼叫action_startaction_stop

+0

我不知道什么是错的,但是当我把'''action_stop'''和'''action_start'''在'''行动:restart''','''行动:stop'''和'' 'action:start'''执行两次。当我只是粘贴开始/停止代码时,一切都很好。 –

+0

查看下面的pastebin进行比较:第一次调用每个动作两次,第二次很好。 http://pastebin.com/6r94LMNA http://pastebin.com/3WHwQhNF –

+0

我不知道什么是'init'但它的确会被调用两次。 – coderanger

我不知道这是否是正确的答案。我刚刚尝试过这一点,它似乎在编译时调用action_stop和action_start。我试图运行这样的事情:

action :create do 
    # steps to create resource 
    directory '/test' do 
    ... 
    end 

    action_config 
end 

action :config do 
    ... # configuration 
    template '/test/config' do 
    ... 
    end 
end 

它失败了,因为:配置先运行(创建目录之前)。

我试图把action_config到ruby_block - 这似乎工作,但我不知道,如果参数正确传递。