Chef - 在LWRP中调用其他操作的操作

时间:2016-02-29 01:59:38

标签: ruby chef lwrp

我正在定义一个提供者,如下所示:

action :start do
 ...
end

action :stop do 
 ...
end

action :restart do
 ...
end

现在,我不想在stop中重写startrestart的实现,而是在action :stop中调用action :start然后action :restart },像这样:

action :restart do
  action :stop
  action :start
end

有没有办法实现这个目标?

编辑 - 正如Coderanger的回答所述,解决方案是:

action :restart do 
  action_stop
  action_start
end

2 个答案:

答案 0 :(得分:4)

致电action_startaction_stop

答案 1 :(得分:0)

我不确定这是否是正确的答案。我刚试过这个,似乎在编译时调用了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

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

我试图将action_config放入ruby_block - 这似乎有效,但我不确定参数是否正确传递。