Method: Puppet::Provider::ElasticUserRoles.to_file

Defined in:
lib/puppet/provider/elastic_user_roles.rb

.to_file(records) ⇒ Object

Represent this user/role record as a correctly-formatted config file.



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/puppet/provider/elastic_user_roles.rb', line 37

def self.to_file(records)
  debug "Flushing: #{records.inspect}"
  records = records.map do |record|
    record[:roles].map do |r|
      { [record[:name]] => r }
    end
  end
  records = records.flatten.map(&:invert).reduce({}) do |acc, role|
    acc.merge(role) { |_, o, n| o + n }
  end
  records = records.delete_if do |_, users|
    users.empty?
  end
  records = records.map do |role, users|
    "#{role}:#{users.join(',')}"
  end
  "#{records.join("\n")}\n"
end