2012-07-15 15 views
6

नुस्खा से डेटा बैग कैसे बनाएं और अपवाद से बचें जब उस डेटा बैग में पहले से मौजूद है?एक नुस्खा से शेफ डेटा बैग निर्माण

प्रलेखन पता चलता है कि एक डेटा बैग बनाने इस तरह से किया जाता है:

new_databag = Chef::DataBag.new 
new_databag.name('unique_name') 
new_databag.save 

यह काम करता है जब databag अभी मौजूद नहीं है, लेकिन यह काम करने के लिए कैसे databag पहले से मौजूद है यदि ऐसा है तो इसे तोड़ने नहीं होगा शेफ रन?

उत्तर

12

बावर्ची :: DataBag की list विधि का उपयोग कर की कोशिश करें और देखें कि क्या आपके databag का नाम मौजूद है: मेरे व्यंजनों और अधिक मजबूत बनाने के लिए, या यदि एक उम्मीद 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 

मैं इस का उपयोग एक शेफ सर्वर पर नहीं पाया जा सकता है।

+0

मुझे लगता है कि "अगर शेफ :: DataBag.list.key?" परीक्षण एक जब तक होना चाहिए। उस स्थिति में यदि आप उस परीक्षण को पारित करने के लिए पहले से मौजूद हैं तो आप केवल नए डाटाबेस को बनाते हैं। सही बात? हालांकि पैटर्न को इंगित करने के लिए धन्यवाद: डी –

संबंधित मुद्दे