I have some code to perform a redis lookup, but if the key to look up either doesn't exist or there's an issue connecting to Redis at all, it will use a default value.
The logic currently looks like this:
begin
redis = Redis.new(:url => url)
returned_value = redis.get(key)
if returned_value == nil and defined?(default) != nil
default
else
returned_value
end
rescue Exception => e
if default
debug "Connection to redis failed with #{e} - Returning default value of #{default}"
default
else
raise(Puppet::Error, "connection to redis server failed - #{e}")
end
end
It feels like there might be a simpler way of doing this, right now this code feels a little wordy.
Any suggestions?