23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/chef-vault-retry.rb', line 23
def self.load(v, i, retries = 40, databag_fallback = true)
if ChefVault::Item.vault?(v, i)
retries.times do
begin
return ChefVault::Item.load(v, i)
rescue ChefVault::Exceptions::SecretDecryption
puts 'SecretDecryption exception raised; '\
"please refresh vault item (#{v}/#{i})"
sleep 30
next
end
end
fail "Failed after #{retries} attempts to decrypt #{v}/#{i}"
elsif databag_fallback
Chef::DataBagItem.load(v, i)
else
fail "#{v}/#{i} vault item not found and databag_fallback not permitted"
end
end
|