class Puppet::Util::Ldap::Connection
Attributes
connection[R]
host[RW]
password[RW]
port[RW]
reset[RW]
ssl[RW]
user[RW]
Public Class Methods
instance()
click to toggle source
Return a default connection, using our default settings.
# File lib/puppet/util/ldap/connection.rb 10 def self.instance 11 ssl = if Puppet[:ldaptls] 12 :tls 13 elsif Puppet[:ldapssl] 14 true 15 else 16 false 17 end 18 19 options = {} 20 options[:ssl] = ssl 21 user = Puppet.settings[:ldapuser] 22 if user && user != "" 23 options[:user] = user 24 pass = Puppet.settings[:ldappassword] 25 if pass && pass != "" 26 options[:password] = pass 27 end 28 end 29 30 new(Puppet[:ldapserver], Puppet[:ldapport], options) 31 end
new(host, port, user: nil, password: nil, reset: nil, ssl: nil)
click to toggle source
# File lib/puppet/util/ldap/connection.rb 37 def initialize(host, port, user: nil, password: nil, reset: nil, ssl: nil) 38 raise Puppet::Error, _("Could not set up LDAP Connection: Missing ruby/ldap libraries") unless Puppet.features.ldap? 39 40 @host = host 41 @port = port 42 @user = user 43 @password = password 44 @reset = reset 45 @ssl = ssl 46 end
Public Instance Methods
close()
click to toggle source
# File lib/puppet/util/ldap/connection.rb 33 def close 34 connection.unbind if connection.bound? 35 end
name()
click to toggle source
Create a per-connection unique name.
# File lib/puppet/util/ldap/connection.rb 49 def name 50 [host, port, user, password, ssl].collect { |p| p.to_s }.join("/") 51 end
reset?()
click to toggle source
Should we reset the connection?
# File lib/puppet/util/ldap/connection.rb 54 def reset? 55 reset 56 end
start()
click to toggle source
Start our ldap connection.
# File lib/puppet/util/ldap/connection.rb 59 def start 60 case ssl 61 when :tls 62 @connection = LDAP::SSLConn.new(host, port, true) 63 when true 64 @connection = LDAP::SSLConn.new(host, port) 65 else 66 @connection = LDAP::Conn.new(host, port) 67 end 68 @connection.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3) 69 @connection.set_option(LDAP::LDAP_OPT_REFERRALS, LDAP::LDAP_OPT_ON) 70 @connection.simple_bind(user, password) 71 rescue => detail 72 raise Puppet::Error, _("Could not connect to LDAP: %{detail}") % { detail: detail }, detail.backtrace 73 end