Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ::Hash
- # this method will recursively search for values starting from "databag/"
- # and replaces them with the values from the databags if present
- def decrypt
- self.each do |key,value|
- if value.instance_of? ::Hash
- # we need to go deeper!
- self[key] = value.decrypt
- elsif value.instance_of? ::String
- # starts with "databag/ ?
- if /databag\//.match(value)
- databag, databag_item, databag_item_key = value.split('/').drop(1)
- if databag and databag_item and databag_item_key
- # replace or skip
- replacement = Chef::EncryptedDataBagItem.load databag, databag_item rescue nil
- self[key] = replacement[databag_item_key] rescue value
- end
- end
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement