Mock ldapinfo during octocatalog runs
[mirror/dsa-puppet.git] / spec / octocatalog / ldap / update
1 #!/usr/bin/ruby
2
3 require 'ldap'
4
5 results = {}
6 ldap = LDAP::SSLConn.new('db.debian.org', 636)
7 ldap.search2('ou=hosts,dc=debian,dc=org', LDAP::LDAP_SCOPE_SUBTREE, '(hostname=*)', attrs='*', false, 0, 0).each do |x|
8   results[x['hostname'][0]] = x
9 end
10
11 open('ldapinfo.rb', 'w') do |f|
12   f.puts <<EOF
13 module Puppet::Parser::Functions
14   newfunction(:ldapinfo, :type => :rvalue) do |attributes|
15     host = attributes.shift
16     results = #{results.to_s}
17     if host == '*'
18       return(results)
19     else
20       return(results[host])
21     end
22   end
23 end
24 EOF
25 end