Module: PuppetX::Postgres::Fact

Defined in:
lib/puppet_x/enterprisemodules/postgres/fact.rb

Overview

Docs TODO: Write documentation

Instance Method Summary collapse

Instance Method Details

#array_mapper(results, mappings) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/puppet_x/enterprisemodules/postgres/fact.rb', line 61

def array_mapper(results, mappings)
  results.collect do |result|
    if mappings == {}
      no_mappings(result)
    else
      return_value = mappings.collect do |key, entry|
        [key.to_s, result[entry]]
      end.flatten
      Hash[*return_value]
    end
  end
end

#no_mappings(result) ⇒ Object



56
57
58
59
# File 'lib/puppet_x/enterprisemodules/postgres/fact.rb', line 56

def no_mappings(result)
  result.delete('SID')
  result[result.keys.first]
end

#pg_array_fact(mappings = {}, &proc) ⇒ Object



33
34
35
36
37
# File 'lib/puppet_x/enterprisemodules/postgres/fact.rb', line 33

def pg_array_fact(mappings = {}, &proc)
  query_routine = lambda { |query| sql_on_cluster_databases(query) }
  mapper        = lambda { |results, lambda_mappings| array_mapper(results, lambda_mappings) }
  pg_fact_internal(query_routine, mapper, mappings, &proc)
end

#pg_array_fact_all(mappings = {}, &proc) ⇒ Object



21
22
23
24
25
# File 'lib/puppet_x/enterprisemodules/postgres/fact.rb', line 21

def pg_array_fact_all(mappings = {}, &proc)
  query_routine = lambda { |query| sql_on_all_databases(query) }
  mapper        = lambda { |results, lambda_mappings| array_mapper(results, lambda_mappings) }
  pg_fact_internal(query_routine, mapper, mappings, &proc)
end

#pg_fact_internal(query_routine, mapper, mappings = {}) ⇒ Object



45
46
47
48
49
50
51
52
53
54
# File 'lib/puppet_x/enterprisemodules/postgres/fact.rb', line 45

def pg_fact_internal(query_routine, mapper, mappings = {})
  query = yield
  setcode do
    extend PuppetX::EnterpriseModules::Postgres::Access
    extend EasyType::Helpers

    results = query_routine.call(query)
    mapper.call(results, mappings)
  end
end

#pg_record_fact(mappings = {}, &proc) ⇒ Object



39
40
41
42
43
# File 'lib/puppet_x/enterprisemodules/postgres/fact.rb', line 39

def pg_record_fact(mappings = {}, &proc)
  query_routine = lambda { |query| sql_on_cluster_databases(query) }
  mapper        = lambda { |results, lambda_mappings| record_mapper(results, lambda_mappings) }
  pg_fact_internal(query_routine, mapper, mappings, &proc)
end

#pg_record_fact_all(mappings = {}, &proc) ⇒ Object



27
28
29
30
31
# File 'lib/puppet_x/enterprisemodules/postgres/fact.rb', line 27

def pg_record_fact_all(mappings = {}, &proc)
  query_routine = lambda { |query| sql_on_all_databases(query) }
  mapper        = lambda { |results, lambda_mappings| record_mapper(results, lambda_mappings) }
  pg_fact_internal(query_routine, mapper, mappings, &proc)
end

#record_mapper(result, mappings) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
# File 'lib/puppet_x/enterprisemodules/postgres/fact.rb', line 74

def record_mapper(result, mappings)
  result = result.first
  if mappings == {}
    no_mappings(result)
  else
    return_value = mappings.collect do |key, entry|
      [key.to_s, result[entry]]
    end
    return_value.to_h
  end
end