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