Module: Sensu::Utilities

Included in:
Daemon
Defined in:
lib/sensu/utilities.rb

Instance Method Summary collapse

Instance Method Details

#deep_merge(hash_one, hash_two) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/sensu/utilities.rb', line 19

def deep_merge(hash_one, hash_two)
  merged = hash_one.dup
  hash_two.each do |key, value|
    merged[key] = case
    when hash_one[key].is_a?(Hash) && value.is_a?(Hash)
      deep_merge(hash_one[key], value)
    when hash_one[key].is_a?(Array) && value.is_a?(Array)
      hash_one[key].concat(value).uniq
    else
      value
    end
  end
  merged
end

#random_uuidObject



34
35
36
# File 'lib/sensu/utilities.rb', line 34

def random_uuid
  UUIDTools::UUID.random_create.to_s
end

#redact_sensitive(hash, keys = nil) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/sensu/utilities.rb', line 38

def redact_sensitive(hash, keys=nil)
  keys ||= %w[
    password passwd pass
    api_key api_token
    access_key secret_key private_key
    secret
  ]
  hash = hash.dup
  hash.each do |key, value|
    if keys.include?(key.to_s)
      hash[key] = "REDACTED"
    elsif value.is_a?(Hash)
      hash[key] = redact_sensitive(value, keys)
    elsif value.is_a?(Array)
      hash[key] = value.map do |item|
        item.is_a?(Hash) ? redact_sensitive(item, keys) : item
      end
    end
  end
  hash
end

#retry_until_true(wait = 0.5, &block) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/sensu/utilities.rb', line 11

def retry_until_true(wait=0.5, &block)
  EM::Timer.new(wait) do
    unless block.call
      retry_until_true(wait, &block)
    end
  end
end

#testing?Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/sensu/utilities.rb', line 7

def testing?
  File.basename($0) == 'rspec'
end