Chef LWRP Only_IF目录不为空

时间:2014-02-25 17:25:18

标签: ruby chef

检查目录是否存在很容易,例如:

only_if { Dir.exist?(archive_root) }

我想要完成的是only_if同时进行2次检查。

  1. 目录是否存在
  2. 仅当目录不为空时
  3. 因此,如果我们看一下通用执行,它应该是这样的:

    execute "RunThisAction" do
      command "ls -al /data/ > /tmp/foo.log"
      action :nothing
      only_if { Dir.exist?("/data") && !Dir.empty?("/data") }
      notifies :run, "execute[ASecondAction]", :immediately
    end
    

    所以问题是...... Dir.empty是正确的做事方式吗?其次,如果操作被触发但未满足only_if条件,它仍然会通知吗?

    我可以直接在Ruby中进行测试,但这会使操作在编译时运行,而不是执行时间。例如,如果我在编译时对Dir.exist进行测试,它可能还不存在,如果先前没有运行先前的操作,则该目录几乎总是为空。

    感谢。

0 个答案:

没有答案