X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;ds=sidebyside;f=files%2Fetc%2Fpuppet%2Flib%2Fpuppet%2Fparser%2Ffunctions%2Fldapinfo.rb;h=3564de329ee99d31af9f762988bc9291c631edb9;hb=13ea760c33a9f907cadda793626669ba0c91e27c;hp=23243c04041a7458a760490b44caf75d1cac4466;hpb=7001185323bf29b7bb413a1eafd7dee213346289;p=mirror%2Fdsa-puppet.git diff --git a/files/etc/puppet/lib/puppet/parser/functions/ldapinfo.rb b/files/etc/puppet/lib/puppet/parser/functions/ldapinfo.rb index 23243c040..3564de329 100644 --- a/files/etc/puppet/lib/puppet/parser/functions/ldapinfo.rb +++ b/files/etc/puppet/lib/puppet/parser/functions/ldapinfo.rb @@ -7,6 +7,7 @@ module Puppet::Parser::Functions attributes << 'hostname' end + require 'ldap' ldap = LDAP::SSLConn.new('db.debian.org', 636) results = {} @@ -18,7 +19,8 @@ module Puppet::Parser::Functions unless attributes.include?("*") next if attributes.any?{ |a| not x[a] or x[a].empty? } end - results[x['hostname']] = x + results[x['hostname'][0]] = [] + results[x['hostname'][0]] << x end rescue LDAP::ResultError raise Puppet::ParseError, "LDAP error" @@ -27,6 +29,10 @@ module Puppet::Parser::Functions ensure ldap.unbind end - return( host == '*' ? results : results[host] ) + if host == '*' + return(results) + else + return(results[host]) + end end end