6
如何从配方创建数据包并避免该数据包已存在时发生异常?从配方创建厨师数据包
文档显示,创建一个数据包像这样做:
new_databag = Chef::DataBag.new
new_databag.name('unique_name')
new_databag.save
这工作时,databag还不存在,但如何使其工作,如果databag已经存在,所以它不会破厨师跑?
如何从配方创建数据包并避免该数据包已存在时发生异常?从配方创建厨师数据包
文档显示,创建一个数据包像这样做:
new_databag = Chef::DataBag.new
new_databag.name('unique_name')
new_databag.save
这工作时,databag还不存在,但如何使其工作,如果databag已经存在,所以它不会破厨师跑?
尝试使用厨师:: DataBag的list
方法和检查databag的名字是否存在:
require 'chef/data_bag'
unless Chef::DataBag.list.key?('unique_name')
new_databag = Chef::DataBag.new
new_databag.name('unique_name')
new_databag.save
end
我使用它来使我的食谱更健壮,或者如果预期databag抛出一个更友好的错误无法在厨师服务器上找到。
我认为“如果厨师:: DataBag.list.key?”测试应该是一个除非。在这种情况下,如果它已经存在以通过该测试,那么您只能制作新的数据库。正确?感谢您指出模式:D – 2015-01-26 22:06:33